Bearbeiten

Migrieren zu Containern per Lift & Shift mit Azure App Service

Microsoft Entra ID
Azure Container Registry
Azure App Service

Lösungsmöglichkeiten

Dieser Artikel ist ein Lösungsvorschlag. Wenn Sie möchten, dass wir diesen Artikel um weitere Informationen ergänzen, z. B. potenzielle Anwendungsfälle, alternative Dienste, Überlegungen zur Implementierung oder Preisempfehlungen, lassen Sie es uns über Feedback auf GitHub wissen.

Mithilfe dieser Lösung werden vorhandene Web-Apps zu Containern migriert, die in App Service bereitgestellt werden. So können Sie sich auf das Zusammenstellen von Containern konzentrieren, ohne sich um die Verwaltung der Containerorchestrierung kümmern zu müssen.

Aufbau

Diagramm zeigt die Migration bestehender Anwendungen zu Containern in Azure Kubernetes Service mit Open Service Broker für Azure für den Zugriff auf Azure-Datenbanken.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Entwickler konvertiert eine vorhandene Webanwendung in einen Container.
  2. Entwickler veröffentlicht das Containerimage in:
    1. Eine private Registrierung oder Docker Hub
    2. Alternativ: Azure Container Registry
  3. App Service ruft das Image per Pull ab über:
    1. Anmeldeinformationen für die private Registrierung oder Docker Hub (falls verwendet)
    2. Oder verwaltete Identität, die einen Microsoft Entra-Sicherheitsprinzipal für den Zugriff auf Azure Container Registry verwendet.
  4. Dienstconnectors für den Zugriff auf andere Azure-Ressourcen.
  5. Entwickler verschiebt das neue Image in die Containerregistrierung, wodurch App Service-Updates ausgelöst werden, wenn Continuous Deployment aktiviert ist.

Komponenten

Web-App für Container: Mit App Service können Sie Container-Web-Apps unter Windows und Linux bereitstellen und ausführen. Die Web-App für Container bietet Entwicklern einen einfachen Einstieg zur Nutzung einer vollständig verwalteten Plattform, eignet sich aber auch für Entwickler, die ein einziges bereitstellungsfähiges Artefakt benötigen, das eine App und alle zugehörigen Abhängigkeiten enthält. Ein weiteres Zielszenario sind Entwickler, die mit einem benutzerdefinierten Framework oder einer Version arbeiten möchten, die über die in der Azure App Service-Plattform integrierten Standardeinstellungen hinausgeht. Container-Web-Apps in Azure App Service können nach Bedarf skaliert werden und optimierte CI/CD-Workflows mit Docker Hub, Azure Container Registry und GitHub verwenden.

Azure Container Registry: Dies ist eine Registrierung für Docker- und OCI-Images (Open Container Initiative), die alle OCI-Artefakte unterstützt. Verwenden Sie Containerimages in Azure-Diensten wie App Service, Machine Learning und Batch. Wenn Sie beispielsweise die Web-App für Container für Ihre Web-App konfigurieren, können Sie ein Containerimage aus Azure Container Registry angeben.

Azure Cosmos DB: Dies ist ein vollständig verwalteter NoSQL-Datenbankdienst zum Erstellen und Modernisieren skalierbarer Hochleistungsanwendungen. Azure Cosmos DB ist in zentrale Azure-Dienste integriert, darunter Azure Functions, IoT Hub, AKS (Azure Kubernetes Service) und App Service. Sie können aus mehreren Datenbank-APIs wählen, einschließlich der nativen Instanzen von Azure Cosmos DB for NoSQL, Azure Cosmos DB for MongoDB, Azure Cosmos DB for Apache Cassandra, Azure Cosmos DB for Apache Gremlin und Azure Cosmos DB for Table.

Azure SQL-Datenbank: eine vollständig verwaltete relationale Datenbank mit integrierter Intelligenz Azure SQL-Datenbank hilft Ihnen, Anwendungen lokal oder in der Cloud auf beliebten Plattformen und Frameworks mit Treiberunterstützung für die am häufigsten verwendeten Sprachen zu erstellen. Mithilfe von SQL-Datenbank können Sie die Entwicklung mit nativer Unterstützung für Websites vereinfachen, die in Azure App Service ausgeführt werden.

Azure Storage: Azure Storage bietet eine dauerhafte, hochverfügbare, hochgradig skalierbare Cloudspeicherlösung und umfasst Objekt-, Datei-, Datenträger-, Warteschlangen- und Tabellenspeicher. Azure Storage umfasst Dienste für Objekt-, Block- und Dateispeicher, um die Anforderungen Ihrer Website zu erfüllen. Websites können beispielsweise problemlos Azure Blob Storage zur skalierbaren und sicheren Blockspeicherung für Websitemedien wie Fotos und Videos verwenden.

Azure Monitor: Application Insights bietet Integritäts- und Leistungsüberwachung sowie Diagnosefunktionen. Azure Monitor kann mit der Web-App für Container (App Service) verwendet werden, um Websitemetriken wie die Anzahl der Verbindungen und die Anzahl der Anforderungen zu überwachen, die zu HTTP-Statuscodes führen.

Azure-Dienstconnector: Mithilfe des Dienstconnectors können Sie Azure-Computedienste mit anderen Unterstützungsdiensten verbinden. Verwenden Sie beispielsweise einen Dienstconnector zwischen Azure App Service und Azure Database for MySQL oder PostgreSQL, Azure Storage und Azure Key Vault. Eine vollständige Liste der unterstützten Dienste finden Sie unter Welche Dienste werden vom Dienstconnector unterstützt?

Szenariodetails

Migrieren Sie ganz leicht vorhandene Webanwendungen zu Containern, und führen Sie die Container-Web-Apps in der Web-App für Container in Azure App Service aus. Durch die Web-App für Container können Sie sich auf das Zusammenstellen von Containern konzentrieren, ohne sich mit dem Verwalten und Warten eines zugrunde liegenden Containerorchestrators befassen zu müssen. Bei der Erstellung von Web-Apps ist die Web-App für Container eine gute Option, um die ersten Schritte mit Containern durchzuführen. Ihre Container können problemlos andere Azure-Ressourcen wie Speicher- und Datenbankdienste integrieren.

Wenn Sie vorhandene Web-Apps mit Azure-Ressourcen integrieren, können Sie auch kennwortlose Verbindungen für Azure-Dienste nutzen. „Kennwortlose Verbindungen“ ist0 ein sprachunabhängiges Feature, das mehrere Azure-Dienste umfasst. Wenn Sie kennwortlose Verbindungen verwenden, stellen Ihre Web-Apps eine Verbindung mit Azure-basierten Diensten her, ohne dass Kennwörter rotiert werden müssen. Alles, was Sie benötigen, ist die Konfiguration – es ist kein neuer Code erforderlich.

Mögliche Anwendungsfälle

Dieser Lösungsansatz eignet sich ideal für die Migration aktueller Webanwendungen zu Containern, die auf Azure ausgeführt werden. Mithilfe dieses Lösungsansatzes kann eine Website erstellt werden, wenn folgende Punkte zutreffen:

  • Verwendung einer vorhandenen Programmieroberfläche zur Erstellung von Websites mit Codebereitstellung, um in Containern bereitgestellte Websites zu erstellen. Migration vorhandener Web-Apps per Lift & Shift zu Containern in App Service.

  • Vereinfachte Entwicklung und Bereitstellung mit Tools wie Visual Studio, Visual Studio Code, Azure CLI und Azure Cloud Shell.

  • Portierung in unterschiedliche Umgebungen von der Entwicklung bis hin zur Produktion sowie in verschiedene Clouds. Sie können lokale Tests auf einer anderen Plattform als der für die Produktion bereitgestellten durchführen.

  • Die Skalierbarkeit in App Service bedeutet, dass Sie die Anzahl verwendeter Worker nach Bedarf skalieren können.

  • Modularität für zukünftige Arbeiten an Websites entweder in App Service oder in anderen Diensten wie Azure Container Apps und Azure Kubernetes Service. Die Web-App für Container kann einen guten ersten Einstieg für die Umstellung auf Container bieten.

  • Ein in der Web-App für Container bereitgestellter Container ist bereit für CI/CD (Continuous Integration/Continuous Deployment). CI/CD-Funktionen ermöglichen Ihnen eine schnellere Verteilung von Updates.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Melden Sie sich bei LinkedIn an, um nicht öffentliche LinkedIn-Profile anzuzeigen.

Nächste Schritte

Beispiele für Sprachenbereitstellungen von Containern in App Service:

Zugehörige Architekturleitfäden: