Basiquement, qu’est-ce que Docker ?

logo dockerIl s’agit d’un outil très intéressant, permettant de gérer une ou plusieurs applications, avec leurs dépendances, le tout dans un conteneur virtuel (container, en anglais).
Autrement dit, imaginons que vous souhaitez réaliser une recette de cuisine, il vous faut des ingrédients principaux, des condiments secondaires mais néanmoins nécessaires, et le tout sera contenu dans votre sac de course. Vous pourriez avoir un sac de course par recette, comme on aurait un conteneur par application avec Docker.
L’idée ici est donc d’avoir des applications isolées les unes des autres, pouvant être utilisées indépendamment. Pour ce faire, on fera appel à un ou plusieurs conteneurs, en utilisant l’API de haut niveau qui permet de faire fonctionner l’ensemble. Grâce à ce processus on dispose d’une meilleure gestion des ressources consommées, tant sur le plan matériel (CPU, RAM, …) que sur le plan énergétique, car un serveur consomme d’autant plus d’électricité qu’il a d’applications à exécuter. 
 

Comment fonctionne l’application Docker elle-même ?

Aujourd’hui, l’application, basée sur UNIX, fonctionne sur les différentes distributions Linux (Ubuntu, Debian, RedHat, CentOS, etc), et sera très prochainement disponible sur Windows (prévu pour 2015).
À la différence des machines virtuelles qui simulent des systèmes d’exploitation, tandis qu’elles sont installées sur des serveurs disposants déjà d’un OS, Docker s’appuie directement sur ce dernier pour fonctionner.
Lorsque l’on déploie une machine virtuelle d’un serveur à un autre, il s’agit d’une opération un peu lourde se comptant en giga-octets. Si vous déployez un conteneur virtuel avec Docker, il ne s’agit que de dizaines de méga-octets seulement. On passe d’une action de plusieurs minutes à une action de quelques secondes !
 

Points forts et points faibles

Commençons avec les points faibles de Docker !

On ne peut pas déployer un conteneur prévu pour Linux sur un environnement Windows et vice-versa, ce qui peut être contraignant.
Une problématique de gestion des ressources entre les applications se pose. Jusqu’à peu il n’y avait pas la possibilité de limiter la consommation de ressources, et de ce fait une application pouvait en écraser une autre. La nouveauté « ulimit » permet de le faire, affectant une limite pour l’ensemble des conteneurs d’une machine, ce qui est tout de même rassurant. Plus encore, la technologie LXC (Linux Container), sur laquelle Docker s’appuie pour gérer correctement ce point crucial, s’améliore et offre une meilleure gestion des performances.

Passons aux points forts !

Comme chaque application peut être isolée, on pourrait imaginer un serveur avec Docker ne disposant que d’un conteneur, celui-ci ne disposant que d’une application, voir même une sous-application, et ce même conteneur se trouverait en parallèle sur plusieurs autres serveurs afin de répartir la charge de travail. La finesse avec laquelle on peut gérer un parc informatique entier est importante. On peut accélérer le traitement des tâches car chaque serveur peut avoir une configuration optimale correspondant à la tâche qu’il doit traiter.
En cas de problème il est possible de relancer immédiatement l’application concernée. La résilience est donc très largement accrue, et lorsqu’on souhaite offrir un service de qualité, il n’y a rien de mieux que d’assurer la constance de celui-ci à 100% ou presque.
Lors d’une attaque, seul un conteneur tombera, mais les autres ne seront pas affectés.
 

Conclusion : Docker indispensable aux principes Devops

Ce gestionnaire de conteneurs accroissant la vitesse de façon générale, consommant peu d’espace de stockage, permettant de gérer finement l’exécution des tâches, offrant une résilience excellente, ainsi que de la sécurité, ne saurait qu’être grandement conseillé !
Publié par Adimeo
CEO Adimeo
Retrouvez moi sur :

Un conseil, un projet, un devis ?
Nous repondons a toutes vos questions !

N'hésitez pas à nous contacter pour plus d'informations

Nous contacter

Sur les mêmes sujets