Alles wat je moet weten over Azure container apps

Containers worden de meest betrouwbare manier om Cloud toepassingen en -resources te verpakken, implementeren en beheren. Dit komt door hun flexibiliteit waarmee ontwikkelaars resources naadloos over meerdere omgevingen kunnen implementeren. Containers hebben een grote aanhang onder ontwikkelaars verworven omdat ze verschillende dringende problemen oplossen wanneer de toepassing in verschillende omgevingen wordt uitgevoerd.

Development
26 Februari 2022
Martijn van der Put

Onveranderlijke infrastructuur door containers

Over het algemeen, wanneer een toepassing in de ene omgeving wordt uitgevoerd en in een andere omgeving niet, komt dit door de verschillen in de configuratie van de onderliggende bibliotheekvereisten en andere afhankelijkheden.

Containers lossen dit probleem op door een lichte, onveranderlijke infrastructuur te bieden om de gehele toepassing te verpakken voor implementatie- of hostingdoeleinden. De container verpakt de afhankelijkheden, microservices en configuraties die nodig zijn voor de toepassing of service samen in een containerbeeld.

Deze toepassing (nu verpakt als een container) kan worden geïmplementeerd als een containerbeeldinstantie in de Cloud of op het host besturingssysteem. Echter, als het gaat om het hosten van gecontaineriseerde toepassingen, kan de kosten een overweldigende factor zijn. Veel Cloud hostingopties voor microservices en gecontaineriseerde resources vereisen infrastructuurbeheer en orchestratie, wat resulteert in aanzienlijke kosten, meer complexiteit en meer tijd voor marktintroductie.

Dit is waar de nieuwste toevoeging van Microsoft: Azure Container Apps, in beeld komt. 

Wat is Azure Container Apps? 

Azure Container Apps is een volledig beheerde serverless containerdienst die nu algemeen beschikbaar is. Het stelt ontwikkelaars in staat om een microservices-architectuur te bouwen verpakt in containers. De Azure Container Apps-service is eigenlijk gebouwd bovenop de Kubernetes-architectuur, een volledig beheerbare service om gecontaineriseerde workloads uit te voeren.

Nu rijst de vraag, waarom geen Kubernetes? Kubernetes biedt een steile leercurve en is complexer om te leren. Azure Container Apps elimineert dit en geeft je de volledige vrijheid om moeiteloos applicaties te bouwen in plaats van de onderliggende Kubernetes-clusterarchitectuur te beheren en configureren.

Als je Kubernetes-achtige toepassingen wilt bouwen zonder directe toegang tot de native Kubernetes-API's en clusterbeheer, biedt Azure Container Apps een end-to-end ervaring op basis van geoptimaliseerde praktijken.

Hoe werkt Azure container apps?  

Azure Container Apps vergemakkelijkt een omgeving die niets anders is dan een instantie van ACA, zoals een Kubernetes-cluster of een namespace. Je kunt meerdere containers implementeren in een omgeving en ze kunnen met elkaar communiceren.

Stel dat je een op microservices gebaseerde toepassing bouwt, dan zou je al je microservices in dezelfde omgeving implementeren en vervolgens draaien deze microservices onafhankelijk, waarbij ze de vereiste functies aanroepen.

Vervolgens hebben we container-apps. Denk aan container-apps als vergelijkbaar met Kubernetes Pods. Pods zijn niets anders dan een enkele instantie van je draaiende proces in je Kubernetes-cluster. Elke container-app kan meerdere containers bevatten, maar ze functioneren als containers in een enkele pod of app. Ze delen allemaal dezelfde levenscyclus, dezelfde schijf en kunnen rechtstreeks met elkaar communiceren. De microservice die deel uitmaakt van je toepassing maar een andere levenscyclus heeft, zou zich in een aparte container-app binnen dezelfde omgeving bevinden.

Tenslotte hebben we een ander onderdeel genaamd revisies. Revisies zijn onveranderlijke momentopnames van je containerapplicatie op een specifiek tijdstip. Wanneer je je containerapplicatie bijwerkt vanuit de oude versie, maak je een nieuwe revisie. Op dit moment draaien zowel je oude als nieuwe versies tegelijkertijd, en je gebruikt functionaliteit voor verkeersbeheer om het verkeer naadloos tussen de oudere en nieuwere versies om te leiden.

Voordelen van Azure container apps

  • Ondersteuning bieden voor verschillende soorten toepassingen, waaronder microservices, HTTP-API's, event handling, langlopende processen en andere diverse achtergrondtaken.
  • Mogelijkheid om code te schrijven in je voorkeurstaal, framework of SDK.
  • Betrouwbare automatische schaalbaarheidsfuncties op basis van HTTP-verkeer en gebeurtenistriggers.
  • Eenvoudige configuraties voor taken in de levenscyclus van moderne toepassingen.
  • Aangedreven door Kubernetes en open-source technologieën zoals DAPR en KEDA. Distributed Application Runtime (Dapr) biedt API's voor het vereenvoudigen van microservices-connectiviteit en KEDA is een op Kubernetes gebaseerde, op gebeurtenissen gedreven autoscaler waarmee je je containers kunt schalen op basis van het aantal te verwerken gebeurtenissen.

Declaratieve schalingsregels in Azure container apps om verkeer te beheren

Azure Container Apps beheert horizontale schaling met een reeks declaratieve schalingsregels. Terwijl een containerapp wordt geschaald, worden nieuwe instanties van de containerapp on-demand gemaakt. Deze instanties worden replicaties genoemd. Er zijn twee schaalinstellingen die van toepassing zijn op alle schalingsregels in je containerapp. Ze zijn:

  1. minReplicas - Het minimale aantal replicaties dat actief is in je containerapp.
  2. maxReplicas - Het maximale aantal replicaties dat actief is in je containerapp.

Als je wilt garanderen dat er altijd minimaal één replicatie in je containerapp actief is, stel dan minReplicas in op 1 of hoger. Maar het omgaan met replicaties vereist aandacht. Replicaties die niet worden verwerkt maar in het geheugen blijven, worden apart in rekening gebracht in de categorie idle charge. Als je container schaalt naar nul, worden er geen kosten in rekening gebracht.


Conclusie 

In de afgelopen jaren zijn er opmerkelijke ontwikkelingen geweest in het Cloud-native ecosysteem. Geavanceerde vooruitgang op het gebied van opslag, netwerken en beveiliging helpt Kubernetes en andere Cloud-native stacks om geschikt te worden voor bedrijven. Aan de andere kant draagt deze vooruitgang bij aan de toenemende complexiteit van de Cloud-native stack.

Daarom is Azure Container Apps, ontwikkeld als een abstractie laag boven Kubernetes, de beste oplossing gebleken voor het beheren, implementeren en verwerken van gecontaineriseerde toepassingen en resources. Ook als volledig beheerde server loze service elimineert het de noodzaak van infrastructuurbeheer en de bijbehorende kosten.

Dit betekent dat je eenvoudig de code kunt schrijven om je op microservices gebaseerde toepassing in dezelfde containerapp of verschillende containerapps met dezelfde of verschillende levenscyclus en schijfresources te implementeren. Je hoeft je ook geen zorgen te maken over het beheren van de infrastructuur en andere platformdiensten.

Wil je meer informatie? Neem dan contact op.

Cookies
Deze site gebruikt geanonimiseerde cookies. Klik op "Akkoord" als je akkoord gaat met het gebruik van cookies, of klik op "Aanpassen" om je voorkeuren te bepalen.
Deze site gebruikt geanonimiseerde cookies.