Comparaison des applications conteneur à d’autres options de conteneur Azure
Les équipes disposent de nombreuses options pour créer et déployer des applications conteneurisées cloud natives sur Azure. Cet article vous aide à comprendre les scénarios et les cas d’utilisation les mieux adaptés à Azure Container Apps et en quoi il diffère d’autres options de conteneur sur Azure, dont :
- Azure Container Apps
- Azure App Service
- Azure Container Instances
- Azure Kubernetes Service
- Azure Functions
- Azure Spring Apps
- Azure Red Hat OpenShift
Aucune solution ne convient parfaitement à chaque cas d’utilisation et chaque équipe. L’explication suivante vous fournit des recommandations générales comme point de départ pour rechercher la solution la mieux adaptée à votre équipe et à vos exigences.
Comparaison des options de conteneur
Azure Container Apps
Azure Container Apps vous permet de créer des microservices et des travaux serverless basés sur des conteneurs. Les fonctionnalités distinctives de Container Apps sont notamment :
- Optimisées pour exécuter des conteneurs à usage général, en particulier pour les applications qui couvrent de nombreux microservices déployés dans des conteneurs.
- Repose sur Kubernetes et des technologies open source comme Dapr, KEDA et envoy.
- Prend en charge les applications de type Kubernetes et les microservices avec des fonctionnalités comme la découverte du service et la répartition du trafic.
- Autorise les architectures d’application pilotées par les événements en prenant en charge la mise à l’échelle en fonction du trafic et en tirant des données à partir de sources d’événements comme les files d’attente, y compris la mise à l’échelle sur 0.
- Il prend en charge l’exécution de travaux à la demande, planifiés et pilotés par les événements.
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. C’est pour ces raisons que de nombreuses équipes préfèrent commencer à générer des microservices de conteneur avec Azure Container Apps.
Vous pouvez commencer à créer votre première application de conteneur à l’aide des démarrages rapides.
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. Vous pouvez déployer ces applications web en utilisant 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. Azure App Service est une option idéale pour la création d’applications web.
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. Quand vous créez des fonctions de type 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
Azure Red Hat OpenShift est un produit intégré conçu, exploité et pris en charge conjointement par Red Hat et Microsoft. Cette collaboration offre une expérience produit et de support intégrée pour l’exécution d’OpenShift avec Kubernetes. Grâce à Azure Red Hat OpenShift, les équipes peuvent choisir leur propre registre, mise en réseau, stockage et solutions CI/CD. Il est également possible d’utiliser les solutions intégrées pour la gestion automatisée du code source, les builds de conteneur et d’applications, les déploiements, la mise à l’échelle, la gestion de l’intégrité et bien plus encore par OpenShift. Si votre équipe ou votre organisation utilise OpenShift, Azure Red Hat OpenShift est une option idéale.