Dela via


Välj en Azure-containertjänst

Azure tillhandahåller en rad värdtjänster för containrar som är utformade för att hantera olika arbetsbelastningar, arkitekturer och affärskrav. Den här guiden för val av containertjänst kan hjälpa ditt arbetsbelastningsteam att förstå vilken Azure-containertjänst som passar bäst för dina arbetsbelastningsscenarier och krav.

Notera

I den här guiden refererar arbetsbelastningen till en samling programresurser som stöder ett affärsmål eller implementeringen av en affärsprocess. En arbetsbelastning använder flera tjänster, till exempel API:er och datalager, som fungerar tillsammans för att leverera specifika funktioner från slutpunkt till slutpunkt.

Överblick

Den här guiden innehåller den här introduktionsartikeln och en annan artikel om överväganden som delas mellan alla arbetsbelastningstyper .

Notera

Om du inte vill använda containerbaserad teknik, väljer du ett annat beräkningsalternativ för att köra din arbetsbörda.

Den här introduktionsartikeln beskriver de Azure-containertjänster som beskrivs i den här guiden och jämför deras tjänstmodeller baserat på konfigurerbarhet och fördefinierade lösningar, till exempel kundhanterade och Microsoft-hanterade metoder. När du har identifierat kandidattjänster baserat på dina tjänstmodellinställningar är nästa steg att utvärdera alternativen mot dina arbetsbelastningskrav genom att läsa artikeln om delade överväganden för nätverk, säkerhet, åtgärder och tillförlitlighet.

Den här guiden hjälper dig att utvärdera kompromisser baserat på din arbetsbelastnings tekniska krav, storlek och komplexitet. Den tar även hänsyn till expertkunskapen hos ditt team för att säkerställa ett välgrundat beslutsfattande.

Azure-containertjänster i omfånget för den här guiden

Den här guiden fokuserar på en delmängd av de containertjänster som Azure tillhandahåller. Den här delmängden innehåller en mogen funktionsuppsättning för webbprogram och API:er, nätverk, observerbarhet, utvecklarverktyg och åtgärder. Följande containertjänster jämförs:

Azure Container Apps-logotyp

Azure Container Apps är en fullständigt hanterad plattform som gör att du kan köra containerbaserade program utan att behöva oroa dig för orkestrering eller infrastruktur. Mer information finns i Dokumentation om Container Apps.

AKS-logotyp

Azure Kubernetes Service (AKS) är en hanterad Kubernetes-tjänst för att köra containerbaserade program. Med AKS kan du dra nytta av hanterade tillägg och tillägg för extra funktioner samtidigt som du bevarar den bredaste konfigurerbarhetsnivån. Mer information finns i AKS-dokumentation.

App Service-logotyp

Web App for Containers är en funktion i Azure App Service. App Service är en fullständigt hanterad tjänst som är värd för HTTP-baserade webbappar som har inbyggt infrastrukturunderhåll, säkerhetskorrigeringar, skalning och diagnostikverktyg. Mer information finns i App Service-dokumentation.

En fullständig lista över Azure-containertjänster finns i Containrar i Azure.

Överväganden för tjänstmodell

En tjänstmodell hjälper dig att förstå hur mycket flexibilitet och kontroll varje Azure-containertjänst tillhandahåller. Komplexa tjänster ger mer kontroll, medan enklare tjänster gör hanteringen enklare men begränsar anpassningen.

Mer information om terminologi och begrepp för tjänstmodell, inklusive infrastruktur som en tjänst (IaaS) och PaaS (Plattform som en tjänst) finns i Delat ansvar i molnet.

Jämför tjänstmodellerna för Azure-containerlösningar

Azure Kubernetes Service (AKS)

AKS är en blandning av IaaS och PaaS som fokuserar mer på kontroll än enkelhet. Den använder Kubernetes, som är standardsystemet för orkestrering av containrar. AKS effektiviserar hanteringen av den underliggande kärninfrastrukturen. Den här vm-baserade plattformen exponeras dock för dina program och kräver lämpliga skyddsmekanismer och processer, till exempel korrigeringar, för att säkerställa säkerhet och affärskontinuitet. Beräkningsinfrastrukturen stöds av extra Azure-resurser som finns direkt i din prenumeration, till exempel Azure-lastbalanserare, containerregister eller programgatewayer.

AKS ger åtkomst till Kubernetes API-servern, vilket gör att du kan anpassa containerorkestrering och distribuera extra program från Cloud Native Computing Foundation. Därför står arbetsbelastningsteam som är nya för Kubernetes inför en betydande inlärningskurva. Om du inte känner till containerbaserade lösningar måste du överväga den här inlärningskurvan. Följande PaaS-lösningar ger en lägre inträdesbarriär. Du kan övergå till Kubernetes när dina krav kräver det.

Automatisk AKS

AKS Automatic gör det enklare att använda Kubernetes genom att automatisera komplexa klusterhanteringsuppgifter. Den här automatiseringen minskar behovet av avancerad Kubernetes-expertis. Det ger en mer strömlinjeformad, PaaS-liknande upplevelse samtidigt som Kubernetes flexibilitet och utökningsbarhet bibehålls. Azure hanterar klusterkonfiguration, nodetablering, skalning, säkerhetskorrigering och tillämpar bästa praxis-konfigurationer som standard. Den här automatiseringen minskar driftsinsatsen men begränsar de tillgängliga topologialternativen.

Notera

Den här guiden skiljer mellan AKS Standard och AKS Automatic i tillämpliga fall. Annars kan du anta att den beskrivna funktionen är konsekvent i båda erbjudandena.

Containerapplikationer

Container Apps är ett abstraktionslager ovanpå Kubernetes som gör att dina appar kan köras och skalas utan att kräva direkt hantering av den underliggande infrastrukturen. Container Apps innehåller både serverlösa och dedikerade beräkningsalternativ. De här alternativen ger dig fullständig kontroll över vilken typ och mängd beräkningsresurser som är tillgängliga för dina program. Container Apps abstraherar API:er för containerorkestrering och ger fortfarande inbyggd åtkomst till viktiga funktioner som ingress i Layer 7, trafikdelning, A/B-testning och livscykelhantering för program.

Webbapp för containrar

Web App for Containers är ett PaaS-erbjudande som prioriterar enkelhet framför kontroll jämfört med Container Apps. Den abstraherar containerorkestrering samtidigt som den stöder skalning, livscykelhantering för program, trafikdelning, nätverksintegrering och observerbarhet.

Överväganden för värdmodell

Du kan använda Azure-resurser, till exempel AKS-kluster, för att vara värd för flera arbetsbelastningar. Den här metoden kan hjälpa dig att effektivisera åtgärder, vilket minskar den totala kostnaden. Om du väljer det här alternativet bör du överväga följande funktioner:

  • AKS- används ofta som värd för flera arbetsbelastningar eller olika arbetsbelastningskomponenter. Du kan isolera dessa arbetsbelastningar och komponenter med kubernetes inbyggda funktioner, till exempel namnrymder, åtkomstkontroller och nätverkskontroller, för att uppfylla säkerhetskrav.

    Du kan också använda AKS i scenarier med en arbetsbelastning om du behöver de extra funktioner som Kubernetes API tillhandahåller och ditt arbetsbelastningsteam har tillräcklig erfarenhet av att använda ett Kubernetes-kluster. Team med mindre Kubernetes-upplevelse kan fortfarande effektivt hantera sina egna kluster med hjälp av Azure-hanterade tillägg och funktioner som automatisk uppgradering av kluster för att minska driften.

  • Container Apps ska användas som värd för en enskild arbetsbelastning med en delad säkerhetsgräns. Container Apps har en enda logisk gräns på den översta nivån som kallas för en Container Apps-miljö, som också fungerar som en förbättrad säkerhetsgräns. Det finns inga mekanismer för mer detaljerad åtkomstkontroll. Kommunikationen mellan miljöer är till exempel obegränsad och alla program delar en enda Log Analytics-arbetsyta.

    Om arbetsbelastningen har flera komponenter och säkerhetsgränser distribuerar du flera Container Apps-miljöer eller överväger AKS i stället.

  • Web App for Containers är en funktion i App Service. App Service grupperar program till en logisk beräkningsgräns som kallas en App Service-plan. Eftersom du kan begränsa rollbaserad åtkomstkontroll på programnivå kanske du vill vara värd för flera arbetsbelastningar i en enda plan. Det är dock bäst att vara värd för en enda arbetsbelastning för varje plan för att undvika det bullriga granneproblemet. Alla appar i en enda App Service-plan delar samma allokerade beräkning, minne och lagring.

    Tänk på att App Service-planer vanligtvis körs på infrastruktur som delas med andra Azure-kunder när du överväger maskinvaruisolering. Du kan välja Dedikerade nivåer för dedikerade virtuella datorer eller isolerade nivåer för dedikerade virtuella datorer i ett dedikerat virtuellt nätverk.

I allmänhet kan alla Azure-containertjänster vara värdar för flera program som har flera komponenter. Container Apps och Web App for Containers fungerar dock bäst för en enskild arbetsbelastningskomponent eller flera närbesläktade arbetsbelastningskomponenter som delar en liknande livscykel och ett enda team äger och kör programmet.

Om du behöver vara värd för olika, potentiellt orelaterade programkomponenter eller arbetsbelastningar på en värd bör du överväga AKS.

Kompromissen mellan kontroll och användarvänlighet

AKS ger mest konfigurerbarhet, men den konfigureringen kräver mer drift jämfört med de andra tjänsterna. Container Apps och Web App for Containers är båda PaaS-tjänster som har liknande nivåer av Microsoft-hanterade funktioner. Web App for Containers fokuserar på enkelhet för att betjäna målgruppen, vilket är befintliga App Service-kunder som är bekanta med gränssnittet.

Metodtips

Tjänster som ger mer enkelhet passar vanligtvis kunder som fokuserar på funktionsutveckling i stället för infrastrukturhantering. Tjänster som ger mer kontroll passar vanligtvis kunder som behöver konfigurerbarhet och har de kunskaper, resurser och affärsmotivationer som krävs för att hantera sin egen infrastruktur.

Delade överväganden för alla arbetsbelastningar

Ett arbetsbelastningsteam kanske föredrar en specifik tjänstmodell, men den modellen kanske inte uppfyller organisationens övergripande krav. Utvecklare kanske till exempel vill ha mindre driftsinsats, men säkerhetsteamen kan överväga den här kostnaden som krävs för efterlevnad. Teamen måste samarbeta för att göra rätt kompromisser.

Delade överväganden omfattar en mängd olika faktorer. Endast en delmängd av överväganden kan gälla för dig baserat på arbetsbelastningstypen. Din roll i organisationen påverkar också vilka överväganden som är relevanta.

Följande tabell innehåller en översikt över överväganden på hög nivå, inklusive jämförelse av tjänstfunktioner. Granska övervägandena i varje kategori och jämför dem med arbetsbelastningens krav.

Kategori Överblick
Nätverksöverväganden Nätverk i Azure-containertjänster är beroende av att du föredrar enkelhet eller konfigurerbarhet. AKS ger omfattande kontroll över nätverksflödet men kräver mer operativt arbete. Container Apps har Azure-hanterade nätverksfunktioner och finns mellan AKS och Web App for Containers, som betjänar kunder som redan använder App Service.

Beslut för nätverksdesign har långsiktiga konsekvenser eftersom du ofta måste förändra arbetsfördelningen om du ändrar dem. Flera faktorer, till exempel planering av IP-adresser, belastningsutjämning, tjänstidentifiering och privata nätverk, varierar mellan dessa tjänster. Du bör noggrant granska hur varje tjänst uppfyller specifika nätverkskrav.
Säkerhetsöverväganden Container Apps, AKS och Web App for Containers integreras med viktiga Azure-säkerhetserbjudanden som Azure Key Vault och hanterade identiteter. AKS tillhandahåller extra funktioner som skydd mot körningshot och nätverksprinciper. PaaS-tjänster som Container Apps kan tyckas ha färre säkerhetsfunktioner, men det beror delvis på att Azure hanterar fler av de underliggande infrastrukturkomponenterna. Eftersom dessa komponenter inte exponeras för kunder är risken lägre.
operativa överväganden AKS ger mest anpassning, men kräver mer driftindata.

Med PaaS-lösningar som Container Apps och Web App for Containers kan Azure hantera uppgifter som OS-uppdateringar. Flexibilitet för skalbarhet och maskinvaru-SKU är viktiga. AKS tillhandahåller flexibla maskinvarualternativ, men Container Apps och Web App for Containers har färre alternativ. I AKS är programmets skalbarhet ditt ansvar, så du kan tillämpa alla Kubernetes-kompatibla lösningar. AKS Automatic, Container Apps och Web App for Containers fokuserar på enklare metoder.
Tillförlitlighetsöverväganden Web App for Containers och Container Apps har begränsade möjligheter till konfiguration av hälsokontroller jämfört med AKS. De är dock enklare att konfigurera eftersom de använder det välbekanta Azure Resource Manager-API:et.

AKS kräver Kubernetes API och kräver även att du hanterar Skalbarhet och tillgänglighet för Kubernetes-nodpoolen för att schemalägga programinstanser korrekt. Dessa krav ökar driftsinsatsen för AKS. Serviceavtal (SLA) för Container Apps och Web App for Containers är enklare att beräkna än AKS-serviceavtal. AKS-kontrollplanet och nodpoolerna har sina egna serviceavtal, vilka måste sammanställas. Alla tjänster tillhandahåller zonredundans i datacenter som stöder det.

När du har granskat ovanstående överväganden kanske du fortfarande inte hittar den perfekta passformen, vilket är typiskt.

Utvärdera kompromisser

Molnbaserad databehandling är komplex. Det omfattar samarbete mellan många team och måste ta hänsyn till begränsningar i personer, budgetar och tid. Dessa faktorer gör valet av molntjänster svårt och fullt av kompromisser.

För alla arbetsbelastningar kan vissa krav vara mer kritiska än andra. Ett programteam kanske till exempel föredrar en PaaS-lösning som Container Apps, men väljer AKS eftersom deras säkerhetsteam kräver att nätverkskontroller nekas som standard mellan samlokaliserade arbetsbelastningskomponenter. Den här AKS-specifika funktionen använder Kubernetes-nätverksprinciper.

Föregående delade överväganden omfattar de vanligaste kraven men är inte omfattande. Du måste utvärdera alla krav mot den önskade tjänstens funktionsuppsättning innan du fattar ett beslut.

Slutsats

Den här guiden beskriver de vanligaste övervägandena när du väljer en Azure-containertjänst. Den är utformad för att hjälpa ditt arbetsbelastningsteam att fatta välgrundade beslut. Processen börjar med att välja en molntjänstmodell, vilket innebär att bestämma önskad kontrollnivå. Mer kontroll kommer på bekostnad av enkelhet. Målet är med andra ord att hitta rätt balans mellan en självhanterad infrastruktur och en Microsoft-hanterad infrastruktur.

Många arbetsbelastningsteam väljer en Azure-containertjänst enbart baserat på om de föredrar antingen PaaS eller IaaS. Andra team måste undersöka ytterligare för att avgöra hur tjänstspecifika funktioner hanterar arbetsbelastnings- eller organisationskrav.

Använd den här guiden för att noggrant utvärdera dina alternativ och undvika att fatta beslut som är svåra att vända. Inget beslut är dock slutgiltigt förrän utvecklarna provar tjänsten och utvärderar den baserat på praktisk erfarenhet i stället för teori.

Bidragsgivare

Microsoft ansvarar för den här artikeln. Följande deltagare skrev den här artikeln.

Huvudförfattare:

Andra deltagare:

Om du vill se linkedin-profiler som inte är offentliga loggar du in på LinkedIn.