Table of Contents
Azure Container Apps (ACA) is een volledig beheerd, serverloos containerplatform op Microsoft Azure dat de complexiteit van Kubernetes orkestratie wegneemt terwijl het nog steeds krachtige schaalvergroting, event-driven mogelijkheden en ingebouwde applicatiepatronen biedt. Het is ontworpen voor moderne applicatieontwikkeling waarbij teams microservices, achtergrondtaken en API-eindpunten moeten inzetten zonder virtuele machines, clusters of orkesteurs te voorzien of te beheren. Door de flexibiliteit van containers te combineren met serverloze eenvoud, stelt ACA ontwikkelaars in staat zich te concentreren op code en bedrijfslogica terwijl Azure de onderliggende infrastructuur, schaalvergroting en beveiliging behandelt.
Wat zijn Azure Container Apps?
Azure Container Apps werkt als een beheerde omgeving voor het uitvoeren van containergeperfectioneerde workloads, zittend tussen Azure App Service (voor webapps) en Azure Kubernetes Service (AKS) (voor volledige clustercontrole). Het biedt een vereenvoudigde Kubernetes ervaring zonder dat directe interactie met de cluster API server vereist. ACA maakt gebruik van Kubernetes onder de kap, maar abstracteert zijn operationele complexiteit, waardoor het ideaal voor teams die container voordelen willen portabiliteit, consistentie, resource isolatie .. zonder het beheren van nodes, pods, of load balancers.
Elke Container App draait in een revisie-gebaseerde omgeving waar u meerdere revisies kunt implementeren en het verkeer splitsen kunt beheren. Het platform ondersteunt event-gedreven architecturen door ingebouwde integratie met KEDA (Kubernetes Event-Driven Autoscaling) en Dapr (Gedistribueerde Applicatie Runtime) voor het bouwen van veerkrachtige, microservices gebaseerde toepassingen. Container Apps ondersteunt ook schaalvergroting tot nul, wat betekent dat u alleen betaalt voor het berekenen wanneer verzoeken actief zijn .perfect voor sporadische workloads, achtergrondprocessors of batch jobs.
Kernfuncties en -mogelijkheden
Serverloze architectuur en automatische schaalverdeling
ACA
Ingebouwde Dapr-ondersteuning
Dapr biedt een set bouwstenen (staatsbeheer, pub/sub, service-invocatie, geheimen, bindingen) die gebouw gedistribueerde toepassingen vereenvoudigen. ACA integreert Dapr op platformniveau, zodat u deze per Container App kunt inschakelen zonder het beheer van een aparte zijspan of infrastructuur. Dit vermindert de boilerplate code en versnelt de ontwikkeling van robuuste microservices.
Herzieningsmanagement en verkeerssplitsing
Container Apps gebruikt een revisiemodel dat vergelijkbaar is met Azure App Service: elke code of configuratiewijziging zorgt voor een nieuwe revisie, terwijl oude revisies beschikbaar blijven. U kunt verkeerspercentages instellen tussen revisies voor blauwgroene implementaties, A/B-tests of gefaseerde uitrollers. Revisies kunnen actief, gedeactiveerd of gebruikt worden voor terugrol, waardoor u fijne controle krijgt over de inzetveiligheid.
Ingangs- en aangepaste domeinnamen
Elke Container App ontvangt een uniek HTTPS-eindpunt (bv. ). U kunt aangepaste domeinen toewijzen met SSL/TLS-certificaten, invoegen instellen om intern (VNet) of extern verkeer toe te staan, en verkeersregels instellen voor routering op paden via meerdere apps.
Milieu en netwerken
Container Apps bevinden zich in een Container Apps Environment[, die fungeert als een veilige grens rond uw apps. De omgeving ondersteunt de integratie van VNet (externe of interne omgevingen), waardoor privé-communicatie tussen apps, databases en andere Azure-diensten mogelijk is. U kunt ook privé-eindpunten en netwerkbeveiligingsgroepen gebruiken om het verkeer te regelen.
Beheerde identiteit en geheimen
ACA ondersteunt Azure Managed Identiteiten, waardoor uw containers te authenticeren naar Azure diensten (Key Vault, Storage, SQL Database) zonder hardcoding referenties. Geheimen kunnen direct worden verwezen vanuit Azure Key Vault, en omgevingsvariabelen of volumes kunnen worden geïnjecteerd op runtime.
Azure Container Apps inzetten
Het inzetten van een Container App omvat verschillende stappen, van het containeriseren van uw applicatie tot het configureren van de omgeving en het schalen van regels. Hieronder is een uitgebreide workflow.
Stap 1: Bereid en duw uw container afbeelding
Begin met het maken van een Dockerfile voor uw toepassing (bijv. .NET, Node.js, Python, Go). Zorg ervoor dat de afbeelding geoptimaliseerd is (multi-stage bouwt, minimale basisafbeeldingen). Druk de afbeelding naar een containerregister Azure Container Register (ACR) voor nabijheid en integratie. Als u een openbaar register zoals Docker Hub gebruikt, kan ACA zich daar ook vandaan trekken, maar ACR biedt snellere trekjes binnen het Azure netwerk.
Stap 2: Maak een Container App-omgeving
Voordat u een app instelt, moet u een Container Apps Environment maken. Dit kan via het Azure Portal, Azure CLI, Bicep, ARM of Terraform. De omgeving definieert de regio, virtueel netwerk (optioneel), en of het intern of openbaar is. Voor productie, stelt u de integratie van VNet in staat om uitgaande verkeer te beveiligen en gebruik te maken van private endpoints. Voorbeeld CLI commando:
az containerapp env create --name MyEnvironment --resource-group MyRG --location eastusStap 3: Definieer en deployeer de Container App
Gebruik het commando om de app te definiëren, de afbeelding, omgevingsvariabelen, geheimen, instellingen voor ingang en schalen te refereren. Voorbeeld:
az containerapp create --name myapp --resource-group MyRG \
--environment MyEnvironment --image myregistry.azurecr.io/myapp:v1 \
--target-port 8080 --ingress external --query properties.configuration.ingress.fqdnDit creëert een revisie en stelt de app bloot via een automatisch gegenereerde FQDN. U kunt de app later bijwerken met nieuwe afbeeldingen, omgevingsvariabelen of schaalregels met behulp van .
Stap 4: Geheimen en Beheerde Identiteit instellen
Bewaar gevoelige waarden (connectiestrings, API-toetsen) in Azure Key Vault en referentie ze als geheimen in uw Container App. Schakel een systeem toegewezen of door de gebruiker toegewezen beheerde identiteit in zodat uw app kan authenticeren naar Key Vault en andere Azure bronnen zonder referenties in code.
Stap 5: Stel regels voor schaalverdeling in
Autoscale instellen op basis van HTTP-verzoeken, CPU, geheugen of aangepaste eventbronnen (bijv. Azure Service Bus-wachtrijen, Kafka, RabbitMQ). Gebruik KEDA-scalers om schaalverdeling van externe systemen te activeren. Bijvoorbeeld om te schalen op basis van het aantal berichten in een wachtrij:
az containerapp update --name myapp --resource-group MyRG \
--min-replicas 0 --max-replicas 10 \
--scale-rule-name queue-scaler --scale-rule-type azure-queue \
--scale-rule-auth connection=queue-connection-string \
--scale-rule-metadata "queueName=myqueue" "queueLength=5"Beheer van Azure Container Apps
Eenmaal ingezet, houdt continu beheer in dat wordt toegezien, bijgewerkt en verfijnd en beveiliging wordt gewaarborgd.
Herzieningsbeheer en implementatiestrategieën
Gebruik het revisiemodel om uw app zonder downtime bij te werken. Wanneer u een nieuwe afbeelding pusht of de configuratie wijzigt, maakt ACA een nieuwe revisie. Standaard gaat alle verkeer naar de laatste revisie. Om een blauwgroene implementatie te implementeren:
- Update de app met een nieuwe revisie (houd de oude actief).
- Stuur een klein percentage van het verkeer naar de nieuwe herziening.
- Geleidelijk verhogen van het verkeer tijdens het monitoren van fouten en latentie.
- Indien stabiel, route 100% verkeer naar de nieuwe revisie en deactiveer de oude.
Deze aanpak minimaliseert risico's en maakt een snelle terugrol mogelijk door het verkeer terug te schakelen naar een vorige herziening.
Monitoring met Azure Monitor en Log Analytics
Integratie met Azure Monitor is automatisch. U kunt metrics (verzoeken tellen, CPU, geheugen, replica tellen) in de Azure Portal weergeven. Voor gedetailleerde logs, configureren van uw Container App om stdout/stderr en systeemlogs naar een Log Analytics werkruimte te sturen. Gebruik Kusto queries om afwijkingen te detecteren, debugfouten te analyseren of verkeerspatronen te analyseren. U kunt ook Application Insights inschakelen voor gedistribueerde tracing en prestatiebewaking.
Autoschaling in de productie
Terwijl standaard autoscaleing goed werkt voor veel scenario's, vereisen productie-apps vaak aangepaste KEDA-scalers. Veel voorkomende voorbeelden: schaalverdeling op basis van Azure Service Busberichttelling, Azure Event Hubs achterstand, of een aangepaste Prometheus-metriek. Zorg ervoor dat u geschikte min en max replica's instellen om basisverkeer en burstcapaciteit te behandelen. Gebruik de Azure portal of CLI om de schaalgeschiedenis te monitoren en drempels aan te passen.
Containers bijwerken en terugrollen
Container Apps ondersteunt nul-downtime updates door revisie-activering. Wanneer u een nieuwe afbeelding instelt, wordt de nieuwe revisie gestart parallel met de oude. Zodra de nieuwe revisie gezond is, wordt het verkeer omgeleid. Als gezondheidscontroles mislukken, kan ACA automatisch terugdraaien. Voor handmatig terugdraaien, zet u het verkeersgewicht gewoon terug op 100% bij de vorige revisie.
Beste praktijken op het gebied van beveiliging
Beheerde identiteiten voor Azure bronnen
Schakel de systeem-toegewezen beheerde identiteit in voor uw Container App. Hiermee kan de app toegang krijgen tot Key Vault, Storage en databases zonder dat de referenties in de container image of omgevingsvariabelen worden opgeslagen. Gebruik de identiteit om te authenticeren via Azure AD.
Geheim beheer met sleutelkluis
Nooit hardcode geheimen. Bewaar alle gevoelige gegevens in Azure Key Vault en referentie ze in uw Container App configuratie als geheime referenties. ACA injecteert deze automatisch als omgevingsvariabelen of volume mounts op runtime. Draai geheimen in Key Vault zonder opnieuw in te zetten.
Netwerkbeveiliging
Voor interne-only services, uw Container Apps-omgeving met extern verkeer uitgeschakeld. Gebruik VNet-integratie om uitgaande/inkomende verkeer via netwerkbeveiliging groepen te beperken. Voor inkomende verkeer vanuit publieke eindpunten, laat IP-beperking op intocht of gebruik Azure Front Door of API Management in de voorkant.
Container-imagebeveiliging
Gebruik vertrouwde basisafbeeldingen van Microsoft Artifact Registry of andere veilige bronnen. Scan afbeeldingen op kwetsbaarheden met behulp van Microsoft Defender voor containers of ORF.S geïntegreerde scannen. Sign afbeeldingen om integriteit te garanderen. Schakel ACR met privé-eindpunten in om blootstelling van het publiek te voorkomen.
Naleving en certificering
Azure Container Apps erft Azure compliance certificeringen (SOC, PCI DSS, HIPAA, ISO). Zorg ervoor dat uw omgeving wordt ingezet in een regio die voldoet aan de vereisten van data residency. Gebruik Azure Policy om governance af te dwingen (bijv., vereist VNet injectie of specifieke beeldregisters).
Kostenoptimalisatie
Verbruik vs. specifiek plan
ACA biedt twee prijsniveaus: Consument[ (pay per vCPU-seconde en memory-seconde) en Dedicated (gereserveerd vCPU en geheugen).Het verbruik is het beste voor variabele of lage verkeerswerkbelasting, terwijl Dedicated voorspelbare kosten en prestaties biedt voor steady-state productie-apps. Gebruik het verbruik voor dev/test- en schaal-tot-nul scenario's.
Autoschaling en scaleing naar nul
Stel minimale replica's in op 0 voor achtergrondtaken of API's met onvoorspelbaar verkeer. Dit garandeert geen rekenkosten wanneer deze niet inactief zijn. Stel voor kritieke paden die direct reageren, minimaal 1 in om koude start te voorkomen. Gebruik KEDA-scalers om te reageren op wachtrijdiepte of databasebelasting in plaats van altijd-op CPU.
Reserve-instanties en spaarplannen
Voor specifieke plannen, commit u aan een jaar of drie jaar gereserveerde gevallen tot 40% te besparen in vergelijking met pay-as-you-go. Azure spaarplannen zijn ook van toepassing op Container Apps berekenen. Analyseer uw gebruik en schatting basisverbruik voordat u reserveert capaciteit.
Efficiënte Container-afbeeldingen
Kleinere afbeeldingen verminderen pull tijd en opslagkosten. Gebruik Alpine of distroloze basisbeelden, maak de bouw artefacten en laag caches verstandig. Bewaar alleen de runtime in uw image .Houd bouwgereedschappen in een aparte bouwfase. Dit verbetert ook de opstarttijd en schaalsnelheid.
Integratie met andere Azure diensten
Azure Container Register
Gebruik ACR als uw privé-register voor Container Apps. Het ondersteunt geo-toepassing, beeldscannen en artefact ondertekening. Schakel account › admin .. of gebruik beheerde identiteit om pulls veilig te authenticeren. Voor cross-region implementaties, geo-replica uw afbeeldingen om latency te verminderen.
CI/CD Pijpleidingen met Azure DevOps en GitHub-acties
Automatiseer implementaties met Azure CLI-taken in Azure DevOps of GitHub-acties. U kunt een afbeelding bouwen, naar ACR pushen en de Container App-revisie bijwerken in één pijplijn. Voorbeeld GitHub Acties workflow stap:
- name: Deploy to Azure Container Apps
run: az containerapp update --name myapp --resource-group MyRG --image myacr.azurecr.io/myapp:latestGebruik implementatieslots (herzien verkeer splitsen) om veranderingen te poseren en te valideren voordat volledige uitrol.
Integratie door gebeurtenissen
Leveren Dapr
Beste praktijken voor moderne App-ontwikkeling
- Doe een microservice architectuur die aansluit bij ACA. revisie en intress model. Elke dienst moet zijn eigen Container App met onafhankelijke schaal- en levenscyclus hebben.
- Implementeer CI/CD-pijpleidingen die automatisch bouwen, testen, scannen en implementeren. Gebruik infrastructuur-as-code (Bicep/Terraform) om omgevingen te definiëren, zodat herhaalbaarheid wordt gewaarborgd.
- Prioriteer beveiliging vanaf het begin: gebruik beheerde identiteiten, Key Vault referenties, VNet integratie en beeldscannen. Draai geheimen regelmatig en audit toegang.
- Optimaliseren voor de kosten door het juiste plan te kiezen, verstandige min/max replica's in te stellen en gebruik te maken van gereserveerde capaciteit voor constante werkbelasting.
- Opmerkbaarheid inschakelen vroeg: verzend logs naar Log Analytics, activeer Application Insights en stel waarschuwingen in over foutenpercentages, aanvraaglatentie en replica's.
- Gebruik Dapr en KEDA om horizontale problemen aan te pakken: staatsbeheer, retrieves, pub/sub, en event-driven schaalvergroting. Dit vermindert ketelplaat en verbetert de veerkracht.
- Ontwerp voor het schalen naar nul als uw werklast het toelaat. Koude starts zijn meestal minder dan twee seconden voor eenvoudige containers; u kunt verzachten met gezondheidssondes en passende min replica's.
Door deze praktijken te volgen en Azure Container Apps te benutten, kunnen teams moderne toepassingen bouwen en bedienen die schaalbaar, veilig en kostenefficiënt zijn. Het platform vermindert de operationele overhead terwijl ontwikkelaars de vrijheid krijgen om elke taal, framework of tooling te gebruiken die in een container draait.
Voor officiële diep-duik begeleiding, zie Azure Container Apps documentatie. Voor meer informatie over gedistribueerde toepassingspatronen met Dapr, bezoek Dapr documentatie. Voor event-driven autoscaling voorbeelden, controleer de KEDA documentatie[.