Migrieren von .NET-Anwendungen - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migrieren von .NET-Anwendungen

AWS Durch die Migration Ihrer .NET-Anwendungen auf können Sie hochverfügbare Workloads mit elastischen Skalierungsfunktionen erstellen, den Betriebsaufwand reduzieren und Ihre geschäftliche Flexibilität erhöhen, indem Sie sich auf Ihr Alleinstellungsmerkmal konzentrieren.

Dieser Abschnitt konzentriert sich auf die verschiedenen Optionen für das Hosten Ihrer .NET-Anwendungen. AWS Sie können wählen, ob Sie eine virtuelle Maschine, eine verwaltete Lösung wie AWS Elastic Beanstalkdie Containerisierung Ihres Codes oder die Umstellung Ihres Codes auf eine Microservices- oder serverlose Architektur verwenden möchten.

Bewerten

Die Auswahl eines Migrationspfads für Ihre .NET-Workload hängt von den folgenden Schlüsselfaktoren ab:

  • Ermitteln der verwendeten .NET-Version – es gibt zwei verschiedene .NET-Implementierungen, die von Microsoft unterstützt werden: .NET Framework (1.0–4.8) und.NET (.NET Core 1.0–3.1 sowie .NET 5 und höher). Beide verwenden viele der gleichen Komponenten und können Anwendungscode ausführen, der in den verschiedenen .NET-Programmiersprachen (wie C#, F# und VB.NET) geschrieben wurde. Die Wahl einer Migrationsstrategie und eines Hosting-Dienstes hängt von der verwendeten Laufzeit ab, da .NET Framework unter Windows ausgeführt wird, wohingegen das neuere.NET plattformübergreifend ist. Für das.NET Framework können Sie entweder auf einem Windows-Betriebssystem hosten oder Ihren Code so umgestalten, dass er das neuere.NET verwendet. Das neuere.NET kann auch auf Diensten gehostet werden, die auf dem Betriebssystem Linux basieren. Bei der Modernisierung von .NET-Framework-basierten Workloads können Sie den Porting Assistant für .NET oder das AWS Toolkit für .NET-Faktorwechsel verwenden, um Ihren Code zu scannen und einen Kompatibilitätsbewertungsbericht zu erstellen. Indem Sie herausfinden, ob Ihr Projekt inkompatibles .NET Framework APIs referenziert, können Sie die Komplexität eines Migrationsprojekts einplanen und entscheiden, ob und wann Sie Ihren Code umgestalten möchten, um eine neuere Runtime zu verwenden.

  • Überprüfen Sie Ihre aktuelle Bereitstellung — Prüfen Sie, ob der aktuell migrierte Workload über bestehende CI/CD Pipelines verfügt, die aktualisiert werden können, um dieselben Workloads in der Cloud bereitzustellen. Durch die Verwendung einer vorhandenen Build- und Deploy-Pipeline kann der Zeitaufwand für die Bereitstellung Ihrer Anwendung in der Cloud reduziert werden, da die für die Erstellung, Konfiguration und Bereitstellung Ihrer Workloads erforderlichen Schritte automatisiert werden.

  • Überprüfen Ihrer Roadmap – je nach aktuellem Stand des Projekts planen Sie möglicherweise bereits, einen Architekturwechsel oder eine Neugestaltung Ihrer Anwendungen. Bei jeder durchgeführten Modernisierung sollte die Produkt-Roadmap berücksichtigt werden. Beispielsweise ist die Entscheidung, vorhandenen Code zu containerisieren oder eine monolithische Architektur in Microservices umzuwandeln, idealerweise Teil der Produkt-Roadmap und wird mit anderen Entwicklungsbemühungen abgestimmt.

Mobilisieren

Es gibt drei verschiedene Migrationspfade, die Sie bei der Migration Ihrer .NET-Workloads in Betracht ziehen sollten. AWS Sie können je nach Komplexität Ihrer vorhandenen Codebasis, der für die Migration vorgesehenen Zeit und der Größe des Teams, das für die Unterstützung der Migration zuständig ist, zwischen den verschiedenen Optionen wählen. Wenn Sie die Modernisierung als Teil Ihrer Migration in Betracht ziehen, ist es eine bewährte Methode, sich an der Roadmap des Produkts zu orientieren.

  • Rehost (Lift & Shift) — Sie können diesen Ansatz wählen, wenn Ihre Priorität eine schnellere Migration AWS mit wenigen bis gar keinen Änderungen ist. Sie können ASP.NET-basierte Websites auf Internet Information Services (IIS) rehosten, die auf Amazon-Instances ausgeführt werden. EC2 Sie können Ihre Desktop-basierten Anwendungen (wie Windows Presentation Foundation, Web Forms und .NET MAUI) auf einer der Computerplattformen für Endbenutzer wie Amazon 2.0 oder Amazon AppStream rehosten. WorkSpaces

  • Plattformwechsel – ein Plattformwechsel eignet sich am besten, wenn Sie Ihre Anwendung mithilfe eines verwalteten Dienstes hosten möchten, ohne Codeänderungen vorzunehmen, aber Ihren betrieblichen Aufwand reduzieren möchten, indem Sie undifferenzierte Aufgaben wie Installation, Patching, Upgrades und Instance-Verwaltung auslagern. Diese Strategie eignet sich auch für Teams, die auf containerbasierte Workloads umsteigen möchten. Sie können Ihre vorhandenen Anwendungen auf Elastic Beanstalk umstellen oder Docker-Container verwenden, die auf Amazon ECS, Amazon EKS oder gehostet werden. AWS App Runner

  • Refactor — Wählen Sie diesen Ansatz, wenn Sie Zeit und Mühe in Code- und Architekturänderungen investieren können, die den betrieblichen Aufwand reduzieren und mithilfe Cloud-nativer Dienste eine bessere Skalierung, Hochverfügbarkeit und Notfallwiederherstellung erreichen. AWS Beim Faktorwechsel müssen Sie Ihre Codebasis modernisieren, indem Sie vorhandene.NET-Framework-Anwendungen auf .NET (vormals .NET Core) portieren oder eine bestehende Codebasis modernisieren, um sie in der Cloud besser laufen zu lassen. Sie können den verwenden AWS SDK für .NET, um viele AWS Cloud-Dienste aus Ihrem .NET-Code heraus aufzurufen. Tools wie Porting Assistant for .NET AWS Microservice Extractor for .NETkönnen verwendet werden, um Ihre Codebasis von .NET Framework nach.NET zu portieren und Ihre monolithische Anwendung in Mikroservices aufzuteilen. Indem Sie Ihre vorhandenen.NET-Workloads so umgestalten, dass sie darauf ausgeführt werden können, können Sie serverloses Computing einsetzen AWS Lambda, um die Bereitstellung und Verwaltung der Infrastruktur zu vermeiden.

Migrieren

Die Schritte Ihrer Migration von .NET-Workloads hängen von dem Migrationspfad ab, den Sie in der Bewertungsphase gewählt haben, und von Ihrem Anwendungstyp.

Hostwechsel von .NET-Anwendungen

Wählen Sie diesen Migrationspfad, wenn Sie Ihre Anwendung ohne Codeänderungen migrieren möchten, aber von der automatischen Skalierung, Load Balancer und der Elastizität in der Cloud profitieren möchten. Bei Windows-basierten Websites bedeutet Rehosting in der Regel, dass sie unter Internetinformationsdiensten (IIS) ausgeführt werden. AWS Bei Desktop-basierten Anwendungen müssen Sie die Anwendung installieren und es Benutzern ermöglichen, von außerhalb eine Verbindung mit der Anwendung herzustellen.

Internetinformationsdienste auf AWS

Internet Information Services (IIS) ist ein Microsoft-Webserver, der auf einem Windows-Betriebssystem läuft und zum Hosten von Websites und Webdiensten verwendet wird. IIS kann auf jeder EC2 Amazon-Instance installiert werden, auf der Windows Server ausgeführt wird. Nachdem IIS aktiviert und konfiguriert wurde, können Sie Ihre ASP.NET-Websites und -Dienste mithilfe desselben Bereitstellungsmechanismus bereitstellen, den Sie für On-Premises-Umgebungen verwenden.

Wenn Sie IIS auf EC2 Windows-Instances hosten, ist es wichtig, das AWS Well-Architected Framework zu befolgen, indem Sie je nach Arbeitslast und HADR-Anforderungen Lastenausgleich, Auto Scaling Scaling-Gruppen und Multi-AZ-Bereitstellung verwenden. Wir empfehlen die Verwendung von AWS Launch Wizard, da es Sie durch die Dimensionierung, Konfiguration und Bereitstellung eines Windows Server-Workloads führt, auf dem IIS-Ressourcen ausgeführt werden. AWS Launch Wizard stellt eine hochverfügbare Architektur bereit, die sich über zwei Availability Zones mit den erforderlichen Rechen-, Netzwerk- und Speicherkomponenten für eine neu erstellte oder bestehende VPC erstreckt.

Hosten von Desktop-Anwendungen auf AWS

Viele Kunden müssen auf Windows-basierte Thick Client-Anwendungen zugreifen. Sie haben die Wahl zwischen drei verschiedenen Plattformen:

  • Amazon EC2 — Wählen Sie diese Option, wenn Sie möchten, dass Ihre Benutzer mithilfe von Microsoft Remote Desktop eine Verbindung zu einer Windows Server-basierten Umgebung herstellen. Bei dieser Option sind Sie für das Patchen und die Wartung Ihres Betriebssystems verantwortlich. Sie müssen außerdem zusätzliche Remote Desktop Services-Clientzugriffslizenzen (RDS CALs) für Ihre Benutzer und aktive Software Assurance (SA) erwerben. Weitere Informationen finden Sie AWS in der AWS Dokumentation unter Microsoft-Lizenzierung.

  • Amazon WorkSpaces — Wählen Sie diese Option, wenn Sie eine vollständig verwaltete virtuelle Desktop-Infrastruktur (VDI) für Ihre Benutzer benötigen. Sie können sie verwenden WorkSpaces , um Ihren Benutzern ein beständiges Windows Desktop-Erlebnis zu bieten. Sie können Ihre WorkSpaces Umgebung auch anpassen und .NET-Anwendungen mithilfe eines benutzerdefinierten Images installieren oder Ihre .NET-Anwendungen in Ihren WorkSpaces Umgebungen bereitstellen. AWS Systems Manager Benutzer können entweder über ihren Browser oder den WorkSpacesAmazon-Client eine Verbindung herstellen.

  • Amazon AppStream 2.0 — Wählen Sie diese Option, um sicheren, zuverlässigen und skalierbaren Zugriff auf Anwendungen und nicht persistente Desktops von jedem Standort aus zu ermöglichen. Sie können AppStream 2.0 verwenden, um Ihren Benutzern den Zugriff auf Ihre .NET-Anwendungen über das Internet zu ermöglichen. Wenn Sie bereits über RDS CALs und Active SA verfügen, können Sie diese Lizenzen mithilfe von License Mobility mit AppStream 2.0 verwenden.

Plattformwechsel

Beim Plattformwechsel müssen Sie Ihre Hosting-Umgebung mit nur wenigen bis gar keinen Codeänderungen ändern. Wählen Sie diese Strategie, um Ihren Betriebsaufwand zu reduzieren und die Vorteile von Cloud-Funktionen und -Services zu nutzen.

AWS Elastic Beanstalk

Sie können es verwenden AWS Elastic Beanstalk, um Ihre .NET Framework-Workloads neu zu plattformieren. Wenn Sie Ihre ASP.NET- oder ASP.NET Core-basierten Anwendungen verpacken, können Sie Anwendungen schnell bereitstellen und verwalten, AWS ohne sich mit der Infrastruktur vertraut machen zu müssen, auf der diese Anwendungen ausgeführt werden. Dies vereinfacht die Komplexität, ohne Einschränkungen in Bezug auf Auswahl oder Kontrolle nach sich zu ziehen. Sie laden Ihre Anwendung einfach hoch, und Elastic Beanstalk übernimmt automatisch Kapazitätsbereitstellung, Lastverteilung, Skalierung und Überwachung des Anwendungsstatus.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Containerisieren vorhandener Anwendungen

Sie können Amazon ECS oder Amazon EKS verwenden, um Ihre Docker-basierten containerisierten Anwendungen zu hosten. AWS verwaltet beide Dienste. Die Wahl zwischen den beiden hängt von den vorhandenen Kenntnissen und Vorlieben ab. Beide Optionen können entweder Linux-basierte oder Windows-basierte Container ausführen.

Weitere Informationen finden Sie in den folgenden Ressourcen:

Die Containerisierung von .NET-basierten Anwendungen hängt von der verwendeten .NET-Laufzeit ab. Berücksichtigen Sie dabei Folgendes:

  • .NET Framework-basierte Anwendungen werden auf Windows-Containern ausgeführt – das Hinzufügen von Docker-Unterstützung zu vorhandenen Anwendungen erfolgt durch die Erstellung einer Docker-Datei, in der beschrieben wird, wie die Anwendung containerisiert werden muss. Sie können AWS App2Containeres verwenden, um bestehende .NET Framework-basierte Anwendungen einfach zu containerisieren und zu migrieren. AWS App2Container scannt Ihren IIS-Server, um die erforderlichen Dateien zu ermitteln, und extrahiert die Zielanwendung, um ein Docker-Image zu erstellen. Sie können App2Container auch verwenden, um die Bereitstellungsartefakte zu erstellen, die zum Hosten Ihrer Anwendung in der erforderlich sind. AWS Cloud

  • .NET oder .NET Core — Sie können nicht nur neuere .NET-basierte Webanwendungen auf Amazon ECS oder Amazon EKS ausführen, sondern auch verwenden. AWS App Runner App Runner ist eine vollständig verwaltete Serverless-Lösung, die Ihren Code oder Ihr Container-Image ausführt und Load Balancing, Auto Scaling, Protokollierung, Zertifikate und Netzwerke verwaltet.

Faktorwechsel/Neugestaltung des bestehenden Codes

Wählen Sie diese Option, wenn Sie aus geschäftlichen Gründen dringend Funktionen, Skalierbarkeit oder Leistung hinzufügen müssen, die in der aktuellen Anwendungsumgebung sonst nur schwer zu erreichen sind. Abhängig von Ihrer Anwendungs-Roadmap können Sie wählen, ob Sie Ihren Code ändern möchten, um das neueste Framework oder cloudnative Dienste zu verwenden, oder ob Sie ihn so umgestalten möchten, dass er besser in der Cloud ausgeführt werden kann.

Die erste verfügbare Option zum Faktorwechsel besteht darin, Ihre vorhandene.NET Framework-Anwendung zu .NET zu migrieren. Die Umstellung auf .NET bietet Ihnen den Vorteil, dass Sie es auf Linux statt auf Windows ausführen können. Dies reduziert Ihre Gesamtlizenzkosten, bietet Ihnen die neuesten Frameworks und bietet die neuesten Versionen der .NET-Programmiersprachen.

AWS SDK für .NET

AWS SDK für .NETvereinfacht die Verwendung von, AWS-Services indem es eine Reihe von Bibliotheken bereitstellt, die konsistent und für .NET-Entwickler vertraut sind. Das AWS SDK bietet plattformübergreifende Unterstützung und wird verteilt über NuGet. Entwickler können das AWS SDK verwenden, um Cloud-Dienste einfach von ihrem .NET-Code aus aufzurufen und so die Speicher-, Warteschlangen-, Authentifizierungs- und Konfigurationsanforderungen ihrer Anwendung zu erfüllen.

Modernisieren von .NET Framework-Anwendungen

Sie können aus dem.NET Framework migrieren, indem Sie den Porting Assistant für .NET verwenden, der Ihre Codedateien scannt und einen Bericht erstellt, der Sie bei der Planung der Roadmap für die Migration Ihres Anwendungsportfolios unterstützt. Der Portierungsassistent für .NET kann auch Ihren Portierungsaufwand reduzieren, indem inkompatibles .NET Core APIs und Pakete identifiziert und bekannte Ersatzprodukte gefunden werden. Das AWS Toolkit für.NET-Refactoring ist eine Visual Studio-Erweiterung, die den Zeit- und Arbeitsaufwand für Entwickler reduziert, um ältere .NET-Anwendungen auf cloudbasierte Alternativen umzurüsten. AWS Es bewertet den Quellcode der Anwendung, um mögliche Modernisierungspfade wie die Portierung auf .NET Core zu empfehlen, identifiziert Windows-spezifische IIS- und Active Directory-Abhängigkeitskonfigurationen, führt nach Möglichkeit Codeänderungen durch, um die Linux-Kompatibilität zu gewährleisten, und hilft bei der Validierung der umgestalteten Anwendung. AWS-Services Durch die Migration von.NET Framework-Anwendungen zu .NET können sie auf Graviton-Prozessoren ausgeführt werden, ARM64 was zu einem besseren Preis-Leistungs-Verhältnis führt. Weitere Informationen finden Sie unter .NET auf Graviton on GitHub und Graviton2 und in Containern unter Kostenoptimierung mit AWS Graviton-basierten Diensten in der Workshop Studio-Dokumentation. AWS

Von Monolith zu Microservices

Viele Entwicklungsteams möchten ihre bestehenden monolithischen Anwendungen in Microservices umstrukturieren. Durch die Umstellung auf Microservice-basierte Architekturen können Ihre Entwicklungsteams die Entwicklungsflexibilität erhöhen, die Rechenkosten senken, Services individuell skalieren und ihre Bereitstellungszeiten verkürzen. AWS Microservice Extractor for .NETvereinfacht den Prozess der Umgestaltung älterer monolithischer Anwendungen in eine Microservice-basierte Architektur. Durch die Identifizierung von Komponenten und Gruppierungsfunktionen können Entwicklungsteams schrittweise Funktionen aus monolithischen .NET Framework-Anwendungen in .NET-Services extrahieren.

Faktorwechsel zu Serverless-Anwendungen

AWS Lambdaist ein serverloser, ereignisgesteuerter Rechendienst, mit dem Sie Code für praktisch jede Art von Anwendung oder Backend-Service ausführen können, ohne Server bereitstellen oder verwalten zu müssen. Mithilfe von .NET und Lambda können Sie Logik aus Ihrer vorhandenen Anwendung extrahieren, um ereignisbasierte Serverless-Workflows zu erstellen, die bei Bedarf automatisch skaliert werden. Zu den häufigsten Anwendungsfällen für Lambda gehören ereignisgesteuerte Workloads, die einige Sekunden oder Minuten lang mit unterschiedlichen Skalierungsanforderungen ausgeführt werden, z. B. Dateiverarbeitung, Analysen, Websites und mobile Anwendungen. Weitere Informationen finden Sie unter Erstellen von Lambda-Funktionen mit C# in der Lambda-Dokumentation.

Weitere Ressourcen