Dela via


Välj en Azure-containertjänst

Azure erbjuder 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 dig att förstå vilken Azure-containertjänst som passar bäst för dina arbetsbelastningsscenarier och krav.

Kommentar

I den här guiden refererar termen arbetsbelastning till en samling programresurser som stöder ett affärsmål eller körning 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.

Hur används den här handboken?

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

Kommentar

Om du ännu inte är engagerad i containerisering kan du läsa Välj en Azure-beräkningstjänst för information om andra beräkningsalternativ som du kan använda som värd för din arbetsbelastning.

Den här introduktionsartikeln beskriver De Azure-containertjänster som finns i omfånget för den här guiden och hur tjänstmodellerna jämförs när det gäller kompromisser mellan konfigurerbarhet och åsiktslösningar, till exempel kundhanterade kontra 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 tar hänsyn till avvägningar som du kan behöva göra, baserat på de tekniska kraven, storleken och komplexiteten i din arbetsbelastning och expertisen hos ditt arbetsbelastningsteam.

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 för närvarande erbjuder. Den här delmängden innehåller en mogen funktionsuppsättning för webbprogram och API:er, nätverk, observerbarhet, utvecklarverktyg och åtgärder. Dessa containertjänster jämförs:

Container Apps-logotyp

Azure Container Apps är en fullständigt hanterad Kubernetes-baserad programplattform som hjälper dig att distribuera HTTP- och icke-HTTP-appar från kod eller containrar utan att orkestrera infrastrukturen. Mer information finns i Dokumentation om Azure 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 ytterligare funktioner samtidigt som du bevarar den bredaste konfigurerbarhetsnivån. Mer information finns i AKS-dokumentationen.

App Service-logotyp

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

En fullständig lista över alla Azure-containertjänster finns på produktkategorisidan för containertjänster.

Överväganden för tjänstmodell

Tjänstmodellen ger den bredaste insikten i den flexibilitetsnivå och kontroll som alla Azure-containertjänster tillhandahåller, i utbyte mot dess övergripande enkelhet och användarvänlighet.

En allmän introduktion till terminologi och begrepp kring tjänstmodeller, inklusive infrastruktur som en tjänst (IaaS) och Plattform som en tjänst (PaaS), finns i Delat ansvar i molnet.

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

AKS

Som en hybrid av IaaS och PaaS prioriterar AKS kontroll över enkelheten. Även om AKS effektiviserar hanteringen av den underliggande kärninfrastrukturen exponeras den här VM-baserade plattformen fortfarande för dina program och kräver lämpliga skyddsräcken och processer, till exempel korrigeringar, för att säkerställa säkerhet och affärskontinuitet. Beräkningsinfrastrukturen stöds av ytterligare Azure-resurser som finns direkt i din prenumeration, till exempel Azure-lastbalanserare.

AKS ger också åtkomst till Kubernetes API-servern, vilket gör att du kan anpassa containerorkestreringen och därmed distribuera projekt från Cloud Native Computing Foundation (CNCF). Därför finns det en betydande inlärningskurva för arbetsbelastningsteam som är nya för Kubernetes. Om du inte har använt containerbaserade lösningar tidigare kan den här inlärningskurvan vara avskräckande. Följande PaaS-lösningar erbjuder ett lägre inträdeshinder. Du kan flytta till Kubernetes när dina krav styr flytten.

Azure Container Apps

Container Apps, ett PaaS-erbjudande, balanserar kontrollen med enkelhet. Det erbjuder både serverlösa och dedikerade beräkningsalternativ, vilket minskar behovet av att korrigera operativsystemet eller bygga skyddsräcken runt program i förhållande till operativsystemet. Container Apps abstraherar också helt bort API:et för containerorkestrering och tillhandahåller en delmängd av dess viktiga funktioner via Azure-API:er som ditt team kanske redan känner till. Dessutom är layer 7-ingress, trafikdelning, A/B-testning och programlivscykelhantering helt tillgängliga direkt.

Web App for Containers

Web App for Containers är också ett PaaS-erbjudande, men det ger mer enkelhet och mindre kontroll än Container Apps. Den abstraherar bort containerorkestrering men ger fortfarande lämplig 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. Detta kan hjälpa dig att effektivisera driften och därmed minska den totala kostnaden. Om du väljer den här sökvägen kan du tänka på följande:

  • AKS används ofta för att vara värd för flera arbetsbelastningar eller olika arbetsbelastningskomponenter. Du kan isolera dessa arbetsbelastningar och komponenter med hjälp av kubernetes interna 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 ytterligare funktioner som Kubernetes API tillhandahåller och ditt arbetsbelastningsteam har tillräckligt med erfarenhet för att driva ett Kubernetes-kluster. Team med mindre Kubernetes-upplevelse kan fortfarande använda sina egna kluster genom att dra nytta av Azure-hanterade tillägg och funktioner, till exempel automatisk uppgradering av kluster, för att minska driftkostnaderna.

  • Container Apps ska användas som värd för en enda 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 ytterligare detaljerad åtkomstkontroll. Kommunikationen inom miljön är till exempel obegränsad och alla program delar en enda Log Analytics-arbetsyta.

    Om arbetsbelastningen har flera komponenter och flera 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 faktureringsgräns som kallas en App Service-plan. Eftersom du kan begränsa rollbaserad åtkomstkontroll (RBAC) på programnivå kan det vara frestande att vara värd för flera arbetsbelastningar i en enda plan. Vi rekommenderar dock att du är värd för en enskild arbetsbelastning per plan för att undvika problemet Med bullriga grannar. Alla appar i en enda App Service-plan delar samma allokerade beräkning, minne och lagring.

    När du överväger maskinvaruisolering måste du vara medveten om att App Service-planer vanligtvis körs på infrastruktur som delas med andra Azure-kunder. 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 passar dock bättre för en komponent med en arbetsbelastning eller flera mycket relaterade arbetsbelastningskomponenter som delar en liknande livscykel, där ett enda team äger och kör programmen.

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 här konfigurerbarheten sker på bekostnad av ökade driftkostnader jämfört med andra tjänster. Även om Container Apps och Web App for Containers båda är PaaS-tjänster som har liknande nivåer av Microsoft-hanterade funktioner, betonar Web App for Containers enkelhet för att tillgodose målgruppen: befintliga Azure PaaS-kunder som tycker att gränssnittet är bekant.

Tumregel

I allmänhet tenderar tjänster som erbjuder mer enkelhet att passa kunder som föredrar att fokusera mer på funktionsutveckling och mindre på infrastruktur. Tjänster som erbjuder mer kontroll tenderar att passa kunder som behöver mer 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

Även om ett arbetsbelastningsteam kanske föredrar en viss tjänstmodell kanske den modellen inte uppfyller kraven för organisationen som helhet. Utvecklare kanske till exempel föredrar mindre driftkostnader, men säkerhetsteamen kan överväga den här typen av omkostnader som krävs för att uppfylla efterlevnadskraven. Team måste samarbeta för att göra lämpliga kompromisser.

Tänk på att delade överväganden är breda. Endast en delmängd kan vara relevant för dig, inte bara beroende på arbetsbelastningstyp utan även på din roll i organisationen.

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 Översikt
Nätverksöverväganden Nätverk i Azure-containertjänster varierar beroende på vad du föredrar för enkelhet kontra konfigurerbarhet. AKS är mycket konfigurerbart, vilket ger omfattande kontroll över nätverksflödet, men det kräver mer driftsinsats. Container Apps erbjuder Azure-hanterade nätverksfunktioner. Det är en medelväg mellan AKS och Web App for Containers, som är skräddarsydd för kunder som är bekanta med App Service.

Avgörande är att beslut om nätverksdesign kan få långsiktiga konsekvenser på grund av utmaningarna med att ändra dem utan att omdistribuera arbetsbelastningar. Flera faktorer, till exempel PLANERING av IP-adresser, ansvarsområden för belastningsutjämning, metoder för tjänstidentifiering och privata nätverk, skiljer sig åt mellan dessa tjänster. Du bör noggrant granska hur tjänsterna uppfyller specifika nätverkskrav.
Säkerhetsöverväganden Container Apps, AKS och Web App for Containers ger alla integrering med viktiga Azure-säkerhetserbjudanden som Azure Key Vault och hanterade identiteter. AKS erbjuder ytterligare funktioner som skydd mot körningshot och nätverksprinciper. Även om det kan tyckas att PaaS-tjänster som Container Apps erbjuder färre säkerhetsfunktioner beror det delvis på att fler av de underliggande infrastrukturkomponenterna hanteras av Azure och inte exponeras för kunder, vilket minskar risken.
Operativa överväganden Även om AKS erbjuder mest anpassning kräver det större operativa indata. PaaS-lösningar som Container Apps och Web App for Containers låter däremot Azure hantera uppgifter som OS-uppdateringar. Flexibilitet för skalbarhet och maskinvaru-SKU är avgörande. AKS tillhandahåller flexibla maskinvarualternativ, medan Container Apps och Web App for Containers tillhandahåller uppsättningskonfigurationer. Programmets skalbarhet i AKS är kundens ansvar. Container Apps och Web App for Containers erbjuder mer effektiva metoder.
Tillförlitlighetsöverväganden Konfigurationer av hälsoavsökningar i Web App for Containers och Container Apps är mer effektiva än aks,eftersom de använder det välbekanta Azure Resource Manager-API:et. AKS kräver användning av Kubernetes API. Du måste också ta på dig det extra ansvaret för att hantera skalbarhet och tillgänglighet för Kubernetes-nodpooler för att schemalägga programinstanser korrekt. Dessa krav resulterar i ytterligare omkostnader för AKS.

Dessutom är serviceavtal för Container Apps och Web App for Containers enklare än de för AKS, för vilka kontrollplanet och nodpoolerna var och en har sina egna serviceavtal och måste förvärras i enlighet med detta. Alla tjänster erbjuder zonredundans i datacenter som erbjuder det.

När du har granskat ovanstående överväganden kanske du fortfarande inte har hittat den perfekta passformen. Det är helt normalt.

Utvärdera kompromisser

Att välja en molntjänst är inte en enkel övning. Med tanke på komplexiteten i molnbaserad databehandling, samarbetet mellan många team och resursbegränsningar som involverar människor, budgetar och tid, har varje lösning kompromisser.

Tänk på att vissa krav för en viss arbetsbelastning kan 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 samallokerade arbetsbelastningskomponenter, vilket är en AKS-funktion som använder Kubernetes-nätverksprinciper.

Observera slutligen att de föregående delade övervägandena omfattar de vanligaste kraven men inte är omfattande. Det är arbetsbelastningsteamets ansvar att undersöka alla krav mot den föredragna tjänstens funktionsuppsättning innan ett beslut bekräftas.

Slutsats

Den här guiden beskriver de vanligaste övervägandena som du kan tänka på när du väljer en Azure-containertjänst. Den är utformad för att vägleda arbetsbelastningsteam när de fattar välgrundade beslut. Processen börjar med att välja en molntjänstmodell, vilket innebär att bestämma önskad kontrollnivå. Kontrollen sker på bekostnad av enkelheten. Med andra ord är det en process för att hitta rätt balans mellan en självhanterad infrastruktur och en som hanteras av Microsoft.

Många arbetsbelastningsteam kan välja en Azure-containertjänst enbart baserat på den föredragna tjänstmodellen: PaaS jämfört med IaaS. Andra team måste undersöka ytterligare för att avgöra hur tjänstspecifika funktioner hanterar arbetsbelastnings- eller organisationskrav.

Alla arbetsbelastningsteam bör använda den här guiden förutom att införliva due diligence för att undvika svåra att vända beslut. Tänk dock på att beslutet inte bekräftas förrän utvecklarna provar tjänsten och beslutar baserat på erfarenhet snarare än teori.

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudsakliga författare:

Övriga medarbetare:

Gå vidare

Läs mer om delade arkitekturöverväganden för de tjänster som nämns i den här artikeln.