Meilleures pratiques et considérations pour Azure Container Instances

Azure Container Instances vous permet d’empaqueter, de déployer et de gérer des applications cloud sans avoir à gérer l’infrastructure sous-jacente. Les scénarios courants qui s’exécutent sur ACI incluent les charges de travail en rafale, l’automatisation des tâches et les tâches de génération. Vous pouvez utiliser ACI en définissant les ressources nécessaires par groupe de conteneurs, y compris le processeur virtuel et la mémoire. ACI est une solution idéale pour tous les scénarios qui peuvent fonctionner dans un conteneur isolé et offre des temps de démarrage rapides, une sécurité au niveau hyperviseur et des tailles de conteneur personnalisées, entre autres. Les informations ci-dessous vous aideront à déterminer si Azure Container Instances est le mieux adapté à votre scénario.

Éléments à prendre en compte

Les informations d’identification de l’utilisateur passées via l’interface de ligne de commande (CLI) sont stockées sous forme de texte brut dans le back-end. Le stockage des informations d’identification en texte brut est un risque de sécurité ; Microsoft conseille aux clients de stocker les informations d’identification de l’utilisateur dans les variables d’environnement CLI pour s’assurer qu’ils sont chiffrés/transformés lorsqu’ils sont stockés dans le serveur principal.

Il existe des limites par défaut qui peuvent nécessiter des augmentations de quota. Pour plus d’informations : Disponibilité des ressources et limites de quota pour ACI - Azure Container Instances | Microsoft Learn

Les images conteneur ne peuvent pas dépasser 15 Go. Toute image de taille supérieure peut entraîner un comportement inattendu : Quelle est la taille maximale d’une image conteneur ?

Si votre image conteneur est supérieure à 15 Go, vous pouvez monter un Azure Fileshare pour stocker l’image.

Si un groupe de conteneurs redémarre, l’adresse IP du groupe de conteneurs peut changer. Nous vous déconseillons d’utiliser une adresse IP codée en dur dans votre scénario. Si vous avez besoin d’une adresse IP publique statique, utilisez Application Gateway : Adresse IP statique pour le groupe de conteneurs - Azure Container Instances | Microsoft Learn.

Certains ports sont réservés à la fonctionnalité du service. Nous vous déconseillons d’utiliser ces ports, car leur utilisation entraînerait un comportement inattendu : Le service ACI réserve-t-il des ports pour la fonctionnalité du service ?.

Vos groupes de conteneurs peuvent redémarrer en raison d’événements de maintenance de la plateforme. Ces événements de maintenance sont effectués pour garantir l’amélioration continue de l’infrastructure sous-jacente : Le conteneur redémarrait de manière isolée sans entrée utilisateur explicite.

ACI n’autorise pas les opérations d’un conteneur privilégié. Nous vous conseillons de ne pas dépendre de l’utilisation du répertoire racine pour votre scénario

Meilleures pratiques

Nous vous conseillons d’exécuter des groupes de conteneurs dans plusieurs régions afin que vos charges de travail puissent continuer à s’exécuter en cas de problème dans une région.

Nous vous déconseillons d’utiliser une adresse IP codée en dur dans votre scénario, car l’adresse IP d’un groupe de conteneurs n’est pas garantie. Pour atténuer les problèmes de connectivité, nous vous recommandons de configurer une passerelle. Si votre conteneur se trouve derrière une adresse IP publique et que vous avez besoin d’une adresse IP publique statique, utilisez Application Gateway. Si votre conteneur se trouve derrière un réseau virtuel et que vous avez besoin d’une adresse IP statique, nous vous recommandons d’utiliser NAT Gateway.

Autres options Azure Container

Azure Container Apps

Azure Container Apps vous permet de créer des microservices serverless basés sur des conteneurs. Azure Container Apps ne fournit pas d’accès direct aux API Kubernetes sous-jacentes. Si vous avez besoin d’accéder aux API Kubernetes et au plan de contrôle, vous devez utiliser Azure Kubernetes Service. Toutefois, pour créer des applications de type Kubernetes sans accès direct à l’ensemble des API Kubernetes natives et à la gestion des clusters, Container Apps fournit une expérience complètement managée s’inspirant des bonnes pratiques. Pour ces raisons, de nombreuses équipes peuvent préférer utiliser Azure Container Apps pour commencer à créer des microservices de conteneur.

Azure App Service

Azure App Service fournit un hébergement entièrement managé pour les applications web, notamment les sites web et les API web. Ces applications web peuvent être déployées avec du code ou des conteneurs. Azure App Service est optimisé pour les applications web. Azure App Service est intégré à d’autres services Azure, notamment Azure Container Apps ou Azure Functions. Si vous envisagez de générer des applications web, Azure App Service est une option idéale.

Azure Container Instances

Azure Container Instances (ACI) fournit un pod unique de conteneurs isolés Hyper-V à la demande. Il peut être considéré comme une option « de base » de niveau inférieur par rapport à Container Apps. Les concepts comme la mise à l’échelle, l’équilibrage de charge et les certificats ne sont pas fournis avec les conteneurs ACI. Par exemple, pour une mise à l’échelle vers 5 instances de conteneur, vous créez cinq instances de conteneur distinctes. Azure Container Apps fournit de nombreux concepts propres aux applications en plus des conteneurs, notamment les certificats, les révisions, la mise à l’échelle et les environnements. Les utilisateurs interagissent souvent avec Azure Container Instances en utilisant d’autres services. Par exemple, Azure Kubernetes Service peut superposer l’orchestration et la mise à l’échelle sur ACI en utilisant des nœuds virtuels. Si vous avez besoin d’un composant avec moins d’options et qui ne correspond pas aux scénarios auxquels convient Azure Container Apps, Azure Container Instances est une option idéale.

Azure Kubernetes Service

Azure Kubernetes Service (AKS) fournit une option Kubernetes complètement managée dans Azure. Il prend en charge l’accès direct à l’API Kubernetes et exécute toutes les charges de travail Kubernetes. Le cluster entier se trouve dans votre abonnement, avec les configurations et les opérations du cluster sous votre contrôle et votre responsabilité. Pour les équipes recherchant une version entièrement managée de Kubernetes dans Azure, Azure Kubernetes Service est une option idéale.

Azure Functions

Azure Functions est une solution FaaS (functions as a service) serverless. Elle est optimisée pour l’exécution d’applications pilotées par les événements utilisant le modèle de programmation des fonctions. Il partage de nombreuses caractéristiques avec Azure Container Apps autour de la mise à l’échelle et de l’intégration des événements, mais il est optimisé pour les fonctions éphémères déployées sous forme de code ou de conteneurs. Le modèle de programmation d’Azure Functions offre des avantages en matière de productivité aux équipes qui cherchent à déclencher l’exécution de leurs fonctions sur des événements et à établir une liaison à d’autres sources de données. Si vous envisagez de créer des fonctions de style FaaS, Azure Functions est l’option idéale. Le modèle de programmation Azure Functions est disponible sous forme d’image conteneur de base, ce qui le rend portable vers d’autres plateformes de calcul basées sur les conteneurs et permet aux équipes de réutiliser le code quand les exigences de l’environnement changent.

Azure Spring Apps

Azure Spring Apps est un service complètement managé pour les développeurs Spring. Si vous souhaitez exécuter Spring Boot, Spring Cloud ou toute autre application Spring sur Azure, Azure Spring Apps est une option idéale. Le service gère l’infrastructure des applications Spring, ce qui permet aux développeurs de se concentrer sur leur code. Azure Spring Apps assure la gestion du cycle de vie en utilisant des outils complets, tels que la supervision et les diagnostics, la gestion des configurations, la découverte de services, l’intégration CI/CD, les déploiements bleus-verts, etc.

Azure Red Hat OpenShift

La plateforme Azure Red Hat OpenShift est conçue, exploitée et prise en charge conjointement par Red Hat et par Microsoft afin de fournir une expérience intégrée en matière de produits et de support pour l’exécution d’OpenShift alimenté par Kubernetes. Grâce à Azure Red Hat OpenShift, les équipes peuvent choisir leurs propres solutions de registre, de mise en réseau, de stockage et de CI/CD, ou utiliser les solutions intégrées pour la gestion automatisée du code source, les builds de conteneurs et d’applications, les déploiements, la mise à l’échelle, la gestion de l’intégrité, etc. d’OpenShift. Si votre équipe ou votre organisation utilise OpenShift, Azure Red Hat OpenShift est une option idéale.

Étapes suivantes

Découvrez comment déployer un groupe de plusieurs conteneurs avec un modèle Azure Resource Manager :