Alle blogberichten

Wat is nut van Azure Container Apps? Onze collega Geert Baeke deelt zijn expertise.

Wat is nut van Azure Container Apps? Onze collega Geert Baeke deelt zijn expertise.

Hoor jij de term ‘Azure Container Apps’ regelmatig in de wandelgangen vallen? Maar ben je nog niet helemaal vertrouwd met het concept? Geen nood! Onze collega Geert is een Cloud Native Architect en een specialist is alles wat met containers te maken heeft. Hieronder legt hij het concept van Azure Container Apps grondig uit, kadert hij het verschil met Kubernetes en zet hij de voor- en nadelen op een rijtje.

Wat betekent ‘containerizen’?

Vandaag de dag merken we dat development teams steeds vaker hun applicatie ‘containerizen’. Dit concept doet zich voor wanneer je een (web)applicatie verpakt in een container. Dit is een verzameling van alle files die je applicatie bevat. Er bestaan verschillende toepassingen om je containers in de cloud te draaien. Vaak denkt men automatisch aan Kubernetes Dit is een open-source systeem oorspronkelijk uitgebracht door Google. Het gevaar met Kubernetes is dat de configuratie als complex aanzien kan worden. In dit kader heeft Microsoft belist om een nieuwe service aan te bieden, namelijk Azure Container Apps. Deze service is een blend tussen App Services en Kubernetes Services die focust op ‘ease of use’.

Wat is Azure Container Apps?

Het is een serverless CaaS (Containers as a Service). Het serverless aspect brengt enkele voordelen met zich mee. Enerzijds kan je hierdoor dynamisch schalen naargelang de vraag. Het geeft ook de mogelijkheid om tot 0 te schalen wat betekent dat je niets betaalt omdat er geen containers draaien. En tenslotte, als je dan toch containers draait, betaal je per seconde. Een ander belangrijk aspect aan Container Apps is dat het door Microsoft werd gebouwd op open-source componenten zoals Kubernetes, Keda, Dapr en Envoy. Dit betekent dat als je je applicatie draait op Container Apps, dat die onderliggend op Kubernetes draait zonder dat je daar iets van ziet.

Waarom zou je werken met containers? 

Je hebt voor-en tegenstaanders. Door te werken met containers maak je je code portable zodat je deze eender waar kan draaien waar containers ondersteund worden (vb. Azure, Amazon, Google, on-premises, etc.). Een ander belang van containers is snelheid en grootte. Een container kan zeer snel opstarten (zeker in vergelijking met een virtuele machine) en kan ook snel schalen. Het nadeel is dat je iets meer moet weten over bepaalde tooling en security. Het vergt een zekere inspanning van de developers om zich in te lezen over het gebruik van containers maar op termijn ga je meer vrijheid hebben en kan je ook gemakkelijker in spelen op vragen van klanten zoals bijvoorbeeld om snel te schalen wanneer nodig. Kortom, containers zijn dus niet altijd nodig. Dit hangt af van het voorkeur van het team, de noden van de klant, de complexiteit van de applicatie enz.

Welke andere opties biedt Azure om applicaties en containerized apps te draaien?

Azure biedt heel wat toepassingen in dit kader aan. Op de grafiek hieronder zien we aan de linkerzijde de eerder simpele implementaties en rechts de meer complexe:

  • Container Instances: dat is de eerste versie van containers as a service (CaaS) van Microsoft wat containers betreft. Als je een container image hebt, kan je simpelweg aan Azure vragen om dit te draaien. Deze oplossing is nuttig om specifieke taken uit te voeren of als onderdeel van een workflow. Het probleem hierbij is dat het redelijk simpel qua uitwerking is, namelijk bare bone service. Meer bepaald: je kan niet gemakkelijk op- en neerschalen. Er zit geen hoger niveau services in zoals bijvoorbeeld certificate management.
  • App Services: Als je een web app of web API bouwt die niet al te complex is , dan is App Services een meer geschikte kandidaat. Het is een populaire servcie en heeft geen containers nodig maar ondersteunt ze wel.
  • Kubernetes Services: Zodra je meer microservices moet gebruiken, werk je eerder met Kubernetes Services. Denk maar bijvoorbeeld aan een applicatie waarbij er verschillende componenten met elkaar moeten praten, dan bouw je een gedistribueerde applicatie die apart moet kunnen schalen per niveau.
  • Container Apps: dit is een unieke blend tussen App Services en Kubernetes die focust op de ‘ease of use’: het zo eenvoudig mogelijk maken in gebruik, ook voor complexe applicaties.
  • Virtual Machines: deze worden gebruikt als je het allemaal zelf wil doen en je eigen Kubernetes wil installeren of je containers op een ander systeem laat draaien. Hier heb je veel meer werk op vlak van infrastructuur, security, patching etc. Dit raden we klanten niet aan.

Microsoft services - container apps

“Azure Container Apps is een unieke blend tussen App Services en Kubernetes die focust op de ‘ease of use’: het zo eenvoudig mogelijk maken om containers te laten draaien, zelfs bij complexe applicaties. Door het serverless aspect kan je dynamisch schalen naargelang de vraag.”

Waarom heeft Microsoft Azure Container Apps uitgebracht?

Een andere belangrijke focus bij de ontwikkeling, was de ‘developer productivity’. Het is niet zo evident voor een developer om code te testen in Kubernetes als je hier niet zo mee vertrouwd bent. Om die reden heeft Microsoft beslist om het gemakkelijker te maken. Met slechts 1 commando, 1 lijn code, kan je je container automatisch laten draaien in de cloud.

In de eerste plaats ligt de focus van Azure Container Apps op ‘ease of use’ om de complexiteit van Kubernetes te vermijden. Het is wel belangrijk om te weten dat Azure Container Apps, Kubernetes niet volledig vervangt en dat er ook limitaties zijn. Dit gezegd zijnde, wordt er wel heel hard gewerkt aan het oplossen van deze limitaties. Er is een roadmap op GitHub waar je publiekelijk alle changes kan opvolgen.

Waarom zou je Kubernetes niet standaard gebruiken om containerized apps te draaien? 

Zoals eerder vermeld kan de complexiteit van Kubernetes hoog zijn. Anderzijds moet je bij Kubernetes meer aandacht besteden aan infrastructuur zoals upgrades, patching, netwerk, storage etc. Men denkt vaak dat als je Kubernetes in de cloud (vb. AKS) gebruikt, dat alles voor jou automatisch wordt geregeld. Er is inderdaad veel geautomatiseerd, maar je moet toch heel wat keuzes zelf nemen zoals het volgen van de Kubernetes versies en het uitvoeren van de upgrades. Dit zijn allemaal stappen die wegvallen bij Container Apps. De upgrades worden hier automatisch door Microsoft uitgevoerd, zonder dat je applicaties hier hinder door zullen ondervinden.

Welke soorten toepassingen kan je draaien op Container Apps?

  • API’s & web apps
  • Applicaties die zaken in de achtergrond uitvoeren zonder een front-end
  • Applicaties die events processen (vb. berichten die binnenkomen vanuit een IoT device)
  • Complexere Microservices applicaties

Wat heb je nodig om aan de slag te gaan met Azure Container Apps?

Hiervoor heb je een Azure subscription nodig waarin je een Azure Container Apps environment aanmaakt. Dit duurt slechts enkele minuutjes. Aangezien het serverless is, betaal je alleen voor de containers die je gaat draaien. Eens je deze omgeving hebt opgezet, kan je container apps gaan deployen. Tenslotte heb je voor de developer productvity de Azure Developer CLI nodig.

Conclusie

In deze blogpost heb je uitgebreid kennis kunnen maken met Azure Container Apps. Je hebt kunnen ontdekken wat het concept inhoudt, hoe het zich verhoudt tot andere services zoals Kubernetes, en welke voordelen en mogelijkheden het biedt. Nu is het aan jou om zelf aan de slag te gaan! Maak gebruik van Azure Container Apps en ervaar de eenvoud en kracht van containerization voor je applicaties.

Gerelateerde blog berichten.

De kracht van Cloud Cost Optimization: maximaliseer…

Gepubliceerd op 17/08/2023

In het snel veranderende digitale landschap waarin we vandaag werken, is het vaak een hele…

Techorama 2023: onze 5 belangrijkste take-aways

Gepubliceerd op 29/05/2023

Ook dit jaar waren we met een delegatie van ons Exserstus team aanwezig op Techorama.…

Wat is Blazor? En wat zijn de…

Gepubliceerd op 19/07/2022

Onze .NET developers Amish en Robbe werken samen op een project voor FOD BOSA. Ze…