3/1/2024

Azure Container Apps: volwaardig alternatief voor Kubernetes?

Kubernetes was lange tijd de nummer één onder de containerbeheerplatforms. De laatste tijd zien we echter dat een groeiend aantal bedrijven kiest voor Azure Container Apps (ACA). De twee platformen lijken veel op elkaar, waarbij Azure de (gouden) belofte doet dat haar oplossing minder complex is dan Kubernetes en bijna self-managed te gebruiken valt.

Dit zou bijvoorbeeld betekenen dat je eigenlijk geen specialist in containerbeheer meer nodig hebt, maar alleen een DevOps’er. Is Container Apps werkelijk zoveel eenvoudiger te gebruiken? Of heeft Kubernetes toch belangrijke functionaliteiten en voordelen die in Azure Container Apps (grotendeels) ontbreken? En wat is de beste keuze voor welke organisatie of applicatie? We onderzoeken het in dit artikel.

Wat is Azure Container Apps?

Azure Container Apps is een serverloos platform (het draait in een voor jouw gegeneerd Azure Virtual Network) waarmee je apps kunt implementeren vanuit code of containers zonder complexe infrastructuur te hoeven delen. Container Apps biedt de up-to-date serverresources die nodig zijn om jouw toepassingen stabiel en veilig te houden. Toepassingen die gebouwd zijn in Azure Container Apps kun je bovendien (automatisch) schalen op basis van kenmerken als HTTP-verkeer, CPU- of geheugenbelasting, events of diverse typen KEDA-ondersteunde scalers. Azure Container Apps maakt gebruik van een pay-per-usemodel. Je betaalt dus alleen voor middelen die je daadwerkelijk afneemt.

Het platform biedt omvangrijke ondersteuning voor opensource-technologie en uitgebreide end-to-endproductiviteit voor ontwikkelaars en logboekregistratie. Ook geavanceerd identiteits- en toegangsbeheer (beheerde identiteiten, configuratiewaarden veilig opslaan) via Azure Active Directory maakt deel uit van het dienstenaanbod binnen Container Apps. Azure Container Apps is prima te gebruiken voor toepassingen als:

  • het implementeren van API-endpoints;
  • het hosten van achtergrondverwerkingstaken;
  • het uitvoeren van microservices.

Azure Container Apps versus Kubernetes

Zoals je ziet heeft Azure Container Apps best het een en ander te bieden qua functionaliteit en gebruiksgemak. Tijd om het platform te vergelijken met Kubernetes. Wat zijn de belangrijkste verschillen tussen de twee? En is Azure Container Apps echt een volwaardig alternatief voor Kubernetes en AKS (Azure Kubernetes Service)?

De voordelen van Azure Container Apps

Een belangrijk voordeel van Azure Container Apps is dat het platform ‘app-centric’ is en een meer serverloze gebruikerservaring biedt dan Kubernetes of AKS. ACA wordt wel aangedreven door Kubernetes en andere opensource-technologieën als Dapr en KEDA, maar haalt de complexiteit weg die gepaard gaat met het beheren van de onderliggende infrastructuur. Je neemt dus afscheid van een deel van de ingewikkeldheid die om de hoek komt kijken bij het configureren en beheren van de infrastructuur in Kubernetes.

In tegenstelling tot Kubernetes en AKS bezit ACA ook een ingebouwde (native) functionaliteit om HTTP-verkeer tot nul te schalen. Voor ander verkeer kun je KEDA-scalers gebruiken om je applicatie te schalen op basis van het aantal inkomende events en berichten dat in behandeling is. ACA maakt capaciteit op- of afschalen op basis van binnenkomende verzoeken of berichten makkelijker dan ooit.

Een ander belangrijk voordeel van Azure Container Apps is de naadloze integratie van het platform met andere Azure-diensten. Het is een fluitje van een cent om soepele workflows te creëren in combinatie met Azure Logic Apps, Azure Functions, Azure Spring Apps en Azure Event Grid. Je verbindt ACA bovendien probleemloos met Azure-databronnen als databases en opslagomgevingen.

De toegevoegde waarde van Kubernetes

Naast de bovengenoemde voordelen heeft Azure Container Apps ook een aantal beperkingen die in Kubernetes niet of veel minder spelen. In tegenstelling tot Kubernetes kan ACA bijvoorbeeld geen privileged containers uitvoeren. Als je in het platform een proces wil uitvoeren dat vraagt om root access, loopt je gecontaineriseerde applicatie tegen een runtime error aan.

Een andere beperking van ACA zijn de resourcelimieten op het vlak van CPU en RAM. Dit betekent dat de dienst vaak niet de meest geschikte optie is voor ‘zware’ applicaties die veel resources nodig hebben om goed te functioneren.

Wat betreft mogelijkheden voor geavanceerde orchestratie, biedt Azure Container Apps minder uitgebreide mogelijkheden dan Kubernetes. Mogelijkheden voor maatwerk-deployment, manuele scaling controls, uitgebreide netwerkfunctionaliteiten en fijnmazige controle over het plaatsen van pods ontbreken in ACA bijvoorbeeld grotendeels. Je bent in ACA bovendien sterk afhankelijk van het ecosysteem aan Azure-diensten. Als je op zoek bent naar een cloud-agnostische dienst voor het beheren van containers, is Azure Container Apps niet de beste optie.

Kubernetes en AKS zijn meer clustergericht en bieden meer controle en flexibiliteit dan ACA. AKS ondersteunt bijvoorbeeld directe toegang tot de Kubernetes API en voert elke Kubernetes-workload uit. De clusterconfiguraties en -bewerkingen vallen geheel onder jouw controle en verantwoordelijkheid. Dit brengt wat meer complexiteit, maar tevens veel meer mogelijkheden voor maatwerk met zich mee. Kubernetes biedt in tegenstelling tot ACA ook maximale ondersteuning voor geavanceerde scenario’s zoals hybride cloudomgevingen en multicloud-implementaties.

ACA en Kubernetes: wanneer welk platform kiezen?

Azure Container Apps en Kubernetes geven je allebei de mogelijkheid om containers en applicaties te beheren. Ze doen dit alleen elk op een net wat andere manier. Welke oplossing voor jou de juiste is, hangt af van een aantal verschillende factoren.

  • De complexiteit van je applicatie. Door het uitgebreidere palet aan functionaliteiten, resources en configuratiemogelijkheden is Kubernetes de beste optie voor complexe en zware applicaties. ACA is prima voor eenvoudigere en stateless applicaties die je snel en on demand wilt op- en afschalen.
  • Gebruiksgemak en ontzorging. Als je niet te veel tijd en moeite kwijt wilt zijn aan het beheren en configureren van de infrastructuur en genoegen neemt met iets minder maatwerkmogelijkheden, is Azure Container Apps waarschijnlijk de beste optie. 
  • De mate van maatwerk die je nodig hebt. Kubernetes biedt meer maatwerkopties dan ACA.
  • Je behoeften en wensen op het vlak van schaalbaarheid.
  • Je budget en eventuele financiële beperkingen. Kubernetes integreren in je Azure-omgeving vergt een extra investering.
  • Het kennisniveau en de vaardigheden van je IT-team en developers. Kubernetes is uitgebreider en vergt meer specialistische kennis dan ACA. Managed-opties en de hulp inschakelen van een gespecialiseerde partner bieden de mogelijkheid om te profiteren van Kubernetes, maar tegelijkertijd de complexiteit binnen de perken te houden.
  • De mate van controle en flexibiliteit die je nastreeft. Kubernetes zorgt voor extra complexiteit, maar geeft je wel veel additionele knoppen om aan te draaien en containerbeheer zorgvuldig af te stemmen op je behoeften en organisatie.

Conclusie: kies wat past bij jouw behoeften en organisatie  

Azure Container Apps en Kubernetes zijn beide krachtige en veelzijdige oplossingen voor het beheren en containeriseren van applicaties. Maar ze hebben wel verschillende eigenschappen die passen bij bepaalde situaties. ACA zorgt voor een minimale overhead en complexiteit en is prima voor applicaties die snel en on demand schalen. Heb je te maken met complexere applicaties en streef je naar maximale controle en flexibiliteit op infrastructureel vlak? Dan biedt Kubernetes uitkomst.

Welke optie je ook kiest, ACC ICT helpt je graag om het beste te halen uit ACA en Kubernetes. Onze managed-diensten helpen jou bij het beheren en optimaliseren van je Azure- en Kubernetes-omgeving. Jij kunt je richten op je corebusiness en het ontwikkelen van software, terwijl wij zorgen voor een betrouwbare en goed presterende digitale infrastructuur. Zo haal je altijd het maximale uit de mogelijkheden van Azure Container Apps en/of Kubernetes. En dat allemaal zonder onnodige complexiteit en overhead.

Wil je meer weten over Azure Container Apps en Kubernetes? En ontdek je graag wat er allemaal mogelijk is met Managed Azure en Managed Kubernetes van ACC ICT? 

Deel deze post
Lucien Luijkx
Lucien is Marketing Manager bij ACC ICT en heeft ruime ervaring in digital marketing, growth hacking en contentmarketing. Met een brede interesse in Marketing en IT schrijft hij graag over nieuwe ontwikkelingen die impact hebben op de branche.