Docker : une technologie Cloud par containers

0
4764
Docker containers cover

La notion des containers par Docker

Docker permet de multiplier les environnements en containers (développement, pré-production et production) sur votre machine, sans limiter les performances de votre ordinateur. Les ressources sont partagées avec la machine hôte. Chaque environnement peut être configuré simplement grâce à son Dockerfile, présent à sa racine.

Sa fonction est de créer des environnements appelés containers, de manière à isoler des applications. Cette technologie permet d’exécuter des tâches dans ces environnements isolés.

Les enjeux de la technologie Docker

Basé sur la technologie déjà existante des containers, Docker a su développer sa solution avec un Framework capable de présenter des caractéristiques viables et très intéressantes pour le monde de l’IT et ses acteurs.

Docker est, de par sa nature, comparé avec la technologie de la virtualisation qui est, aujourd’hui, très mature et énormément utilisée par les fournisseurs de Cloud. Certes comparables mais ces technologies ne se présentent pas de la même manière. Une machine virtuelle (intégrée avec d’autres VM dans une machine) isole tout un système comme une vraie machine « physique », avec son propre OS et ainsi dispose de ses propres ressources. Alors que Docker va partager les ressources du système hôte entre les différents containers.

Fonctionnement de cette technologie

Docker créé un environnement, un container et isole les composants de ce container avec les ressources de la machine hôte. Docker démontre des avantages sur sa rapidité d’exécution lors de manipulations des applications et de leurs migrations entre différents environnements. En effet les containers Docker sont légers ce qui permet des déploiements plus rapide que la virtualisation. La disparition de l’OS intermédiaire des VM fait bénéficier d’une mobilisation des applications plus efficiente.

Adapté pour des environnements de développement, Docker est effectivement une solution très flexible dans l’utilisation des applications. Sans se soucier des versions ni de l’allocation des ressources un développeur peut jongler avec aisance entre ses différents outils de développement.

Pas assez mature pour rivaliser face à la virtualisation dans un environnement de production. Sans une vraie compatibilité avec Windows, Docker n’est certainement pas à privilégier. L’avenir et surtout les professionnels du numériques nous le dirons.

Digitools cherchera quelques récits d’expériences de professionnels pour réfuter ou affirmer les bénéfices et inconvénients de cette solution.

Les containers Docker au niveau technique

  • Docker se base sur le kernel Linux et la fonctionnalité des containers (LXC)
  • Nécessite la technologie Cgroups pour gérer les ressources (CPU, RAM…)

Nativement dépendante de Linux (repose sur le kernel Linux), Docker peut être utilisé sur Windows ou MacOs, si hébergé sur une VM (Boot2docker par exemple), cette solution est appréciée par les développeurs qui souhaitent simuler la performance de leurs développements sur un environnement de production.

Toutefois le partenariat Docker Inc et Microsoft permet d’envisager le développement de containers Windows avec le framework Docker.