Par Joseph-André Guaragna | 21 janvier 2019

Conteneurs : faut-il déployer en production ?

L’adoption de la conteneurisation est désormais un enjeu prioritaire pour la majorité des entreprises. Parmi celles qui l’ont déjà adoptée, 47% prévoient un déploiement de conteneurs en environnements de production, et 12% l’ont déjà fait (source Diamanti).

1. Qu’est-ce que la conteneurisation et pourquoi devient-elle aussi populaire ?

Le concept initial de conteneurisation a vu le jour en 1979, lors du développement d’Unix V7, avec l’introduction du « chroot system » (source Aqua). Son objectif principal est la portabilité : « construire une fois, déployer partout ».
La conteneurisation permet en effet d’isoler une application dans une sorte de prison, si l’on fait référence aux « Jails » de BSD. Il s’agit d’un système de ressources uniquement visible par le processus qui ne nécessite pas d’installer un nouvel OS puisqu’il utilise le noyau du système hôte qui gère les ressources.
Les conteneurs s’exécutent donc en natif sur leur OS, qu’ils partagent entre eux. Les applications ou services restent donc plus légers (quelques Mo en moyenne contre plusieurs Go pour les VM), et permettent une exécution beaucoup plus rapide.

La création de Docker en 2013 a popularisé le concept car il rend la conteneurisation beaucoup plus facile à utiliser et offre un écosystème complet de gestion de conteneur.
– Docker s’intègre en effet parfaitement au concept DevOps, notamment grâce au versioning : les parties développement et production s’effectuent dans le même conteneur. Donc si l’application fonctionne côté Dev, elle fonctionnera également côté Ops. Contrairement à une VM ou un applicatif traditionnel, il n’y aura aucun effet de bord dû à l’installation ou à du spécifique de configuration imposé par la production.
– Le coût en ressources explique également la popularité de la conteneurisation. A puissance égale, une machine capable de faire tourner 50 VM sera capable d’intégrer 1 000 conteneurs.
– La rapidité de démarrage d’un conteneur est également intéressante, puisqu’il n’embarque pas d’OS : seulement quelques secondes, contre plus d’une minute pour une VM.
– Enfin, l’apparition d’orchestrateurs tels que Mesos DC/OS ou Kubernetes, qui permettent d’automatiser le déploiement, la montée en charge et la gestion des applications conteneurisées. Très réactif et offrant beaucoup d’élasticité, cet ordonnanceur peut gérer les montées en charge dues à des néce