Een Azure-containerservice kiezen
Azure biedt een scala aan containerhostingservices die zijn ontworpen om tegemoet te komen aan verschillende workloads, architecturen en zakelijke vereisten. Deze handleiding voor het selecteren van een containerservice kan u helpen begrijpen welke Azure-containerservice het meest geschikt is voor uw workloadscenario's en -vereisten.
Notitie
In deze handleiding verwijst de term workload verwijst naar een verzameling toepassingsresources die ondersteuning bieden voor een bedrijfsdoel of de uitvoering van een bedrijfsproces. Een workload maakt gebruik van meerdere services, zoals API's en gegevensarchieven, die samenwerken om specifieke end-to-end-functionaliteit te leveren.
Deze handleiding gebruiken
Deze handleiding bevat twee artikelen: dit inleidingsartikel en een ander artikel over overwegingen die worden gedeeld voor alle typen werkbelastingen.
Notitie
Zie Een Azure-rekenservice kiezen voor informatie over andere rekenopties die u kunt gebruiken om uw workload te hosten als u nog niet bent toegewezen aan containerisatie.
In dit inleidingsartikel worden de Azure-containerservices beschreven die binnen het bereik van deze handleiding vallen en hoe de servicemodellen zich vergelijken in termen van compromissen tussen configureerbaarheid en adviesoplossingen, zoals door de klant beheerde versus door Microsoft beheerde benaderingen. Nadat u kandidaatservices hebt geïdentificeerd op basis van uw voorkeuren voor het servicemodel, is de volgende stap het evalueren van de opties op basis van uw workloadvereisten door het artikel over gedeelde overwegingen voor netwerken, beveiliging, bewerkingen en betrouwbaarheid te bekijken.
In deze handleiding wordt rekening gehouden met de afwegingen die u mogelijk moet maken, op basis van de technische vereisten, grootte en complexiteit van uw workload en de expertise van het team van uw workload.
Azure Container Services vallen binnen de reikwijdte van deze handleiding
Deze handleiding is gericht op een subset van de containerservices die momenteel door Azure worden aangeboden. Deze subset biedt een volwassen functieset voor webtoepassingen en API's, netwerken, waarneembaarheid, ontwikkelhulpprogramma's en bewerkingen. Deze containerservices worden vergeleken:
Azure Container Apps is een volledig beheerd platform waarmee u containertoepassingen kunt uitvoeren zonder dat u zich zorgen hoeft te maken over indeling of infrastructuur. Zie Documentatie voor Azure Container Appsvoor meer informatie.
Azure Kubernetes Service (AKS) is een beheerde Kubernetes-service voor het uitvoeren van containertoepassingen. Met AKS kunt u profiteren van beheerde invoegtoepassingen en uitbreidingen voor extra mogelijkheden, terwijl u het breedste niveau van de configuratie behoudt. Zie AKS-documentatievoor meer informatie.
Web App for Containers is een functie van Azure App Service, een volledig beheerde service voor het hosten van op HTTP gebaseerde web-apps met ingebouwd infrastructuuronderhoud, beveiligingspatching, schalen en diagnostische hulpprogramma's. Zie App Service-documentatievoor meer informatie.
Zie de productcategoriepagina van de containerservicesvoor een volledige lijst met alle Azure-containerservices.
Overwegingen voor servicemodellen
Het servicemodel biedt het breedste inzicht in het flexibiliteitsniveau en de controle die elke Azure-containerservice biedt, in ruil voor de algehele eenvoud en het gebruiksgemak.
Zie Gedeelde verantwoordelijkheid in de cloudvoor een algemene inleiding in de terminologie en concepten van servicemodellen, waaronder IaaS (Infrastructure as a Service) en PaaS (Platform as a Service).
De servicemodellen van Azure-containeroplossingen vergelijken
AKS
Als hybride van IaaS en PaaS geeft AKS prioriteit aan controle over eenvoud, waarbij gebruik wordt gemaakt van de feitelijke standaard voor containerindeling: Kubernetes. Hoewel AKS het beheer van de onderliggende kerninfrastructuur stroomlijnt, wordt dit op VM's gebaseerde platform nog steeds blootgesteld aan uw toepassingen en zijn passende kaders en processen vereist, zoals patching, om beveiliging en bedrijfscontinuïteit te garanderen. De rekeninfrastructuur wordt ondersteund door aanvullende Azure-resources die rechtstreeks in uw abonnement worden gehost, zoals Azure Load Balancers.
AKS biedt ook toegang tot de Kubernetes API-server, waarmee u de containerindeling kunt aanpassen en zo projecten kunt implementeren vanuit de Cloud Native Computing Foundation (CNCF). Daarom is er een aanzienlijke leercurve voor workload-teams die nieuw zijn in Kubernetes. Als u geen kennis hebt met containeroplossingen, moet u rekening houden met deze leercurve. De volgende PaaS-oplossingen bieden een lagere barrière voor toegang. U kunt naar Kubernetes gaan wanneer uw vereisten die verplaatsing dicteren.
AKS Automatisch
AKS Automatic vereenvoudigt de acceptatie van Kubernetes door complexe clusterbeheertaken te automatiseren, waardoor er minder uitgebreide Kubernetes-expertise nodig is. Het biedt een meer gestroomlijnde PaaS-achtige ervaring en behoudt de flexibiliteit en uitbreidbaarheid van Kubernetes. Azure verwerkt het instellen van clusters, het inrichten van knooppunten, schalen, beveiligingspatching en past standaard enkele best practice-configuraties toe. Dit vermindert de operationele inspanning, maar wordt geleverd met een beperkte set beschikbare topologieopties.
Notitie
In deze handleiding wordt onderscheid gemaakt tussen AKS Standard en AKS Automatic, indien van toepassing. Anders kan worden aangenomen dat de beschreven functionaliteit pariteit heeft tussen zowel Standard- als Automatic-aanbiedingen.
Azure Container Apps
Azure Container Apps is een abstractielaag boven op Kubernetes waarmee uw apps kunnen worden uitgevoerd en geschaald zonder dat u de onderliggende infrastructuur rechtstreeks hoeft te beheren. Container Apps biedt zowel serverloze als toegewezen rekenopties, waardoor u volledige controle hebt over het type en de hoeveelheid rekenresources die beschikbaar zijn voor uw toepassingen. Terwijl u de containerindelings-API's abstraheert, biedt Container Apps u out-of-the-box-toegang tot belangrijke functies zoals Layer 7 ingress, verkeer splitsen, A/B-testen en levenscyclusbeheer van toepassingen.
Webapp voor containers
Web App for Containers is ook een PaaS-aanbieding, maar biedt meer eenvoud en minder controle dan Container Apps. Het abstraheert containerindeling, maar biedt nog steeds de juiste schaalaanpassing, toepassingslevenscyclusbeheer, verkeer splitsen, netwerkintegratie en waarneembaarheid.
Overwegingen voor hostingmodellen
U kunt Azure-resources, zoals AKS-clusters, gebruiken om meerdere workloads te hosten. Dit kan u helpen bij het stroomlijnen van bewerkingen en zo de totale kosten te verlagen. Als u dit pad kiest, zijn hier enkele belangrijke overwegingen:
AKS- wordt vaak gebruikt voor het hosten van meerdere workloads of verschillende workloadonderdelen. U kunt deze workloads en onderdelen isoleren met behulp van systeemeigen Kubernetes-functionaliteit, zoals naamruimten, toegangsbeheer en netwerkbesturingselementen, om te voldoen aan de beveiligingsvereisten.
U kunt AKS ook gebruiken in scenario's met één workload als u de extra functionaliteit nodig hebt die de Kubernetes-API biedt en uw workloadteam voldoende ervaring heeft om een Kubernetes-cluster te gebruiken. Teams met minder Kubernetes-ervaring kunnen nog steeds hun eigen clusters uitvoeren door gebruik te maken van door Azure beheerde -invoegtoepassingen en functies, zoals automatische upgrade van clusters, om de operationele inspanning te verminderen.
Container Apps moet worden gebruikt voor het hosten van één taak met een gedeeld beveiligingsniveau. Container Apps heeft één logische grens op het hoogste niveau, een Container Apps-omgeving, die ook fungeert als een verbeterde beveiligingsgrens. Er zijn geen mechanismen voor extra gedetailleerd toegangsbeheer. Communicatie tussen omgevingen is bijvoorbeeld onbeperkt en alle toepassingen delen één Log Analytics-werkruimte.
Als de workload meerdere onderdelen en meerdere beveiligingsgrenzen heeft, implementeert u meerdere Container Apps-omgevingen of kunt u in plaats daarvan AKS overwegen.
Web App for Containers is een functie van App Service. App Service groeperen toepassingen in een factureringsgrens genaamd een App Service-plan. Omdat u op rollen gebaseerd toegangsbeheer (RBAC) op toepassingsniveau kunt schalen, kan het verleidelijk zijn om meerdere workloads in één abonnement te hosten. We raden u echter aan één workload per plan te hosten om het probleem met Noisy Neighbor te voorkomen. Alle apps in één App Service-plan delen hetzelfde toegewezen reken-, geheugen- en opslagaccount.
Wanneer u rekening houdt met hardware-isolatie, moet u er rekening mee houden dat App Service-plannen doorgaans worden uitgevoerd op infrastructuur die wordt gedeeld met andere Azure-klanten. U kunt toegewezen lagen kiezen voor toegewezen VM's of geïsoleerde lagen voor toegewezen VM's in een toegewezen virtueel netwerk.
Over het algemeen kunnen alle Azure-containerservices meerdere toepassingen hosten die meerdere onderdelen hebben. Container Apps en Web App for Containers zijn echter beter geschikt voor een onderdeel met één workload of meerdere zeer gerelateerde workloadonderdelen die een vergelijkbare levenscyclus delen, waarbij één team eigenaar is van en de toepassingen uitvoert.
Als u verschillende, mogelijk niet-gerelateerde toepassingsonderdelen of workloads op één host wilt hosten, kunt u AKS overwegen.
Het compromis tussen controle en gebruiksgemak
AKS biedt de meest configureerbaarheid, maar deze configureerbaarheid vereist meer operationele inspanningen, vergeleken met de andere services. Hoewel Container Apps en Web App for Containers beide PaaS-services zijn die vergelijkbare niveaus van door Microsoft beheerde functies hebben, benadrukt Web App for Containers het gemak om de doelgroep te bedienen: bestaande Azure PaaS-klanten, die de interface vertrouwd vinden.
Vuistregel
Over het algemeen zijn services die meer eenvoud bieden vaak geschikt voor klanten die zich liever richten op functieontwikkeling in plaats van infrastructuurbeheer. Services die meer controle bieden, zijn doorgaans geschikt voor klanten die meer configureerbaarheid nodig hebben en beschikken over de vaardigheden, resources en zakelijke redenen die nodig zijn om hun eigen infrastructuur te beheren.
Gedeelde overwegingen voor alle workloads
Hoewel een workloadteam de voorkeur geeft aan een bepaald servicemodel, voldoet dat model mogelijk niet aan de vereisten van de organisatie als geheel. Ontwikkelaars geven bijvoorbeeld de voorkeur aan minder operationele inspanningen, maar beveiligingsteams kunnen dit type overhead overwegen dat nodig is om te voldoen aan de nalevingsvereisten. Teams moeten samenwerken om de juiste compromissen te maken.
Houd er rekening mee dat gedeelde overwegingen breed zijn. Alleen een subset is mogelijk relevant voor u, afhankelijk van het workloadtype, maar ook van uw rol binnen de organisatie.
De volgende tabel bevat een overzicht op hoog niveau van overwegingen, waaronder vergelijkingen van servicefuncties. Bekijk de overwegingen in elke categorie en vergelijk deze met de vereisten van uw workload.
Categorie | Overzicht |
---|---|
overwegingen voor netwerken | Netwerken in Azure Container Services variëren afhankelijk van uw voorkeur voor eenvoud versus configureerbaarheid. AKS is zeer configureerbaar en biedt uitgebreide controle over de netwerkstroom, maar vereist meer operationele inspanningen. Container Apps biedt door Azure beheerde netwerkfuncties. Het is een middenweg tussen AKS en Web App for Containers, dat is afgestemd op klanten die bekend zijn met App Service. Cruciaal is dat beslissingen voor netwerkontwerp op lange termijn gevolgen kunnen hebben vanwege de uitdagingen van het wijzigen ervan zonder workloads opnieuw te implementeren. Verschillende factoren, zoals het plannen van IP-adressen, taakverdelingsverantwoordelijkheden, servicedetectiemethoden en mogelijkheden voor privénetwerken, verschillen tussen deze services. Controleer zorgvuldig hoe de services voldoen aan specifieke netwerkvereisten. |
Beveiligingsoverwegingen | Container Apps, AKS en Web App for Containers bieden allemaal integratie met belangrijke Azure-beveiligingsaanbiedingen, zoals Azure Key Vault en beheerde identiteiten. AKS biedt aanvullende functies zoals runtime-bedreigingsbeveiliging en netwerkbeleid. Hoewel paaS-services zoals Container Apps minder beveiligingsfuncties bieden, is dat deels omdat meer onderliggende infrastructuuronderdelen worden beheerd door Azure en niet worden blootgesteld aan klanten, wat het risico vermindert. |
Operationele overwegingen | AKS biedt de meeste aanpassing, maar er is meer operationele invoer vereist. PaaS-oplossingen zoals Container Apps en Web App for Containers laten Azure daarentegen taken verwerken, zoals updates van het besturingssysteem. Schaalbaarheid en flexibiliteit van hardware-SKU's zijn van cruciaal belang. AKS biedt flexibele hardwareopties, terwijl Container Apps en Web App for Containers minder opties bieden. Schaalbaarheid van toepassingen in AKS is de verantwoordelijkheid van de klant. Dit betekent dat u elke kubernetes-compatibele oplossing kunt toepassen. AKS Automatic, Container Apps en Web App for Containers richten zich op eenvoudigere benaderingen. |
overwegingen voor betrouwbaarheid | Statustestconfiguraties voor Web App for Containers en Container Apps zijn beperkt in vergelijking met AKS, maar eenvoudiger in te stellen, gezien ze de vertrouwde Azure Resource Manager-API gebruiken. AKS vereist het gebruik van de Kubernetes-API. Daarnaast moet u rekening houden met de extra verantwoordelijkheid voor het beheren van schaalbaarheid en beschikbaarheid van Kubernetes-knooppuntgroepen om toepassingsexemplaren correct te plannen. Deze vereisten leiden tot extra operationele inspanningen voor AKS. Bovendien zijn SLA's voor Container Apps en Web App for Containers eenvoudiger te berekenen dan die van AKS, waarvoor het besturingsvlak en knooppuntgroepen elk hun eigen SLA's hebben en dienovereenkomstig moeten worden samengesteld. Alle services bieden zoneredundantie in datacenters die deze bieden. |
Nadat u de voorgaande overwegingen hebt bekeken, hebt u mogelijk nog steeds niet de perfecte pasvorm gevonden. Dat is heel normaal.
Afwegingen evalueren
Het kiezen van een cloudservice is geen eenvoudige oefening. Gezien de complexiteit van cloudcomputing, de samenwerking tussen veel teams en resourcebeperkingen met betrekking tot mensen, budgetten en tijd, heeft elke oplossing compromissen.
Houd er rekening mee dat sommige vereisten voor een bepaalde workload mogelijk belangrijker zijn dan andere. Een toepassingsteam kan bijvoorbeeld de voorkeur geven aan een PaaS-oplossing zoals Container Apps, maar voor AKS kiezen omdat hun beveiligingsteam vereist dat netwerkbesturingselementen met standaardweigeringsbeleid worden toegepast tussen samengeplaatste onderdelen van de werkbelasting. Dit is een unieke AKS-functie die gebruikmaakt van Kubernetes-netwerkbeleid.
Houd er ten slotte rekening mee dat de voorgaande gedeelde overwegingen de meest voorkomende vereisten bevatten, maar niet volledig zijn. Het is de verantwoordelijkheid van het workloadteam om elke vereiste te onderzoeken op basis van de functieset van de voorkeursservice voordat een beslissing wordt bevestigd.
Conclusie
In deze handleiding worden de meest voorkomende overwegingen beschreven waarmee u te maken krijgt wanneer u een Azure-containerservice kiest. Het is ontworpen om workloadteams te begeleiden bij het nemen van weloverwogen beslissingen. Het proces begint met het kiezen van een cloudservicemodel, waarbij het gewenste controleniveau wordt bepaald. Controle gaat ten koste van eenvoud. Met andere woorden, het is een proces van het vinden van de juiste balans tussen een zelfbeheerde infrastructuur en een infrastructuur die wordt beheerd door Microsoft.
Veel workloadteams kunnen alleen een Azure-containerservice kiezen op basis van het voorkeursservicemodel: PaaS versus IaaS. Andere teams moeten verder onderzoeken om te bepalen hoe servicespecifieke functies voldoen aan workload- of organisatievereisten.
Alle workloadteams moeten deze handleiding gebruiken naast het opnemen van due diligence om moeilijk te omkeren beslissingen te voorkomen. Houd er echter rekening mee dat de beslissing pas wordt bevestigd als ontwikkelaars de service proberen en beslissen op basis van ervaring in plaats van theorie.
Bijdragers
Dit artikel wordt onderhouden door Microsoft. Het is oorspronkelijk geschreven door de volgende inzenders.
Hoofdauteurs:
- Andre Dewes | Senior klanttechnicus
- Marcos Martinez | Senior Service Engineer
- Julie Ng | Senior Ingenieur
Andere inzenders:
- Mick Alberts | Technische schrijver
- Martin Gjoshevski | Senior klanteningenieur
- Don High | Hoofdklantingenieur
- Nelly Kiboi | Servicemonteur
- Xuhong Liu | Senior Service Engineer
- Faisal Mustafa | Senior Customer Engineer
- Walter Myers | Hoofd Manager Klantentechniek
- Sonalika Roy | Senior klanttechnicus
- Paolo Salvatori | Principal Customer Engineer
- Victor Santana | Hoofd Klanttechnisch Ingenieur
Volgende stap
Meer informatie over gedeelde architectuuroverwegingen voor de services die in dit artikel worden genoemd.