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.
Notera
I den här guiden avser termen arbetsbelastning en samling applikationsresurser som stöder ett affärsmål eller genomförandet 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.
Så här använder du den här guiden
Den här guiden innehåller två artiklar: den här introduktionsartikeln och en annan artikel om överväganden som är gemensamma för alla arbetsbelastningar.
Notera
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:
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 dokumentationen Azure Container Apps.
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-dokumentation.
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äkerhetskorrigeringar, skalning och diagnostikverktyg. Mer information finns i App Service-dokumentation.
En fullständig lista över alla Azure-containertjänster finns i 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
Azure Container Apps är ett abstraktionslager ovanpå Kubernetes som gör att dina appar kan köras och skalas utan att du behöver hantera den underliggande infrastrukturen direkt. Container Apps erbjuder både serverlösa och dedikerade beräkningsalternativ, vilket ger dig fullständig kontroll över typen och mängden beräkningsresurser som är tillgängliga för dina program. När du abstraherar bort API:erna för containerorkestrering ger Container Apps dig fortfarande direkt åtkomst till viktiga funktioner som layer 7-ingress, trafikdelning, A/B-testning och programlivscykelhantering.
Webbapp för containrar
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 som 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 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 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 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 hanterar 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 gemensamma ö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 | Överblick |
---|---|
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 belastningsbalansering, tjänstupptäcktsmetoder och privata nätverksfunktioner, 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 hot vid körning och nätverkspolicyer. Ä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älsokontroller i Web App for Containers och Container Apps är effektivare ä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, där kontrollplanen och nodpoolerna var och en har sina egna serviceavtal och måste kombineras 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 och tillämpa vederbörlig aktsamhet för att undvika svårvä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.
Bidragsgivare
Den här artikeln underhålls av Microsoft. Denna text skrevs ursprungligen av följande deltagare.
Huvudförfattare:
- Andre Dewes | Senior kundtekniker
- Marcos Martinez | Senior Servicetekniker
- Julie Ng | Senior ingenjör
Andra deltagare:
- Mick Alberts | Teknisk författare
- Martin Gjoshevski | Senior kundtekniker
- Don High | Huvudkundtekniker
- Nelly Kiboi | Tjänsttekniker
- Xuhong Liu | Senior Serviceingenjör
- Faisal Mustafa | Senior kundtekniker
- Walter Myers | Huvudsaklig Kundteknikchef
- Sonalika Roy | Senior kundtekniker
- Paolo Salvatori | Huvudkundtekniker
- Victor Santana | Huvudkundtekniker
Nästa steg
Läs mer om delade arkitekturöverväganden för de tjänster som nämns i den här artikeln.