Lift and shift to containers with Azure-app Service

Microsoft Entra ID
Azure Container Registry
Azure App Service

Oplossingsideeën

Dit artikel is een oplossingsidee. Als u wilt dat we de inhoud uitbreiden met meer informatie, zoals mogelijke use cases, alternatieve services, implementatieoverwegingen of prijsrichtlijnen, laat het ons dan weten door GitHub-feedback te geven.

Met deze oplossing worden bestaande web-apps gemigreerd naar containers die zijn geïmplementeerd in App Service, zodat u zich kunt richten op het opstellen van containers die zich geen zorgen maken over het beheren van containerindeling.

Architectuur

Architectuurdiagram toont bestaande toepassingsmigratie naar containers in Azure Kubernetes Service met Open Service Broker voor Azure voor toegang tot Azure-databases.

Een Visio-bestand van deze architectuur downloaden.

Gegevensstroom

  1. Ontwikkelaar converteert bestaande webtoepassing naar container.
  2. Ontwikkelaar publiceert containerinstallatiekopieën naar:
    1. Een privéregister of Docker Hub.
    2. Of een Azure Container Registry.
  3. App Service haalt een installatiekopie op met:
    1. Referenties voor privéregister of Docker Hub, indien gebruikt.
    2. Of beheerde identiteit, die gebruikmaakt van een Microsoft Entra-beveiligingsprincipaal voor toegang tot Azure Container Registry.
  4. Serviceconnectors voor toegang tot andere Azure-resources.
  5. Ontwikkelaar pusht nieuwe installatiekopieën naar het containerregister, waardoor App Service-updates worden geactiveerd wanneer continue implementatie is ingeschakeld.

Onderdelen

Web App for Containers: Met App Service kunt u web-apps in containers implementeren en uitvoeren in Windows en Linux. Web App for Containers biedt ontwikkelaars een eenvoudige on-ramp om te profiteren van een volledig beheerd platform, maar die ook één implementeerbaar artefact met een app en alle bijbehorende afhankelijkheden wil. Een ander doelscenario is ontwikkelaars die willen werken met een aangepast framework of een aangepaste versie buiten de standaardwaarden die zijn ingebouwd in het Azure-app Service-platform. In containers geplaatste web-apps in Azure-app Service kunnen naar behoefte worden geschaald en gestroomlijnde CI/CD-werkstromen worden gebruikt met Docker Hub, Azure Container Registry en GitHub.

Azure Container Registry: een register van Docker- en Open Container Initiative-installatiekopieën (OCI), met ondersteuning voor alle OCI-artefacten. Gebruik containerinstallatiekopieën in Azure-services, zoals App Service, Machine Learning en Batch. Als u bijvoorbeeld Web App for Containers configureert voor uw web-app, kunt u een containerinstallatiekopieën opgeven vanuit Azure Container Registry.

Azure Cosmos DB: een volledig beheerde NoSQL-databaseservice voor het bouwen en moderniseren van schaalbare, krachtige toepassingen. Azure Cosmos DB is geïntegreerd met belangrijke Azure-services, waaronder Azure Functions, IoT Hub, AKS (Azure Kubernetes Service), App Service en meer. U kunt kiezen uit meerdere database-API's, waaronder de systeemeigen Azure Cosmos DB for NoSQL, Azure Cosmos DB voor MongoDB, Azure Cosmos DB voor Apache Cassandra, Azure Cosmos DB voor Apache Gremlin en Azure Cosmos DB for Table.

Azure SQL Database: Een volledig beheerde relationele database met ingebouwde intelligentie. Met Azure SQL Database kunt u toepassingen lokaal of in de cloud bouwen op populaire platforms en frameworks met stuurprogrammaondersteuning voor de meest voorkomende talen. Met SQL Database kunt u de ontwikkeling vereenvoudigen met systeemeigen ondersteuning voor websites die worden uitgevoerd in Azure-app Service.

Azure Storage: Azure Storage biedt een duurzame, maximaal beschikbare, zeer schaalbare cloudopslagoplossing en bevat object-, bestands-, schijf-, wachtrij- en tabelopslag. Azure Storage bevat services voor object-, blok- en bestandsopslag om te voldoen aan de vereisten van uw website. Websites kunnen bijvoorbeeld eenvoudig Azure Blob Storage gebruiken voor schaalbare en veilige blokopslag voor websitemedia zoals foto's en video's.

Azure Monitor: Application Insights, biedt status- en prestatiebewaking en diagnostische gegevens. Azure Monitor kan worden gebruikt met Web App for Containers (App Service) om metrische websitegegevens te bewaken, zoals het aantal verbindingen en het aantal aanvragen dat resulteert in HTTP-statuscodes.

Azure Service Verbinding maken or: Service Verbinding maken or helpt u Azure Compute-services te verbinden met andere back-upservices. Gebruik bijvoorbeeld een serviceconnector tussen Azure-app Service en Azure Database for MySQL of PostgreSQL, Azure Storage en Azure Key Vault. Zie Services worden ondersteund in Service Verbinding maken or voor een volledige lijst met ondersteunde services.

Scenariodetails

Migreer eenvoudig bestaande webtoepassingen naar containers en voer de in containers geplaatste web-apps uit in Web App for Containers in Azure-app Service. Met Web App for Containers kunt u zich richten op het opstellen van uw containers zonder dat u zich zorgen hoeft te maken over het beheren en onderhouden van een onderliggende containerorchestrator. Wanneer u web-apps bouwt, is Web App for Containers een goede optie voor het uitvoeren van uw eerste stappen met containers. Uw containers kunnen eenvoudig andere Azure-resources, zoals opslag- en databaseservices, integreren.

Wanneer u bestaande web-apps integreert met Azure-resources, kunt u ook profiteren van verbindingen zonder wachtwoord voor Azure-services. Verbindingen zonder wachtwoord is een taalagnostische functie die meerdere Azure-services beslaat. Wanneer u verbindingen zonder wachtwoord gebruikt, maken uw web-apps verbinding met azure-services zonder dat u wachtwoorden hoeft te roteren. U hebt alleen configuratie nodig. Er is geen nieuwe code vereist.

Potentiële gebruikscases

Dit oplossingsidee is ideaal voor het migreren van huidige webtoepassingen naar containers die worden uitgevoerd in Azure. Dit oplossingsidee kan worden gebruikt om een website te maken wanneer het volgende van toepassing is:

  • Maakt gebruik van bestaande programmeerervaring die wordt gebruikt voor het maken van door code geïmplementeerde websites om door containers geïmplementeerde websites te maken. Bestaande web-apps opheffen en verplaatsen naar containers in App Service.

  • Vereenvoudigde ontwikkeling en implementatie met hulpprogramma's zoals Visual Studio, Visual Studio Code, Azure CLI en Azure Cloud Shell.

  • Portabiliteit in verschillende omgevingen, van dev tot productie en verschillende clouds. U kunt lokaal testen op een ander platform dan wat voor productie is geïmplementeerd.

  • Schaalbaarheid in App Service betekent dat u het aantal werkrollen dat op aanvraag wordt gebruikt, kunt uitschalen.

  • Modulariteit voor toekomstige websites werkt in App Service of in andere services zoals Azure Container Apps en Azure Kubernetes Service. Web App for Containers kan een goede eerste stap zijn voor het verplaatsen naar containers.

  • Een container die is geïmplementeerd in Web App for Containers, is gereed voor continue integratie en continue implementatie (CI/CD). Met CI/CD-mogelijkheden kunt u sneller updates verzenden.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Voorbeeldtaalimplementaties van containers in App Service:

Verwante richtlijnen voor architectuur: