Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Conseil / Astuce
Ce contenu est un extrait du livre électronique 'Architecture des microservices .NET pour les applications .NET conteneurisées', disponible sur .NET Docs ou en tant que PDF téléchargeable gratuitement, lisible hors ligne.
La mise en conteneur est une approche de développement de logiciels qui consiste à empaqueter une application ou un service, ses dépendances et sa configuration (extraits sous forme de fichiers manifeste de déploiement) sous forme d’image de conteneur. L’application conteneurisée peut être testée en tant qu’unité et déployée en tant qu’instance d’image conteneur sur le système d’exploitation hôte.
Tout comme les conteneurs d’expédition permettent de transporter des marchandises par navire, train ou camion, quelle que soit la cargaison à l’intérieur, les conteneurs de logiciels agissent comme une unité standard de déploiement de logiciels qui peut contenir différents code et dépendances. Le conteneurisation de logiciels de cette façon permet aux développeurs et aux professionnels de l’informatique de les déployer dans des environnements avec peu ou pas de modification.
Les conteneurs isolent également les applications les unes des autres sur un système d’exploitation partagé. Les applications conteneurisées s’exécutent sur un hôte de conteneur qui s’exécute à son tour sur le système d’exploitation (Linux ou Windows). Par conséquent, les conteneurs ont une empreinte beaucoup plus petite que les images de machine virtuelle.
Chaque conteneur peut exécuter une application web entière ou un service, comme illustré dans la figure 2-1. Dans cet exemple, l’hôte Docker est un hôte de conteneur et App1, App2, Svc 1 et Svc 2 sont des applications ou services conteneurisés.
Figure 2-1. plusieurs conteneurs s’exécutant sur un hôte de conteneurs
L’autre avantage de la mise en conteneur est l’extensibilité. Vous pouvez effectuer un scale-out rapidement en créant de nouveaux conteneurs pour les tâches à court terme. Du point de vue de l’application, l’instanciation d’une image (création d’un conteneur) est similaire à l’instanciation d’un processus comme un service ou une application web. Toutefois, lorsque vous exécutez plusieurs instances de la même image sur plusieurs serveurs hôtes, vous souhaitez généralement que chaque conteneur (instance d’image) s’exécute dans un autre serveur hôte ou machine virtuelle dans différents domaines d’erreur.
En bref, les conteneurs offrent les avantages de l’isolation, de la portabilité, de l’agilité, de l’extensibilité et du contrôle dans l’ensemble du flux de travail du cycle de vie des applications. L’avantage le plus important est l’isolation de l’environnement fournie entre Dev et Ops.