Cet exemple d’architecture illustre une approche de bout en bout pour un fabricant OEM (Original Equipment Manufacturer) et comprend une architecture de référence et plusieurs bibliothèques Open source de prise en charge qui peuvent être réutilisées. Microsoft a remanié le logiciel de contrôle de la flotte pour qu’il soit hautement disponible, géo-redondant et indépendant du fournisseur et s’exécute dans un contexte de cloud hybride.
Architecture
Géo-redondance avec basculement sans interruption de l’activité pour une disponibilité de 99,9% et la récupération d’urgence
Téléchargez un fichier Visio de cette architecture.
Workflow
- Une instance du back-end, constituée des composants suivants, déployée dans deux régions Azure : Azure IoT Hub, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager et Geo DB. IoT Hub se connecte à l’ensemble des applications créées à l’aide d’une architecture de microservices qui peut être déployée sur Azure App service à l’aide de la fonctionnalité d’application web d’Azure App service, Web App pour conteneursou Kubernetes.
- Un système de choix de leader détermine le back end contrôlant les AGV sur l’atelier à un moment donné. En cas d’échec de la back end en frais, l’élection du leader transfère immédiatement le contrôle au back end de l’autre région.
- Grâce à cette architecture de basculement géo-redondant et sans temps d’arrêt, le logiciel de contrôle AGV qui s’exécute dans Azure atteint 99,9% de la disponibilité, à condition que la connexion Internet et les sous-systèmes externes, tels que SAP, ne soient pas limités.
Kubernetes et RabbitMQ pour les déploiements agnostiques du centre de développement
Téléchargez un fichier Visio de cette architecture.
Dans les scénarios où la connexion Internet entre une usine de production et Azure est un facteur limitatif, notre logiciel de contrôle AGV peut également être déployé sur des nœuds de calcul locaux. En utilisant Kubernetes et RabbitMQ en tant que technologies indépendantes de la plateforme, la couche d’application décrite dans la section précédente est déployée sur un appareil Azure IoT Edge.
Implémentation de la spécification VDA 5050 pour la communication agnostique AGV-fournisseur
Téléchargez un fichier Visio de cette architecture.
Grâce à la conformité avec la spécification du connecteur de véhicule VDA 5050, notre logiciel de contrôle AGV peut communiquer avec tous les types de AGVs de fournisseurs différents qui sont également conformes à VDA 5050.
Workflow
Dans cette architecture, vous pouvez voir une vue d’ensemble des différents services et composants utilisés pour exécuter la solution de contrôle de la flotte AGV principale dans Azure :
- Lorsque les développeurs valident du nouveau code, la fonctionnalité GitHub Actions analyse automatiquement le code pour trouver rapidement d’éventuelles vulnérabilités et erreurs de codage. Il peut également être utilisé pour déployer automatiquement des applications et des composants d’infrastructure.
- Un registre de conteneurs stocke les images de conteneur utilisées pour les différents services de la back end de contrôle de la flotte AGV.
- Les services principaux sont déployés sur Web App pour conteneurs.
- Ces services principaux peuvent se connecter à des systèmes externes à l’aide du protocole VDA 5050. ils peuvent également se connecter à une plateforme de diffusion en continu gérée, telle que Kafka, et peuvent stocker des informations sur les véhicules dans une base de données Azure SQL.
- Azure Key Vault stocke les mots de passe, les clés et les certificats.
- Application Insights implémente la journalisation et la surveillance des applications qui s’exécutent en tant que services principaux.
- Les identités gérées se connectent aux différents services et ressources dans Azure, ce qui élimine la nécessité pour les développeurs de gérer les informations d’identification. Ils fournissent une identité aux applications à utiliser lors de la connexion à des ressources prenant en charge l'authentification Microsoft Entra.
Composants
Azure App Service est un service PaaS (platform as a service) de création et d’hébergement d’applications dans des machines virtuelles managées. Il gère l’infrastructure de calcul sous-jacente sur laquelle vos applications sont exécutées. App Service permet de surveiller les quotas d’utilisation des ressources et les métriques d’application, les informations de journalisation des diagnostics et les alertes basées sur les métriques.
Le Réseau virtuel Azure est le composant fondamental de votre réseau privé dans Azure. Ce service permet à de nombreux types de ressources Azure, telles que les machines virtuelles Azure, de communiquer de manière sécurisée entre elles, avec Internet et avec des réseaux locaux.
IoT Hub est un service managé PaaS, hébergé dans le cloud, qui agit en tant que concentrateur de messages central pour la communication bidirectionnelle entre une application IoT et les appareils qu’il gère.
Azure Container Apps est un service conteneur sans serveurs complètement managé, qui permet de créer et déployer des conteneurs à grande échelle.
Azure Container Registry est un service de registre Docker managé privé, qui est basé sur le registre open source Docker 2.0. Vous pouvez utiliser des registres de conteneurs Azure avec vos pipelines de développement et de déploiement existants, ou vous pouvez utiliser Azure Container Registry Tasks pour créer des images conteneur dans Azure. Créez des builds à la demande ou des builds entièrement automatisés avec des déclencheurs, tels que des validations du code source et des mises à jour d’images de base.
Microsoft Entra ID est le service cloud de gestion des identités et des accès qui authentifie les utilisateurs, les services et les applications.
Stockage Azure offre une solution de stockage cloud durable, hautement disponible et extrêmement évolutive. Ce service propose des capacités de stockage d'objets, de fichiers, de disques, de files d'attente et de tables.
RabbitMQ est un logiciel de service Broker Open source qui a implémenté à l’origine le Advance Message Queueing Protocol et a depuis été étendu avec une architecture de plug-in pour prendre en charge le protocole de messagerie orientée texte, le transport MQ telemétrie et d’autres protocoles.
Les machines virtuelles Azure fournissent des ressources informatiques évolutives à la demande qui vous donnent la flexibilité de la virtualisation sans devoir acheter ni maintenir le matériel physique.
Azure SQL Database est un moteur de base de données PaaS complètement managé qui prend en charge la plupart des fonctions de gestion de base de données telles que la mise à niveau, la mise à jour corrective, les sauvegardes et la surveillance sans intervention de l’utilisateur.
Azure Key Vault est un service cloud permettant de stocker les secrets et d’y accéder en toute sécurité. Un secret est un élément pour lequel vous voulez contrôler étroitement l’accès. Il peut s’agir de clés d’API, de mots de passe, de certificats ou de clés de chiffrement.
Application Insights, fonctionnalité d’Azure Monitor, est un service extensible de gestion des performances des applications (APM) destiné aux développeurs et aux professionnels de DevOps. Vous pouvez l’utiliser pour superviser les applications en temps réel. Ce service détecte automatiquement les anomalies de performances et intègre de puissants outils analytiques conçus pour vous aider à diagnostiquer les problèmes et à comprendre l’usage que les utilisateurs font de votre application.
Autres solutions
Cette architecture utilise Kubernetes et la fonctionnalité Web Apps de Azure App Service pour l’exécution des applications pour cette solution. Vous pouvez également exécuter ces microservices dans Azure Container Instances, qui offre le moyen le plus rapide et le plus simple d’exécuter un conteneur dans Azure, sans avoir à adopter un service de niveau supérieur, tel qu’Azure Kubernetes service (AKS).
L’exemple local utilise des machines virtuelles Azure, qui peuvent également être remplacées par des technologies de conteneur.
Vous pouvez également exécuter ces services dans Azure Kubernetes service (AKS). Cela offre Kubernetes serverless pour l’exécution de microservices, une expérience intégrée d’intégration continue et de déploiement continu (CI/CD), ainsi qu’une sécurité et une gouvernance à l’échelle de l’entreprise.
Envisagez également d’utiliser Azure Monitor en association avec Application Insights pour analyser et optimiser les performances de vos applications, conteneurs, bases de données et autres ressources, ainsi que pour surveiller et diagnostiquer les problèmes de mise en réseau.
Cette architecture utilise RabbitMQ comme répartiteur de messages. Microsoft Azure prend également en charge les solutions de messagerie natives, telles que le stockage de file d’attente Azure ou Azure Service Bus. Pour obtenir une comparaison, consultez Files d’attente Stockage Azure et files d’attente Service Bus : comparaison et différences.
Les applications et services dans Azure sont déployés à l’aide de scripts Terraform. Envisagez d’utiliser des modèles de Azure Resource Manager Azure natifs (modèles ARM) ou Bicep pour créer des scripts.
Détails du scénario
La fabrication automobile s’appuie sur des véhicules guidés automatisés (AGVs) pour fournir des parties aux lignes d’assemblage. Les AGV sont une partie essentielle de la fabrication juste-à-temps et de la logistique automatisée des usines. Les ateliers AGV sont généralement confrontés à trois défis :
- Disponibilité. Toute interruption de service interrompt la production.
- Connectivité. Les ateliers d’achat ne disposent souvent pas d’une connexion fiable au cloud public.
- Verrouillage du fournisseur. Les solutions AGV traditionnelles s’appuient sur des protocoles de communication propriétaires.
Cet exemple d’architecture est divisé en trois zones opérationnelles :
- Une architecture de référence de contrôle de flotte basée sur Azure avec un basculement de géo-redondance, un basculement sans temps d’arrêt, une disponibilité de 99,9% et une récupération d’urgence efficace.
- Un déploiement local et indépendant du centre de développement basé sur Kubernetes et RabbitMQ.
- Communication AGV indépendante du fournisseur reposant sur la spécification VDA 5050 la plus courante.
Cas d’usage potentiels
Cette solution est idéale pour les secteurs de l’industrie, de l’automobile et du transport. Elle s’applique aux scénarios suivants :
- Le client utilise actuellement des AGV dans son processus de fabrication.
- Le client connaît une faible disponibilité avec les AGV, ce qui a un impact sur son retour sur investissement (ROI).
- L’atelier a une connexion incohérente avec le cloud public.
- Le client est membre de la plateforme de fabrication ouverte (OMP).
- Le client est membre du groupe de travail de système de transport autonome (OMP ATS) OMP.
Problèmes principaux
La production à faible coût des biens repose sur l’automatisation du processus de fabrication et la livraison juste-à-temps des parties aux lignes d’assemblage. En transportant automatiquement des parties à des lignes d’assemblage, les véhicules guidés automatisés contribuent à la fabrication juste-à-temps et à l’automatisation de la logistique de l’atelier. Dans une usine de production en masse de voitures particulières, par exemple, une voiture de passager est déployée toutes les minutes. Par conséquent, chaque minute d’interruption d’une ligne d’assemblage dans une usine de production entraîne une perte financière, dans l’ordre des dizaines de milliers de dollars des États-Unis. Les fabricants d’ordinateurs OEM requièrent un haut niveau de fiabilité et de disponibilité pour leurs systèmes automatisés, et ils sont confrontés à un certain nombre de défis :
- Problème de disponibilité. Le logiciel de contrôle de flotte AGV existant ne respecte pas les exigences de disponibilité de 99,9 %.
- Problème de connectivité. Certaines usines de production ne disposent pas d’une connexion Internet suffisamment stable avec la bande passante requise pour activer la communication entre le logiciel de contrôle de la flotte AGV hébergé dans le cloud public Azure et les AGV de l’atelier. Par conséquent, l’hébergement du logiciel de contrôle de la flotte AGV dans un centre de production qui se trouve en dehors de l’intranet d’une telle usine de production n’était pas une option.
- Problème de verrouillage du fournisseur AGV. Il n’était pas possible d’échanger les AGV existants avec les nouveaux fournisseurs d’un autre fournisseur, car le logiciel de contrôle de la flotte AGV dépend du protocole de communication propriétaire des AGV existants.
Une architecture qui prend en charge la géo-redondance avec un basculement sans temps d’arrêt pour une disponibilité de 99,9% et la récupération d’urgence peut résoudre ces problèmes.
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.
Disponibilité et extensibilité
Les applications et les services qui composent la solution de contrôle de la flotte AGV sont déployés sur deux régions Azure à l’aide de zones de disponibilité, qui sont des emplacements physiques uniques au sein des régions Azure, qui permettent de protéger les machines virtuelles, les applications et les données des défaillances du centre de données. Azure App Service et AKS peuvent également être déployés dans des zones de disponibilité. IoT Hub fournit une haute disponibilité intra-région en implémentant les redondances à presque tous les niveaux du service.
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 plus d’informations, consultez Vue d’ensemble du pilier Sécurité.
Utilisez Microsoft Entra ID pour le contrôle des identités et des accès et utilisez Azure Key Vault pour gérer les clés et les secrets.
DevOps
Pour déployer automatiquement les microservices Kubernetes ou Azure App Service, il est préférable d’utiliser des processus CI/CD. Envisagez d’utiliser une solution comme Azure DevOps ou GitHub Actions.
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 Vue d’ensemble du pilier d’optimisation des coûts.
En général, utilisez la calculatrice de prix Azure pour estimer les coûts et utilisez la calculatrice AKS pour estimer les coûts d’exécution d’AKS dans Azure. Pour en savoir plus sur les autres considérations, consultez la section « Optimisation des coûts » dans Microsoft Azure Well-Architected Framework.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Gürcan Güleşir | Responsable de programme senior
Étapes suivantes
Documentation du produit :
- Application Insights
- Microsoft Entra ID
- Azure App Service
- Azure Container Instances
- Azure Container Registry
- Azure IoT Hub
- Azure Kubernetes Service
- Azure Key Vault
- Azure Monitor
- Azure SQL Database
- Machines virtuelles Azure
- Réseau virtuel Azure
- GitHub
Parcours d’apprentissage Microsoft :
- Introduction à Azure IoT
- Présentation de Kubernetes dans Azure
- Administrer des conteneurs dans Azure
- Créer des microservices avec .NET et ASP.NET Core
- Gérer les identités et la gouvernance pour les administrateurs Azure
Ressources associées
Articles de vue d’ensemble du Centre des architectures Azure :
- Style d’architecture de microservices
- Choisir une option de calcul Azure pour les microservices
- Application web redondante interzone de base
- Application web multirégion hautement disponible
- Architecture avancée de microservices AKS (Azure Kubernetes Service)
- CI/CD pour les applications AKS avec Azure Pipelines
Architectures connexes :