Untersuchen des Migrations-Assistenten

Abgeschlossen

Bei der Analyse einer Migrationsüberlegung werden alle verfügbaren Optionen geprüft. In einer früheren Einheit wurden Hostingdienste wie IaaS und PaaS erwähnt. Die IaaS-Migration kann eine Lift & Shift-Option bieten, bei der Sie einen virtuellen Computer erstellen, ihn mit der gleichen Software und den gleichen Einstellungen wie Ihre lokale Umgebung konfigurieren und dann in Azure hosten. IaaS erfordert weiterhin, dass Ihre Organisation die Software auf dem virtuellen Computer verwaltet, patcht, aktualisiert und schützt.

Wenn Sie über eine ASP.NET-Anwendung verfügen, die Sie migrieren möchten, sollten Sie die Option PaaS verwenden, um den größten Nutzen aus Automatisierung und Skalierbarkeit in Azure zu ziehen. Bei der PaaS-Lösung in Verbindung mit ASP.NET-Anwendungen geht es um die Verwendung von Azure App Service.

Was ist Azure App Service?

Azure App Service ist ein HTTP-basierter Dienst in Azure, mit dem Sie Webanwendungen und REST-APIs hosten können. Dieser Dienst bietet folgende Vorteile:

  • Automatische Skalierung, um Ihre App auf Basis der von Ihnen angegebenen Parameter den Anforderungen anzupassen und dann die Skalierung automatisch zu verringern, wenn die Anforderungen abnehmen.

  • Hohe Verfügbarkeit, um sicherzustellen, dass Ihre Anwendung bei Ausfällen von Server oder Rechenzentrum bzw. Ausfallzeiten verfügbar bleibt. Azure nutzt hierzu Zonen, Regionen und Verfügbarkeitsgruppen.

  • Unterstützung auf den Windows- und Linux-Plattformen.

  • Integration in automatisierte Bereitstellungsmodelle mit Azure DevOps oder GitHub-Repositorys.

Wie hostet Azure App Service ASP.NET-Apps?

Sie können mit Azure App Service Ihre ASP.NET-Anwendung in einem App Service-Plan hosten. Der App Service-Plan definiert einen Satz von Computeressourcen für Ihre ASP.NET-Anwendung. Die Computeressourcen sind mit einer lokalen Serverfarm vergleichbar. Computeressourcen bestehen aus virtuellen Computern, die die Software enthalten, die zum Hosten Ihrer Anwendung erforderlich ist. Dabei kann es sich um eine VM handeln, auf der ein Windows Server-Produkt mit IIS ausgeführt wird, das die Anwendung hostet.

Diagram of web app architecture hosted on Azure with app plan, DNS, resource group, and databases.

Die App verwendet auch andere Ressourcen, darunter:

  • Netzwerkressourcen zum Bereitstellen des Zugriffs auf die Webanwendung über den Standardport 80 oder HTTPS-Port 443. Das Netzwerk bietet auch Optionen zur Konfiguration von DNS und öffentlichen IP-Adressen.
  • Überwachungs- und Protokollierungsoptionen für den Dienst.
  • Zugriffssteuerung über Microsoft Entra ID und rollenbasierte Zugriffssteuerung (RBAC).
  • Weitere Optionen, die abhängig von der erforderlichen Konfiguration für die jeweilige Anwendung verfügbar sind, z. B. Datenbankzugriff und Optionen für Skalierung und Verfügbarkeit.
  • Eine Speicheroption für verschiedene Dateien, die zum Hosten der Anwendung benötigt werden.

Was ist Azure SQL-Datenbank?

Azure SQL-Datenbank ist ein intelligenter, skalierbarer relationaler Datenbankdienst, der für die Cloud entwickelt wurde. Dabei handelt es sich um einen vollständig verwalteten SQL-Datenbankdienst, der Patchen, Aktualisieren und Sicherungen ohne Benutzereingriff verwaltet. Sie können zwischen zwei Bereitstellungsmodellen für Ihre Azure SQL-Datenbank-Instanz wählen: Singleton oder Pool für elastische Datenbanken.

Modell mit Einzeldatenbank

Ein Bereitstellungsmodell mit Einzeldatenbank ähnelt einer einzelnen eigenständigen Datenbank in einer lokalen SQL Server-Datenbank-Engine. Im Bereitstellungsmodell mit einer einzelnen Azure SQL-Datenbank erhalten Sie die zuvor in dieser Einheit erwähnte Option der vollständigen Verwaltung. Es handelt sich um eine isolierte Datenbank für die Datenanforderungen Ihrer Anwendungen.

Modell mit Pool für elastische Datenbanken

Der Pool für elastische Datenbanken ist eine Sammlung von Singletons, die Ressourcen wie Arbeitsspeicher und CPU gemeinsam nutzen. Bei Bedarf können Sie Singletons aus dem Pool für elastische Datenbanken verschieben und andere Singletons in den Pool verschieben.

Mit verschiedenen Dienstebenen und Computegrößen können Sie die Bereitstellung von Azure SQL-Datenbank Ihren spezifischen Anwendungsanforderungen anpassen. Beispielsweise können Sie mit einer einzelnen kleinen Datenbank beginnen, die Ihren bestehenden Anforderungen entspricht, um die Kosten gering zu halten. Wenn die Anwendungsanforderungen zunehmen, können Sie die Dienstebene aktualisieren, um Optionen für dynamische Skalierbarkeit bereitzustellen, um die Anforderungen an die Anwendung und den Datenzugriff zu erfüllen. Dynamische Skalierung ermöglicht Ihnen, bei Bedarf Ressourcen zur Verwaltung der Skalierung heranzuziehen und dann bei nachlassenden Anforderungen die Skalierung zu verringern, sodass die Kosten niedriger bleiben.

Vergleich zwischen Azure SQL-Datenbank und SQL Server

Der Vergleich einer lokalen SQL Server-Datenbank-Engine mit Azure SQL-Datenbank kann helfen, die Vorteile der Verwendung von Azure hervorzuheben.

Bei einer lokalen SQL Server-Datenbank-Engine gilt:

  • Ihre IT-Abteilung muss die Serverhardware erwerben.

  • Installieren des Betriebssystems

  • Sie installieren die Datenbank-Engine.

  • Sie verwalten Patches.

  • Sie konfigurieren die Firewallsicherheit.

  • Sie verwalten den Datenbankzugriff.

  • Sie verwalten die Datenbanksicherung.

  • Sie verwalten die Notfallwiederherstellung.

  • Sie führen alle vorhergehenden Aufgaben für neue Hardware erneut aus, wenn die Computeressourcen die Anforderungen nicht erfüllen.

Wenn Sie Azure SQL-Datenbank verwenden, gilt:

  • Sie erstellen mit dem Bereitstellungsmodell Ihrer Wahl eine Datenbankinstanz in Azure.

  • Sie migrieren Ihre Daten zur neuen Instanz.

  • Sie konfigurieren den Anwendungszugriff.

  • Sie konfigurieren bei Bedarf Skalierbarkeitsoptionen.

  • Sie profitieren von den Vorteilen einer verwalteten Umgebung.

Hybride Datenszenarios

Der Azure-Hybridvorteil ist ein Modell, mit dem Sie Ihre Lizenzierungskosten für die Ausführung Ihrer SQL-Workloads in der Cloud reduzieren können. Sie können von diesem Vorteil durch die Verwendung Ihrer vorhandenen lokalen Software Assurance-fähigen Lizenzen für Windows Server und SQL Server auf der Azure-Plattform profitieren.

Dieses Diagramm zeigt ein Beispiel für SQL Server Enterprise-Einsparungen.

Graph of SQL hybrid savings, depicting enterprise at $3.97 per hour and hybrid at $0.598 per hour. This represents an 85% savings.

Was sind Tools zur Migrationsunterstützung?

Microsoft bietet eine Reihe von Tools für die Migrationsunterstützung, mit denen Sie Ihre vorhandene Umgebung bewerten können, Probleme hervorheben können, die evtl. während der Migration auftreten, und die den eigentlichen Prozess zum Einbinden Ihrer Anwendung und ihrer Daten in die Cloud unterstützen.

Was ist Azure Migrate?

Azure Migrate ist ein kostenloser und von Microsoft bereitgestellter Dienst, der lokale Systeme ermittelt, bewertet und zu Azure migriert. Der Dienst unterstützt Sie bei der Berechnung der leistungsbasierten Dimensionierung (VM-Größe und Compute/Speicher) der zu migrierenden Computer und der Schätzung der laufenden Kosten für die Ausführung dieser Computer in Azure. Azure Migrate kann sowohl Hyper-V- als auch VMware-basierte VMs sowie physische Server bewerten. Azure Migrate unterstützt auch die Visualisierung der Abhängigkeiten für diese Computer. Dadurch können Sie Gruppen von Computern erstellen, die sich zusammen bewerten und anschließend gleichzeitig zu Azure migrieren lassen. Da alle Abhängigkeiten nachvollziehbar sind, können Sie sicher sein, dass keine Komponenten bei der Migration vergessen werden.

Was ist der Azure Migration Assistant?

Der Azure Migration Assistant ist ein Tool, mit dem Sie die Migration Ihrer ASP.NET-Anwendung zur Cloud durchführen können. Er wird zusammen mit dem App Service Migration Assistant eingesetzt, der Ihre Migration zur Cloud vereinfachen soll, indem eine kostenlose, einfache und schnelle Lösung für die Migration von ASP.NET-Anwendungen von einem lokalen Standort in die Cloud verwendet wird. Mit diesen Tools können Sie folgende Aktionen ausführen:

  • Einstufen Ihrer App als Kandidat für die Migration durch einen Scan ihrer öffentlichen URL

  • Herunterladen des Migrations-Assistenten zum Starten der Migration

  • Verwenden des Tools, um Bereitschaftsprüfungen und eine allgemeine Bewertung der Konfigurationseinstellungen Ihrer App auszuführen, und anschließendes Migrieren Ihrer App oder Website zu Azure App Service

Was ist der Datenmigrations-Assistent?

Mit dem Datenmigrations-Assistenten können Sie ein Upgrade auf eine moderne Datenplattform durchführen, indem Sie Kompatibilitätsprobleme erkennen, die sich in Ihrer neuen Version von SQL Server oder Azure SQL-Datenbank auf die Datenbankfunktionalität auswirken können. Der Assistent empfiehlt Leistungs- und Zuverlässigkeitsverbesserungen Ihrer Zielumgebung und ermöglicht Ihnen, Schema, Daten und abhängige Objekte vom Quellserver zum Zielserver zu verschieben.

Wichtigste Funktionen:

  • Bewerten von lokalen SQL Server-Instanzen, um Probleme mit einer Migration zu erkennen, die aus Kompatibilitätsproblemen oder mangelnder Funktionsunterstützung resultieren

  • Entdecken neuer Features in Azure SQL-Datenbank, die Sie nutzen können

  • Migrieren von lokalen SQL Server-Instanzen zur Cloud

  • Bewerten von lokalen SQL Server Integration Services-Paketen, die zu Azure SQL-Datenbank migriert werden

Bewerten Ihrer vorhandenen Umgebung

Ein kritischer Schritt im Migrationsprozess ist die Bewertung Ihrer vorhandenen Umgebung. Dies gewährleistet einen reibungslosen Übergang für Ihr Migrationsszenario und kann auch hilfreich sein, vor, während und nach der Migration potenziell auftretende Probleme zu erkennen.

Inventarisieren der vorhandenen Umgebung

Die vorhandene Umgebung zu inventarisieren, erleichtert Ihnen das Identifizieren der Server, Anwendungen und Dienste, die unter die Migration fallen. Beauftragen Sie Ihre mit diesen Diensten arbeitenden IT- und Geschäftsteams damit, Anweisungen, Feedback und Unterstützung für die Migration zu leisten.

Als Nächstes sollten Sie eine vollständige Inventur und ein Abhängigkeitsdiagramm der Server und Dienste erstellen, die von der Migration betroffen sind. Die Inventur und das Diagramm ermitteln, wie diese Dienste miteinander kommunizieren. Sie können dabei helfen, die Onlineumgebungsanforderungen zu definieren, um eine erfolgreiche Migration sicherzustellen.

Identifizieren der erforderlichen App-Änderungen

Wahrscheinlich sind Änderungen in Ihrer Anwendung erforderlich, damit sie nach der Migration ordnungsgemäß funktioniert. Beispielsweise greift Ihre ASP.NET-Anwendung auf eine Datenbank zu. Die Datenbankverbindungszeichenfolge muss wahrscheinlich geändert werden. Ein Vorteil der Verwendung von Azure ist die Möglichkeit, die Datenbankverbindungszeichenfolge als Geheimnis in Azure Key Vault zu speichern. So werden die Authentifizierungsparameter in der Verbindungszeichenfolge durch „Verstecken“ der Verbindungszeichenfolge hinter einem Geheimnis im Schlüsseltresor geschützt. Sie können Ihre App dann so konfigurieren, dass sie dieses Geheimnis und nicht direkt die Verbindungszeichenfolge verwendet.

Schätzen der Kosten

Ein wichtiger Aspekt bei jedem Migrationsszenario sind die Kosten, die Ihrer Organisation beim Hosten der Anwendung in Azure entstehen. Sie wechseln zu einem Kostenmodell, das sich von einer typischen lokalen Umgebung unterscheidet. In der Azure-Umgebung werden Ihnen monatlich verschiedene Verbrauchskosten in Rechnung gestellt, die sich aus den Compute-, Speicher- und Zugriffskosten zusammensetzen.

In der vorherigen Lerneinheit wurde der Azure-Preisrechner vorgestellt, mit dessen Hilfe Sie Ihre geschätzten Ausgaben bewerten können.

Überlegungen zur Sicherheit

Sicherheit hat und sollte bei jedem Migrationsszenario höchste Priorität haben. Vielleicht machen Sie sich Sorgen über das Hosting von Daten in einer Onlinewelt, oder Sie fragen sich, ob Ihre Mitarbeiter weiterhin die aktuellen Anmeldeinformationen für den Zugriff auf die Anwendungen verwenden können. Sie sind auch wegen der Einhaltung von Branchenstandards für die Datensicherheit besorgt. Wenn Sie die in Azure verfügbaren Optionen kennen, können Sie diese Probleme behandeln.

Bewerten der Sicherheitsanforderungen für Ihre App

In einem ASP.NET-Anwendungsszenario, in dem die App auf einen Datenspeicher zugreifen muss, müssen Sie überlegen, wie Sie die Datenbank schützen, während Sie weiterhin Zugriff auf das Web-Front-End gewähren. Azure unterstützt dies mit virtuellen Netzwerken. Mit virtuellen Azure-Netzwerken können Sie:

  • Erstellen einer von Ihnen kontrollierten Hybridinfrastruktur

  • Verwenden eigener IP-Adressen und DNS-Server

  • Schützen Ihrer Verbindungen mit einem IPsec-VPN (Virtual Private Network) oder Azure ExpressRoute

  • Differenzierte Kontrolle über den Datenverkehr zwischen Subnetzen

  • Erstellen durchdachter Netzwerktopologien mit virtuellen Geräten

  • Schaffen einer isolierten und hochsicheren Umgebung für Ihre Anwendungen

Sie könnten auch auf lokal ausgeführte Anwendungen zugreifen, indem Sie Active Directory zur Authentifizierung und Identitätsverwaltung verwenden. Mit Microsoft Entra Connect können Sie Ihre lokalen Verzeichnisse in die Microsoft Entra-ID integrieren. Das bedeutet, dass Mitarbeiter*innen nicht mehr mehrere Anmeldeinformationen für die Authentifizierung benötigen.

Ähnlich wie beim Inventarisieren Ihrer lokalen Umgebung für Apps und Hardware sollten Sie auch die vorhandenen Sicherheitsanforderungen und die Implementierung ermitteln, damit Sie eine angemessene Sicherheitsbewertung für das Migrationsszenario durchführen können. Sie möchten sicherstellen, dass eine in der Cloud gehostete Umgebung weiterhin den Sicherheitsanforderungen Ihrer Organisation entspricht.

Erkunden von Azure Pipelines für ein Migrationsszenario

Viele Organisationen implementieren DevOps-Praktiken für eine flexiblere Entwicklung und schnellere Bereitstellungen. Einer der wichtigsten Bereiche, der dies in einer Cloudumgebung ermöglicht, ist die native Integration in die von Entwicklern verwendeten Tools. Microsoft Visual Studio, GitHub und App Service-Integration ermöglichen es Ihren Entwicklern, Änderungen schneller zu erstellen und bereitzustellen. Bei ASP.NET-Anwendungen bieten Remote- und Live-Site-Debuggen Entwicklern einen größeren Vorteil bei der Diagnose von Problemen in Ihrer Produktionsumgebung.