La Conteneurisation
La Conteneurisation
La Conteneurisation
1. La Conteneurisation
1.1. Que sont les conteneurs ?
Tout comme dans le domaine des transports, les conteneurs informatiques stockent des
objets pour les transporter. Ils permettent d’expédier des applications et leurs
dépendances sur de multiples systèmes d’exploitation, quels qu’ils soient.
Ils garantissent que leur contenu est identique au départ et à l’arrivée, et qu’il est
sécurisé, grâce à leur mise en isolation.
1.2. À quoi servent-ils ?
Ils servent à minimiser la complexité liée à la configuration et à l’administration
applicatives, à accélérer les cycles de développement et de production applicatifs, et,
grâce à leur flexibilité et à leur portabilité, ils constituent l’une des briques qui
permettent de faire de l’«infrastructure as a service », c’est-à-dire d’automatiser les
infrastructures IT.
1.3. Comment fonctionne la conteneurisation ?
La conteneurisation est une méthode qui permet de virtualiser, dans un conteneur, les
ressources matérielles ‒ systèmes de fichiers, réseau, processeur, mémoire vive, etc. ‒
nécessaires à l’exécution d’une application. Dans cet espace sont aussi stockées toutes
les dépendances des applications : fichiers, bibliothèques, etc. Pour déplacer les
applications virtuelles d’un système d’exploitation à un autre, le conteneur se connecte
à leur noyau (kernel), ce qui permet aux différents composants matériels et logiciels de
communiquer entre eux.
1.4. Quelle est sa valeur ajoutée ?
La conteneurisation propose une manière de virtualiser des ressources de manière
légère, avec une isolation garantie par le système d’exploitation. Ces ressources sont
ainsi plus facilement portables d’un système à un autre. C’est un puissant accélérateur
de développement d’applications.
2. Comparaison entre Conteneur et Machine Virtuelle.
La finalité des deux est quasiment la même : isoler nos applications. Mais le fonctionnement
est totalement différent.
Pour une machine virtuelle, vous créez comme son nom l'indique, une machine virtuelle,
c'est-à-dire, vous lui indiquez la ram à utiliser, le nombre de CPU, et vous créez un disque dur
virtuel pour installer un OS. Votre machine dispose de ses propres ressources, et n'a
aucunement conscience d'être virtualisée.
Pour les conteneurs c'est différent, on n'installe pas d'OS à proprement parler, mais une
image, qui contient les bibliothèques et les binaires nécessaires. Le noyau quant à lui, est
partagé avec le système hôte. Nous pouvons évidemment limiter les ressources des
conteneurs.
Machines virtuelles et Conteneurs ont leurs avantages et bien évidemment leurs
inconvénients. Par exemple lancer ou créer un conteneur est vraiment plus rapide que lancer
une VM. Mais une VM offre une meilleure isolation. Et ils ne sont pas forcément incompatibles,
bien souvent, Docker est simplement utilisé dans une VM pour uniformiser une application
entre les différents environnements (prod, préprod, intégration, etc.). Il arrive même de
trouver dans une VM un seul conteneur.
Le plus gros défaut des conteneurs, c'est le fait que ce n'est pas cross-platform. On lance des
conteneurs Linux sous Linux, des conteneurs BSD sous BSD ou des conteneurs Windows sous
Windows.
(htt2)