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 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.
Gebruik van deze handleiding
Deze handleiding bevat twee artikelen: dit inleidingsartikel en een ander artikel over overwegingen die worden gedeeld in 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 doorgevoerd voor 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 te bekijken over gedeelde overwegingen voor netwerken, beveiliging, bewerkingen en betrouwbaarheid.
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 binnen het bereik 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 Kubernetes-toepassingsplatform waarmee u HTTP- en niet-HTTP-apps kunt implementeren vanuit code of containers zonder infrastructuur te organiseren. Zie de documentatie voor Azure Container Apps voor meer informatie.
Azure Kubernetes Service (AKS) is een beheerde Kubernetes-service voor het uitvoeren van toepassingen in containers. Met AKS kunt u profiteren van beheerde invoegtoepassingen en extensies voor extra mogelijkheden, terwijl u het breedste configuratieniveau behoudt. Zie de AKS-documentatie voor 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 de App Service-documentatie voor meer informatie.
Zie de pagina productcategorie containerservices voor containerservices voor 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 cloud voor een algemene inleiding in de terminologie en concepten van servicemodellen, waaronder IaaS (Infrastructure as a Service) en Platform as a Service (PaaS).
De servicemodellen van Azure-containeroplossingen vergelijken
AKS
Als hybride van IaaS en PaaS geeft AKS prioriteit aan controle over eenvoud. 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 workloadteams die nieuw zijn voor Kubernetes. Als u geen kennis hebt met containeroplossingen, is deze leercurve mogelijk een afschrikking. De volgende PaaS-oplossingen bieden een lagere barrière voor toegang. U kunt naar Kubernetes gaan wanneer uw vereisten die verplaatsing dicteren.
Azure Container Apps
Container Apps, een PaaS-aanbieding, zorgt voor een balans tussen de controle en eenvoud. Het biedt zowel serverloze als toegewezen rekenopties, die de noodzaak om het besturingssysteem te patchen of om kaders rond toepassingen te bouwen, abstraheren ten opzichte van het besturingssysteem. Container Apps abstraheert ook de containerindelings-API volledig en biedt een subset van de belangrijkste functionaliteit via Azure-API's waarmee uw team mogelijk al bekend is. Daarnaast zijn laag 7 inkomend verkeer, verkeer splitsen, A/B-tests en toepassingslevenscyclusbeheer volledig beschikbaar.
Web App for 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 operationele overhead te verminderen.
Container Apps moet worden gebruikt voor het hosten van één workload met een gedeelde beveiligingsgrens. Container Apps heeft één logische grens op het hoogste niveau, een Container Apps-omgeving genoemd, 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 die een App Service-plan wordt genoemd. 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 komt ten koste van verhoogde operationele overhead, 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, meestal geschikt voor klanten die zich liever meer richten op functieontwikkeling en minder op infrastructuur. 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 overhead, 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 |
---|---|
Aandachtspunten 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 middelste plaats tussen AKS en Web App for Containers, die 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 | Hoewel AKS de meeste aanpassingen biedt, is er 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 configuraties bieden. Schaalbaarheid van toepassingen in AKS is de enige verantwoordelijkheid van de klant. Container Apps en Web App for Containers bieden meer gestroomlijnde benaderingen. |
Overwegingen voor betrouwbaarheid | Statustestconfiguraties voor Web App for Containers en Container Apps zijn gestroomlijnder dan die van AKS, omdat 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 overhead voor AKS. Bovendien zijn SLA's voor Container Apps en Web App for Containers eenvoudiger 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 AKS kiezen, omdat voor het beveiligingsteam standaard netwerkbesturingselementen tussen onderdelen van de werkbelasting moeten worden geweigerd. Dit is een 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.
Medewerkers
Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.
Belangrijkste auteurs:
- Andre Dewes | Senior klanttechnicus
- Marcos Martinez | Senior Service Engineer
- Julie Ng | Senior Engineer
Andere Inzenders:
- Mick Alberts | Technische schrijver
- Martin Gjoshevski | Senior klanttechnicus
- Hoog | Principal Customer Engineer
- Nelly Kiboi | Service Engineer
- Xuhong Liu | Senior Service Engineer
- Faisal Microsoft | Senior klanttechnicus
- Walter Myers | Principal Customer Engineering Manager
- Sonalika Roy | Senior klanttechnicus
- Paulo Salvatori | Principal Customer Engineer
- Victor Santana | Principal Customer Engineer
Volgende stap
Meer informatie over gedeelde architectuuroverwegingen voor de services die in dit artikel worden genoemd.