Choisir une option de calcul Azure pour les microservices
Le terme calcul fait référence au modèle d’hébergement des ressources de calcul utilisées par votre application. Cet article fournit des conseils prescriptifs pour vous aider à choisir une plateforme de calcul pour les microservices. La sélection de votre plateforme de calcul de microservice peut dépendre d’exigences plus nuancées.
Pour une architecture de microservices, les approches suivantes sont populaires :
- Déployez des microservices sur des plateformes de calcul dédiées, généralement à l’aide d’un orchestrateur de microservice.
- Déployez des microservices sur une plateforme serverless.
Bien que ces options ne soient pas les seules, elles sont toutes deux des approches éprouvées de la création de microservices. Une application peut inclure les deux approches.
Téléchargez un fichier Visio de cette architecture.
Utiliser une plateforme serverless
Vous pouvez utiliser des plateformes serverless pour déployer des microservices sur Azure Container Apps ou Azure Functions. Container Apps et Functions fournissent des options de calcul serverless qui facturent en fonction du volume de requêtes plutôt que de la consommation de calcul. Les deux plateformes vous offrent également la possibilité d’héberger les charges de travail sur une capacité dédiée.
Déployer des microservices basés sur du code
Si vous souhaitez déployer vos microservices en tant que code au lieu de les conteneuriser, vous pouvez utiliser Azure Functions. Pour plus d’informations, consultez la liste des langages de programmation et de script pris en charge par Functions. Pour les microservices que vous développez dans d’autres langages, vous pouvez implémenter un gestionnaire personnalisé dans Functions ou envisager de conteneuriser l’application.
Utiliser un modèle GPU
Si votre microservice nécessite une capacité GPU, par exemple, pour exécuter des tâches de Machine Learning, envisagez de choisir Container Apps ou Azure Kubernetes Service (AKS) pour votre plateforme. AKS peut utiliser n’importe quel modèle GPU dans Azure et Container Apps offre un sous-ensemble de modèles GPU à choisir.
Utiliser des orchestrateurs de service
Un orchestrateur gère les tâches liées au déploiement et à la gestion d’un ensemble de services. Ces tâches incluent le placement des services sur des nœuds, la surveillance de l’intégrité des services, le redémarrage des services non intègres, l’équilibrage de charge du trafic réseau entre les instances de service, la détection des services, la mise à l’échelle du nombre d’instances d’un service et l’application des mises à jour de configuration. Les orchestrateurs populaires incluent Kubernetes, Azure Service Fabric, DC/OS et Docker Swarm.
Sur la plateforme Azure, envisagez les options suivantes :
Azure Kubernetes Service (AKS) est un service Kubernetes géré. AKS provisionne Kubernetes et expose les points de terminaison de l’API Kubernetes, héberge et gère le plan de contrôle Kubernetes, et effectue des mises à niveau automatisées, des mises à jour correctives automatisées, une mise à l’échelle automatique et d’autres tâches de gestion. AKS fournit un accès direct aux API Kubernetes.
Container Apps est un service managé basé sur Kubernetes qui extrait les complexités de l’orchestration de conteneurs et d’autres tâches de gestion. Container Apps simplifie le déploiement et la gestion des applications conteneurisées et des microservices dans un environnement serverless tout en fournissant les fonctionnalités de Kubernetes. Container Apps est idéal pour les scénarios où l’accès direct aux API Kubernetes n’est pas nécessaire.
Service Fabric est une plateforme de systèmes distribués pour le packaging, le déploiement et la gestion de microservices. Vous pouvez déployer des microservices sur Service Fabric en tant que conteneurs, en tant qu’exécutables binaires ou en tant que Reliable Services. En utilisant le modèle de programmation Reliable Services, les services peuvent utiliser directement les API de programmation Service Fabric pour interroger le système, signaler l’intégrité, recevoir des notifications sur les modifications de configuration et de code et découvrir d’autres services.
Utilisez Azure Red Hat OpenShift pour déployer des clusters OpenShift complètement managés. Azure Red Hat OpenShift est une extension de Kubernetes. Azure Red Hat OpenShift est conjointement conçu, exploité et pris en charge par Red Hat et Microsoft.
D’autres options, telles que Docker Êdition Entreprise, peuvent s’exécuter dans un environnement de cloud computing sur Azure. Des modèles de déploiement sont disponibles sur la Place de marché Azure.
Utiliser des API Kubernetes
L’accès aux API Kubernetes est souvent un facteur déterminant lorsque vous choisissez une option de calcul. AKS fournit un accès direct aux API Kubernetes, mais Container Apps ne le fait pas. Container Apps masque les complexités de Kubernetes et simplifie l’expérience de déploiement de conteneur. Si vous concevez votre déploiement de microservice pour interagir directement avec les API Kubernetes, AKS peut être le bon choix.
Autres facteurs de décision
Il peut y avoir d’autres facteurs qui affectent la sélection de votre plateforme de calcul de microservice. Ces facteurs incluent les options de maillage de service, la scalabilité de la plateforme et les ensembles de compétences que vous pouvez utiliser au sein de l’organisation.
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.
Fiabilité
La fiabilité permet de s’assurer que votre application tient vos engagements auprès de vos clients. Pour en savoir plus, consultez Liste de contrôle de l'examen de la conception pour la fiabilité.
La résilience est l’un des piliers clés de la fiabilité. L’objectif de résilience est de renvoyer la charge de travail à un état entièrement opérationnel après une défaillance.
Si vous choisissez Azure Functions comme plateforme de calcul de microservice, envisagez de déployer le plan Functions Premium ou azure App Service dans une configuration redondante interzone. Pour plus d’informations, consultez Fiabilité dans Functions.
Si vous choisissez AKS comme plateforme de calcul de microservice, vous pouvez améliorer la fiabilité du microservice en déployant un cluster AKS qui utilise des zones de disponibilité, à l’aide du niveau Standard ou Premium pour les clusters Azure Kubernetes, et en augmentant le nombre minimal de pods et de nœuds. Pour plus d’informations, consultez Les meilleures pratiques en matière de fiabilité de déploiement et de cluster pour AKS.
Si vous choisissez Container Apps comme plateforme de calcul de microservice, vous pouvez améliorer la fiabilité à l’aide de zones de disponibilité. Pour plus d’informations, consultez Fiabilité dans Container Apps.
Sécurité
La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour en savoir plus, consultez Liste de contrôle de l'examen de la conception pour la sécurité.
Si vous choisissez Azure Functions comme plateforme de calcul pour déployer des microservices, les principes de sécurisation d’Azure Functions s’appliquent également aux microservices.
Si vous choisissez AKS comme plateforme de calcul pour déployer des microservices, l’architecture de base de référence de sécurité AKS fournit des conseils pour sécuriser la plateforme de calcul. Pour connaître les meilleures pratiques sur la sécurité des microservices sur AKS, consultez l’architecture avancée du microservice AKS.
Si vous choisissez Container Apps comme plateforme de calcul pour déployer des microservices, consultez la base de référence de sécurité pour Container Apps pour les meilleures pratiques de sécurité.
Optimisation des coûts
L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d'informations, consultez Liste de contrôle de la révision de la conception pour l'optimisation des coûts.
Lorsque vous utilisez un orchestrateur, vous payez les machines virtuelles qui s’exécutent dans le cluster. Lorsque vous utilisez une application serverless, vous payez uniquement les ressources de calcul réelles que vous consommez. Dans les deux cas, vous devez prendre en compte le coût de tous les services supplémentaires, tels que le stockage, les bases de données et les services de messagerie.
Azure Functions, Container Apps et AKS fournissent des options de mise à l’échelle automatique. Container Apps et Functions fournissent des plateformes serverless où le coût est basé sur la consommation et peut être égal à zéro. AKS fournit uniquement des options de calcul dédiées.
Si vous choisissez AKS comme plateforme de calcul pour déployer des microservices, vous devez comprendre les meilleures pratiques d’optimisation des coûts. Pour plus d’informations, consultez Optimiser les coûts dans Azure Kubernetes Service.
Si vous choisissez Container Apps comme plateforme de calcul de microservices, vous devez comprendre les différents modèles de facturation et décider du modèle de déploiement de vos microservices en fonction des besoins de votre charge de travail. Pour plus d’informations, consultez Facturation dans Container Apps.
Si vous choisissez Azure Functions comme plateforme de calcul de microservices, vous devez comprendre les différents modèles de facturation et décider du plan Functions en fonction des besoins de votre charge de travail. Pour plus d’informations, consultez Estimer les coûts basés sur la consommation et les détails du plan Azure Functions.
Excellence opérationnelle
L’excellence opérationnelle couvre les processus opérationnels qui déploient une application et la maintiennent en production. Pour plus d’informations, consultez la Liste de contrôle de l'examen de la conception pour l'excellence opérationnelle.
Vous pouvez déployer tous les choix de calcul de microservice décrits par cet article de manière automatisée à l’aide de Terraform, Bicep et d’autres langages de script. Vous pouvez utiliser Application Insights, Azure Monitor et d’autres solutions de supervision pour surveiller ces plateformes de calcul et microservices.
Tenez compte des facteurs suivants lorsque vous choisissez entre une approche d’orchestrateur et une approche serverless :
Flexibilité et contrôle : un orchestrateur vous permet de contrôler la configuration et la gestion de vos services et du cluster. Le compromis est plus complexe. Avec une architecture sans serveur, vous perdez en contrôle, car ces détails sont rendus abstraits.
Portabilité : tous les orchestrateurs répertoriés dans cet article, notamment Kubernetes, DC/OS, Docker Swarm et Service Fabric, peuvent s’exécuter localement ou dans plusieurs clouds publics.
Intégration de l’application : il peut être difficile de créer une application complexe qui utilise une architecture serverless, car vous devez coordonner, déployer et gérer de nombreuses fonctions indépendantes de petite taille. Une option dans Azure consiste à utiliser Azure Logic Apps pour coordonner un ensemble de fonctions Azure. Pour obtenir un exemple de cette approche, consultez Créer une fonction qui s’intègre à Logic Apps.