Aller au contenu

Azure Container Instances

Images et conteneurs

Un conteneur est un environnement d’exécution isolé qui permet de faire fonctionner une application avec les bibliothèques et autres dépendances dont elle a besoin. Il facilite son déploiement et permet de retrouver un environnement cohérent entre les différents systèmes qui l’hébergent.

Par exemple, une application ASP.NET Core peut être distribuée dans une image de conteneur contenant son code publié, le runtime .NET et les dépendances nécessaires. Un outil comme Docker utilise cette image pour créer et démarrer un ou plusieurs conteneurs.

Il faut distinguer deux notions :

  • L’image est le modèle qui contient les éléments nécessaires à l’exécution de l’application.
  • Le conteneur est une instance créée à partir de cette image, dans laquelle l’application s’exécute.

Contrairement à une machine virtuelle, un conteneur ne possède généralement pas son propre noyau de système d’exploitation : il partage celui de son hôte, tout en bénéficiant d’un isolation des processus, du réseau et du système de fichiers. Il est donc généralement plus léger et plus rapide à démarrer.

Services pour les conteneurs

Microsoft Azure propose plusieurs services pour stocker les images de conteneurs, déployer les applications qui les utilisent et gérer leur exécution. Ces services répondent à différents besoins, depuis l’exécution d’un conteneur jusqu’à l’orchestration d’une application composée de plusieurs conteneurs :

  • Azure Container Registry (ACR) : registre privé permettant de stocker et de gérer les images de conteneurs. Il constitue un dépôt centralisé depuis lequel les services d’exécution peuvent récupérer les images.

  • Azure Container Instances (ACI) : permet d’exécuter des conteneurs à la demande, sans avoir à créer et à administrer les machines virtuelles qui les hébergent.

  • Azure App Service : avec sa prise en charge des conteneurs, permet d’héberger des applications web et des API distribuées sous forme d’images de conteneurs.

  • Azure Container Apps (ACA) permet d’exécuter des applications conteneurisées, des micro-services et des traitements en arrière-plan, avec des possibilités d’adaptation automatique à la charge, sans administrer directement un cluster Kubernetes.

  • Azure Kubernetes Service (AKS) fournit un service Kubernetes pour orchestrer des applications conteneurisées : déploiement, répartition des instances, redémarrage en cas de défaillance et d'adaptation à la charge.