Exécuter des conteneurs dans un environnement hybride

Arc
Container Instances
Cosmos DB
Key Vault
Kubernetes Service
Monitor
Liaison privée
Azure Security Center

Cette architecture de référence illustre la manière dont les développeurs peuvent créer, gérer et surveiller les conteneurs déployés dans le cloud public, sur plusieurs clouds et localement.This reference architecture illustrates how developers can create, manage, and monitor deployed containers in the public cloud, across multiple clouds, and on-premises.

Le diagramme illustre une équipe de développeurs qui déploie ses images conteneurs dans une instance Microsoft Azure Container Registry.

Téléchargez un fichier Visio de cette architecture.Download a Visio file of this architecture.

Utilisations courantes de cette architecture :Typical uses for this architecture include:

  • Applications web avec des composants internes et externes déployés sur le cloud public et localement en utilisant des images conteneurs partagées.Web applications with internal and external components that deploy both to the public cloud and on-premises by using shared container images.
  • Cycles de tests de déploiement modernes avec analyse de la qualité, tests, développement ou mise en lots hébergés localement et dans le cloud public.Modern deployment testing cycles with quality analysis, testing, development, or staging that's hosted on-premises and in the public cloud.

ArchitectureArchitecture

  • Microsoft Azure Container Registry (ACR) .Microsoft Azure Container Registry (ACR). ACR est un service qui crée un registre managé.ACR is a service that creates a managed registry. ACR crée, stocke et gère les images conteneurs et peut stocker des modèles Machine Learning en conteneur.ACR builds, stores, and manages container images and can store containerized machine learning models.
  • Azure Kubernetes Service (AKS) .Azure Kubernetes Service (AKS). AKS est un service géré qui offre un cluster Kubernetes managé avec une fonctionnalité de Scale-out élastique.AKS is a managed service that offers a managed Kubernetes cluster with elastic scale-out functionality.
  • Azure Container Instances .Azure Container Instances. Azure Container Instances exécute des conteneurs à la demande dans un environnement Microsoft Azure serverless.Azure Container Instances runs containers on-demand in a serverless Microsoft Azure environment. Azure Container Instances est une méthode stable de gestion des conteneurs qui ne nécessite pas l’installation complète de Kubernetes ou d’un hôte Docker.Azure Container Instances is a low-friction method of running containers that doesn't require a full Docker host or Kubernetes installation.
  • Azure Cosmos DB .Azure Cosmos DB. Azure Cosmos DB est une base de données à plusieurs modèles qui peut fournir des données de manière élastique à grande échelle.Azure Cosmos DB is a multiple model database that can serve data elastically at a massive scale. Azure Cosmos DB a été conçu pour les applications distribuées dans le monde entier dans un modèle à plusieurs écritures.Azure Cosmos DB was designed for applications that are globally distributed in a multi-write model.
  • Azure Key Vault .Azure Key Vault. Azure Key Vault est un service de gestion des informations d’identification soutenu par matériel informatique qui est étroitement intégré aux services d’identité et aux ressources de calcul de Microsoft.Azure Key Vault is a hardware-backed credential management service that has tight integration with Microsoft identity services and compute resources.
  • Azure Policy .Azure Policy. Azure Policy applique les normes et évalue la conformité des ressources ciblées qui sont déployées sur Azure.Azure Policy enforces standards and assesses compliance for targeted resources deployed to Azure.
  • Azure Private Link .Azure Private Link. Azure Private Link crée un point de terminaison privé dans votre réseau virtuel que vous pouvez utiliser pour communiquer avec la plateforme PaaS Azure sans exposer votre service à l’Internet public.Azure Private Link creates a private endpoint in your virtual network that you can use to communicate with Azure platform as a service (PaaS) without exposing your service to the public internet.
  • Azure Monitor.Azure Monitor. Azure Monitor est une suite complète de services de surveillance pour les applications déployées sur Azure et localement.Azure Monitor is an all-encompassing suite of monitoring services for applications that deploy both in Azure and on-premises.
  • Azure Security Center .Azure Security Center. Azure Security Center est un système unifié de gestion de la sécurité et de protection contre les menaces pour les charges de travail localement, sur plusieurs clouds et sur Azure.Azure Security Center is a unified security management and threat protection system for workloads across on-premises, multiple clouds, and Azure.
  • Cluster Kubernetes local .On-premises Kubernetes cluster. Dans cette architecture, un cluster Kubernetes local est utilisé pour exécuter plusieurs conteneurs locaux.In this architecture, a local Kubernetes cluster is used to run multiple containers on-premises.

RecommandationsRecommendations

Azure Container RegistryAzure Container Registry

ACR est un registre de conteneurs d’entreprise qui peut implémenter les meilleures pratiques communes en protégeant les images contre tout accès non autorisé, en répliquant les images sur plusieurs zones géographiques, en empêchant les entrées/sorties inutiles et en optimisant les coûts.ACR is an enterprise container registry that can implement common best practices by protecting images from unauthorized access, replicating images across multiple geographies, preventing unnecessary ingress/egress, and optimizing costs. En outre, ACR prend en charge la géoréplication clé en main dans plusieurs régions Azure, ce qui vous permet de réduire la latence entre ACR, vos hôtes de conteneurs et votre équipe de développement.Additionally, ACR supports turnkey geo-replication across multiple Azure regions, which helps you minimize latency between ACR, your container hosts, and your development team.

ACR comprend une suite de tâches, appelée ACR Tasks, qui peut gérer la création et la maintenance d’images conteneurs informatiques sur divers systèmes d’exploitation.ACR includes a suite of tasks, referred to as ACR Tasks, that can manage cloud-based container image building and maintenance across a variety of operating systems. ACR Tasks peut être déclenchée manuellement, par une modification apportée au contrôle de code source, par une modification apportée à l’image conteneur de base ou selon une planification fixe.ACR Tasks can be triggered manually, by a change to source control, by a change to the base container image, or on a fixed schedule. Voici les scénarios dans lesquels vous pouvez utiliser ACR Tasks :The following are scenarios in which you could use ACR Tasks:

  • Un développeur de l’Internet des objets (IoT) crée des images conteneur pour qu’elles s’exécutent sur des appareils IoT basés sur ARM.An Internet of Things (IoT) developer is building container images to run on ARM-based IoT devices. Le développeur peut utiliser un système d’exploitation Linux ou macOS pour développer le logiciel, mais il doit exécuter la build sur une plateforme ARM.The developer might be using a Linux or macOS operating system to develop the software, but they will need to perform the build on an ARM platform.
  • Une équipe de développement SaaS crée des logiciels sur des ordinateurs Windows qui exécuteront leurs images conteneurs sur des hôtes Linux.A software as a service (SaaS) development team is building software on Windows computers that will run their container images on Linux hosts. L’équipe souhaite que sa build soit exécutée sur un hôte Linux.The team would like its build to be performed on a Linux host.
  • Le chargé de maintenance d’un projet open source crée une image conteneur qui augmente l’image de base d’un système d’exploitation bien connu.An open source project maintainer is building a container image that augments a well-known operating system base image. Le chargé de maintenance souhaitera probablement que son image conteneur soit mise à jour chaque fois que l’image de base est mise à jour.The maintainer will likely want their container image to update every time the base image updates.

Notes

ACR Tasks peut normaliser l’environnement des builds et effectuer une intégration continue de vos images conteneurs.ACR Tasks can standardize the build environment and perform continuous integration of your container images.

Azure Container InstancesAzure Container Instances

Azure Container Instances est un environnement Compute serverless stable pour les applications en conteneur.Azure Container Instances is a low-friction, serverless compute environment for containerized applications. Azure Container Instances est un excellent choix pour le déploiement de conteneurs en raison de ses faibles frais de gestion et de ses temps de démarrage rapides.Azure Container Instances is an excellent choice for container deployment because of its low management overhead and quick startup times. Les images conteneurs stockées dans ACR peuvent être déployées directement sur des groupes de conteneurs Azure Container Instances.Container images that are stored in ACR can deploy directly to Azure Container Instances container groups.

Dans cette référence, les groupes de conteneurs Azure Container Instances sont utilisés comme des nœuds virtuels pour un cluster Azure Kubernetes Service.In this reference, Azure Container Instances container groups are utilized as virtual nodes for an Azure Kubernetes Service cluster. AKS utilise des nœuds virtuels pour inscrire un pod virtuel ayant une capacité illimitée et la possibilité de distribuer des pods à l’aide de groupes de conteneurs Azure Container Instances.AKS uses virtual nodes to register a virtual pod with unlimited capacity and the ability to dispatch pods by using Azure Container Instances container groups. Cela est idéal pour les scénarios où vous souhaitez un approvisionnement très rapide des différents pods et ne voulez payer que le temps d’exécution par seconde.This is ideal for scenarios where you want very fast provisioning of individual pods and only want to pay for the execution time per second.

Considérations relatives à l’extensibilitéScalability considerations

Considérations relatives à la disponibilitéAvailability considerations

  • Les applications modernes incluent généralement un site web, une ou plusieurs API HTTP et une connexion à un magasin de données.Modern applications typically include a website, one or more HTTP APIs, and some connection to a data store. Les applications dans une image conteneur doivent être conçues pour être sans état afin d’obtenir une échelle horizontale et une disponibilité maximales.Applications within a container image should be designed to be stateless for maximum horizontal scale and availability. Toutes les données doivent être stockées dans un service distinct ayant une disponibilité similaire.Any data should be stored in a separate service that has similar availability. Pour obtenir des conseils sur la conception d’une application capable de s’adapter à des milliers de nœuds, reportez-vous à la section Efficacité des performances de Microsoft Azure Well-Architected Framework.For guidance on designing an application that can scale to thousands of nodes, refer to the performance efficiency section of the Azure Well-Architected Framework.
  • AKS dispose d’une ligne de base d’architecture de référence qui définit chacune des catégories de Well-Architected Framework et recommande une implémentation en fonction de la catégorie.AKS has a reference architecture baseline that defines each of the Well-Architected Framework categories and recommends an implementation in line with the category.
  • Pour réduire l’impact des extractions volumineuses d’images conteneurs, déployez ACR dans la région la plus proche de l’équipe de développement et des services de calcul de production.To reduce the impact of large pulls of container images, deploy ACR in a region that's closest to the development team and the production compute services. Envisagez un déploiement ACR géorépliqué pour les équipes distribuées et les conteneurs de production distribués.Consider a geo-replicated ACR deployment for distributed teams and distributed production containers.
  • Azure Cosmos DB est un service de base de données qui prend en charge une distribution mondiale clé en main et permet un basculement automatique dans plusieurs régions.Azure Cosmos DB is a database service that supports turnkey global distribution and supports automatic failover across multiple regions. Azure Cosmos DB a également la capacité de permettre l’écriture dans plusieurs régions et d’ajouter ou de supprimer des régions de façon dynamique.Azure Cosmos DB also has the ability to enable multiple region writes and dynamically add or remove regions.

Considérations relatives à la facilité de gestionManageability considerations

Considérations relatives à DevOpsDevOps considerations

Considérations relatives à la sécuritéSecurity considerations

  • Utilisez Azure Private Link pour assurer la communication avec et entre les services de votre réseau virtuel.Use Azure Private Link to communicate to and across services in your virtual network. Cela acheminera le trafic via des sous-réseaux spécifiques afin d’atteindre directement les différents services Azure et de protéger vos données contre une exposition involontaire à l’Internet public.This will route traffic through specific subnets to reach the individual Azure services directly and protect your data from inadvertent exposure to the public internet.

Considérations relatives au coûtCost considerations

  • Utiliser la calculatrice de prix Azure pour estimer les coûts.Use the Azure pricing calculator to estimate costs.
  • Si votre équipe de développement et vos instances de production se trouvent dans une seule région, envisagez de placer la ressource Container Registry dans la même région.If your development team and production instances are in a single region, consider placing the Container Registry resource in the same region. Cela vous permettra de réduire la latence de l’extraction et de l’envoi de conteneur et d’éviter les coûts supplémentaires associés au niveau de service Premium d’Azure Container Registry.This will allow you to minimize container push and pull latency and avoid the additional costs associated with the Premium Azure Container Registry service tier.
  • La configuration d’ACR pour utiliser un réseau virtuel Azure par le biais d’un point de terminaison de service Azure Private Link nécessite que l’instance ACR soit déployée dans le niveau Premium.Configuring ACR to use an Azure Virtual Network through an Azure Private Link service endpoint requires the ACR instance to be deployed in the Premium tier.
  • AKS propose une gestion gratuite des clusters.AKS offers free cluster management. La facturation est isolée des ressources de calcul, de stockage et de mise en réseau utilisées par AKS pour l’hébergement des nœuds.Billing is isolated to the compute, storage, and networking resources used by AKS to host nodes. Reportez-vous à la tarification de Machines virtuelles Azure ou d’Azure Container Instances pour connaître les détails de tarification spécifiques à chaque service de calcul.Refer to Azure Virtual Machine or Azure Container Instances pricing to review specific pricing details for each compute service.
  • Si vous avez besoin d’un contrat de niveau de service (SLA) de durée de bon fonctionnement, vous pouvez activer la fonctionnalité facultative Contrat SLA de durée de bon fonctionnement d’AKS.If you require a specific uptime service-level agreement (SLA), you can enable the uptime SLA optional feature of AKS.
  • Les ressources Azure Container Instances sont facturées par seconde, en fonction de l’allocation des ressources du processeur virtuel et de la mémoire au groupe de conteneurs.Azure Container Instances resources are billed per second, based on an allocation of virtual CPU and memory resources, to the container group. L’allocation de ressources de calcul inutiles peut augmenter de façon exponentielle les coûts requis pour faire fonctionner cette solution d’architecture.Allocating unnecessary compute resources can exponentially increase the costs required to run this architecture solution. Le contrôle et l’optimisation des coûts sont un processus continu qui doit être mené à intervalles réguliers tout au long de la durée de vie de votre déploiement.Cost monitoring and optimization is a continuous process that should be conducted at regular intervals throughout the lifetime of your deployment. Pour de plus amples informations sur la réduction des coûts d’exploitation d’Azure Container Instances, consultez la section Optimisation des coûts de Microsoft Azure Well-Architected Framework.For further guidance on minimizing Azure Container Instances operational costs, refer to the cost optimization section of the Azure Well-Architected Framework.

Étapes suivantesNext steps