Sur sa conférence Ignite cette semaine, dans la catégorie des services cloud pour développeurs, Microsoft a annoncé la préversion de fonctionnalités serverless pour déployer des micro-services à grande échelle à partir d'événements. Azure Container Apps a été conçu pour dispenser les équipes IT de la gestion de l’infrastructure cloud sous-jacente et de l’orchestration des micro-services. Typiquement, il sera utilisé pour faire passer rapidement une application à l’échelle en réponse à des requêtes http ou à des événements (gestion de files de messages avec Kafka, par exemple) ou encore pour des tâches d’arrière-plan restant actives de façon continue. Il permet d’exécuter du code placé dans n’importe quel conteneur sans se préoccuper du runtime ni du modèle de programmation, décrit Microsoft. Chez AWS et Google, dans la même catégorie, on trouve des services comme App Runner ou Cloud Run.
Microsoft ajoute qu’Azure Container Apps répond à des besoins spécifiques des micro-services dont la communication chiffrée de service à service, la gestion indépendante des versions et la mise à l’échelle. Derrière le décor, chaque application prise en charge s’exécute sur Azure Kubernetes (AKS) avec Kubernetes event driven autoscaling (KEDA), Distributed application runtime (Dapr) et Envoy étroitement intégrés dans ces fonctionnalités serverless.
Plusieurs container apps dans un même environnement
Dans un billet, Microsoft explique que plusieurs container apps distinctes peuvent être déployées dans un seul environnement Container Apps qui les isole et crée un lien d’observabilité entre elles (les logs associés sont écrits dans le même espace d’analyse des logs). « Cette structure permet une communication facile entre les micro-services qui composent la solution dans son ensemble », explique Microsoft. « De plus, plusieurs conteneurs peuvent être déployés sur la même Container App et, dans ce cas, ils seront déployés et montés à l’échelle ensemble comme un seul groupe de conteneurs ».
Azure Container Apps fournit un environnement d’isolement entre les micro-services et d’observabilité. Il est intégré avec l’API Dapr (Distributed application runtime). (Crédit : Microsoft / agrandir l'image)
Les Container Apps se créent à partir de l’interface en ligne de commandes d’Azure. La gestion de leur autoscaling horizontal se fait à travers un ensemble de règles déclaratives. Par défaut, le passage à l’échelle du micro-service part de zéro et les fonctionnalités serverless ne sont pas facturées quand elles ne sont pas utilisées. Au fur et à mesure du passage à l’échelle d’une container app, de nouvelles instances de container app sont créées à la demande.
Azure Container Apps fournit une version entièrement gérée de l’API Dapr qui inclut les appels de service à service et des fonctionnalités comme pub/sub, event bindings, state stores et actors. Ce runtime basé sur les événements codifie les bonnes pratiques pour bâtir des applications sous formes de micro-services, indépendantes des plateformes, en utilisant le langage et le framework de son choix. La facturation de Container Apps repose sur la consommation des ressources mesurées en secondes de vCPU et GiB.