La gestion des conteneurs est le processus organisé de création, de déploiement, de mise à l'échelle et de gestion des conteneurs à l'aide d'un logiciel de gestion de conteneurs, tel que Kubernetes ou Docker Swarm.
Les conteneurs permettent aux développeurs de créer des applications indépendantes intégrées à un système d'exploitation pouvant s'exécuter dans n'importe quel environnement. Ils raccourcissent le temps de test et permettent aux opérations informatiques de déployer rapidement des applications dans un environnement de production opérationnel. La gestion des conteneurs fournit aux utilisateurs l'interface, les contrôles et le mécanisme pour créer, ajouter, déployer, remplacer, équilibrer la charge et augmenter ou réduire efficacement les conteneurs d'applications.
Un conteneur est un petit environnement d'exécution isolé qui contient tout ce dont une application a besoin pour fonctionner, comme des fichiers, des bibliothèques, des appels et des connexions au noyau du système d'exploitation. L'environnement de développement d'une application peut être très différent de l'environnement de production dans lequel elle est censée s'exécuter, et ces différences provoquent des erreurs et un comportement imprévisible dans les applications. Les conteneurs encapsulent le code et toutes les dépendances afin qu'ils s'exécutent de manière prévisible et fiable dans n'importe quel environnement informatique. Un conteneur est isolé même d'un autre conteneur à moins qu'il n'ait un code spécifique à connecter.
La caractéristique modulaire d'un conteneur permet aux développeurs d'écrire rapidement du nouveau code ou de corriger le code existant sans avoir à reconstruire l'ensemble de l'application. Les opérations informatiques peuvent déployer la mise à jour avec un temps d'arrêt minimal. La petite taille, généralement de l'ordre de dizaines de mégaoctets, peut parfois nécessiter un grand nombre de conteneurs pour fournir la fonctionnalité complète d'une application complexe et ses nombreuses fonctionnalités. Par exemple, Google gère des milliards de conteneurs qui alimentent ses services Web. Superviser et contrôler tous ces conteneurs déployés dans des systèmes distribués complexes de manière organisée et efficace nécessite une gestion des conteneurs.
Sans système de gestion de conteneurs, les utilisateurs doivent créer manuellement et individuellement des conteneurs pour leurs applications, en déployer de nouveaux, remplacer les anciennes versions, suivre leur état et augmenter ou réduire les applications conteneurisées en fonction des ressources informatiques disponibles. La gestion des conteneurs automatise bon nombre de ces processus. Il simplifie la reproduction, le déploiement et la planification d'un grand nombre de conteneurs. Une gestion de conteneurs plus spécialisée peut fournir une orchestration de conteneurs. Il offre aux utilisateurs des contrôles d'automatisation supplémentaires pour configurer les composants nécessaires et déployer des clusters de conteneurs en fonction de leurs besoins dans divers environnements.
Les systèmes de gestion des conteneurs permettent aux utilisateurs de surveiller la santé des conteneurs en production, de remplacer ceux qui fonctionnent mal et de redémarrer ceux qui sont bloqués. Ils fournissent également un mécanisme pour gérer les composants de mise en réseau et de sécurité des conteneurs. Les systèmes sont devenus un outil essentiel, en particulier pour les organisations utilisant DevOps. Ils accélèrent le cycle de vie d'une application du développement à la production tout en réduisant les coûts opérationnels. Les systèmes de gestion de conteneurs sont disponibles sous forme de logiciels commerciaux open source et propriétaires.
Certains systèmes de gestion de conteneurs sont:
- Kubernetes (les principaux services cloud comme Amazon, Azure et Google proposent des versions Kubernetes pour leurs environnements)
- Docker Swarm
- IBM RedHat OpenShift
- Propriétaire de ranch
- Fonderie Cloud
- Conteneurs intégrés VMware vSphere