La conteneurisation permet de regrouper les applications logicielles, avec toutes leurs dépendances, dans des unités isolées et portables appelées conteneurs. Contrairement aux machines virtuelles (VM), qui nécessitent un système d’exploitation complet, les conteneurs partagent le noyau du système d’exploitation hôte tout en assurant l’isolation des applications grâce à des fonctionnalités telles que les espaces de noms Linux et les cgroups.
Chaque conteneur comprend le code de l’application, l’environnement d’exécution, les outils système, les bibliothèques et les paramètres nécessaires à l’exécution, le tout regroupé sous forme d’images de conteneurs, c’est-à-dire de modèles en lecture seule qui servent de schémas directeurs pour la création de conteneurs. Cette approche garantit une performance constante, qu’il s’agisse d’un déploiement sur l’ordinateur portable du développeur, un environnement de test, un centre de données de production ou une infrastructure de cloud hybride.
Si le concept de conteneurisation et d’isolement des processus existe depuis des décennies, l’émergence de Docker en 2013 a changé la donne. Docker a fourni des outils de développement simples, dédiés aux entreprises, et une approche d’empaquetage universelle qui a accéléré l’adoption par le grand public.
Après le succès de Docker, Kubernetes s’est imposé comme principale plateforme d’orchestration de conteneurs. Développé par Google, Kubernetes a été ensuite offert comme projet open source à la Cloud Native Computing Foundation (CNCF) en 2014.
Cette pile technologique forme la base sur laquelle sont construits les outils et les pratiques de gestion des conteneurs. Les moteurs de conteneurs comme Docker sont conçus pour gérer l’exécution. Une plateforme d’orchestration comme Kubernetes gère la complexité opérationnelle liée à la planification et à l’automatisation du déploiement, ainsi qu’à la gestion et à la mise à l’échelle de centaines de milliers d’applications conteneurisées.
La puissante alliance Docker-Kubernetes a favorisé l’adoption généralisée de Docker par les entreprises. Selon une enquête IBM de 2021, 61 % des personnes interrogées avaient intégré des conteneurs dans au moins la moitié de leurs nouvelles applications au cours des deux dernières années. L’enquête a également révélé que 64 % d’entre elles prévoyaient des taux d’adoption similaires pour leurs projets de développement ultérieurs.