fermer
Cloud

Qu’est-ce que Docker ? Un changement révolutionnaire dans le cloud computing

quest ce que docker 1 1

Le monde du cloud computing et des logiciels en entreprise connaît un défilé sans fin de nouvelles technologies, de langages et de plates-formes. Beaucoup d’entre elles tombent dans l’oubli après leur quinze minutes de gloire une fois installé.

Docker, que j’utilise depuis quelques mois, est différent. Comme le souligne Responsable Marketing Services pour Dell France, (dans l’article publié dans la Revue de l’IT « Virtualisation : les conteneurs prennent le large »), à l’origine docker est un système propriétaire qui a commencé comme un projet mené par Solomon Hykes, un français, connaissant des « débuts laborieux dans l’Hexagone, sous le nom de dotCloud, avant de s’exporter outre-Atlantique et d’y trouver le succès » que l’on connaît aujourd’hui.

Docker s’est donc transformé en une véritable machine de guerre depuis que le projet a été libéré en open source durant la première partie de l’année 2013. Sa popularité n’a cessé de croître et a explosé en 2014. Au milieu de l’année 2015, plus de 300 millions de téléchargements de conteneurs avaient eu lieu (selon la page d’accueil de Docker). Le projet a été mis en favoris (« stars) plus de 31 000 fois sur GitHub, et compte à ce jour près de 9 000 forks, et a reçu plus de 1 300 contributions.

Docker

Si technologie de conteneurs existe depuis très longtemps, elle a resurgi dans les deux dernières années en raison de l’augmentation de la virtualisation, la diminution de l’accent mis sur les systèmes d’exploitation sur le cloud, et la stabilité de Linux.

Qu’est-ce que Docker ?

Docker est un système de conteneurs de logiciels open-source. Autrement dit, il permet de manipuler une application dans un conteneur autosuffisant. Les conteneurs aident l’application à s’exécuter pendant qu’elle est déplacée d’un environnement à un autre – comme de l’ordinateur d’un développeur à son déploiement en production – et de disposer de toutes les choses qui sont nécessaires à son exécution à l’intérieur du conteneur lui-même.
Le host, l’exécuteur, le code, le système d’exploitation, les outils, les bibliothèques et les autres composants se retrouvent donc à l’intérieur d’un environnement isolé. Tout est autonome, de sorte que les développeurs n’auront pas à ce soucier de la version de Linux qui est utilisée, chaque fois que l’application est en cours de déploiement. Autrement dit, l’application fonctionnera partout.

Qu'est-ce que Docker ?

Cette pratique est différente de l’utilisation d’une machine virtuelle (VM), car il n’y a aucune préoccupation sur le système d’exploitation qui est utilisé. Docker permet de virtualiser le système d’exploitation lui-même avec l’application et tous les composants associés. Cela permet d’avoir un ensemble très concis :

  • Très portatif et capable de fonctionner partout
  • Léger et hautement évolutif
  • Les coûts sont allégés puisque vous pouvez mettre plusieurs conteneurs sur une seule machine
  • Facile à déployer dans le cloud et sur site

Systèmes d’exploitation partagés

Les hyperviseurs, ou les gestionnaires de machines virtuelles sont capables d’émuler des systèmes réels, mais ils ont aussi beaucoup d’exigences. Les conteneurs ne demandent pas de lourds charges de ressources au système, car ils utilisent des systèmes d’exploitation partagés. Docker raccourcit également le cycle de vie du développement puisque les développeurs peuvent créer des applications avec de nombreux langages de programmation sur une grande variété de piles.

En outre, les machines virtuelles ont des applications, des systèmes d’exploitation, des bibliothèques et des binaires connexes qui peuvent se compter en plusieurs gigaoctets de données. Avec Docker, les conteneurs partagent un noyau Linux, mais tout le reste est embarqué à l’intérieur de chaque conteneur – ce qui les rend beaucoup plus efficace et portatif. Ils se lancent immédiatement, et utilisent plus efficacement la mémoire vive (RAM). Les entrées/sorties du disque et la gestion d’image est également plus efficace. Tous ces facteurs expliquent pourquoi Docker est encore un autre exemple de la popularité croissante des logiciels open source par rapport aux logiciels propriétaires.

En ce qui me concerne, j’utilise des conteneurs Docker afin d’exécuter l’ensemble de mes projets sur ma machine de développement, comme si celle-ci était en production. L’utilisation de Docker en production aide aussi avec le déploiement continu en offrant un moyen de déploiement efficace de divers composants séparés par des systèmes indépendants les uns des autres.

Conteneurs vs. machines virtuelles

Docker est si populaire que certains analystes de l’industrie parlent éventuellement de faire disparaître les machines virtuelles en faveur des technologies de conteneurs tels que Docker et LXC. Cependant, utiliser ou non Docker dépend des besoins spécifiques d’un projet. Docker n’est pas toujours la réponse ultime.

Les conteneurs fonctionnent mieux quand une application spécifique pour gérer une tâche individuelle est nécessaire. Les machines virtuelles sont plus ciblées, et elles peuvent fonctionner sur la plupart des systèmes d’exploitation modernes. Les conteneurs sont la réponse dans certaines situations alors que les machines virtuelles sont la réponse dans d’autres – et, dans certains cas, les deux pourraient être déployés en même temps. Les architectes du cloud doivent comprendre quand et où chaque type de déploiement est le mieux pour leurs organisations.

Docker versus Machine virtuelle

Les conteneurs sont efficaces parce qu’ils partagent les mêmes systèmes d’exploitation. Cependant, certaines entreprises optent pour des hyperviseurs au lieu de conteneurs pour la raison même qu’ils peuvent avoir de nombreux systèmes d’exploitation. Les autres problématiques concernant Docker sont :

  • Les constructions et les déploiements sont lents et imprévisibles
  • Certains partisans de Docker préconisent la mise de données dans des conteneurs, une pratique qui rend difficile la sauvegarde ou le clonage des données
  • Docker n’est pas « developer-friendly »
  • Sa courbe d’apprentissage est élevé pour les novices sous Linux
  • Il dispose d’une interface en ligne de commande qui s’avère imprévisible
  • La sécurité est plus faible que les machines virtuelles

Quand une technologie comme Docker flambe en popularité, il y a une tendance à vouloir l’utiliser dans tous les potentiels cas d’utilisation. En réalité, Docker doit être seulement utilisé quand il est la meilleure solution à un problème spécifique.

La popularité des micro-services

Docker fait partie d’un vaste mouvement dans l’informatique vers l’utilisation de microservices. Pour ceux qui l’ignorent, les microservices sont de petites applications qui fonctionnent en unités autonomes. En limitant le service de chaque composant, il est facile de créer des systèmes modulaires. Les microservices sont conçus autour de produits plutôt que des projets.

Au lieu de considérer le logiciel comme un projet qui sera complété, l’approche par produit augmente la collaboration entre les développeurs et les parties prenantes. En outre, les microservices sont conçus pour échouer – ce qui signifie qu’ils sont créés sans tenir compte de la qualité afin que les systèmes puissent continuer à fonctionner à chaque fois que des composants individuels échouent.

Construit pour durer

Alors que la plate-forme Docker est open source, la société génère des revenus afin d’offrir un support et des services, et a rapidement levé 15 millions dollars de Greylock Partners en janvier 2014. À ce jour, de nombreux investisseurs sont derrière le phénomène Docker.

Docker a rapidement levé 15 millions dollars de Greylock Partners en janvier 2014

Docker est une réelle évolution dans l’informatique moderne qui n’est pas prêt de s’essouffler. Le système de conteneurs arrive à une période où la virtualisation, le cloud computing, le traitement de données deviennent de plus en plus efficaces et plus rapides. Comme le souligne Béatrice Hass, responsable Marketing Services de Dell France, « pour les éditeurs, et principalement les start-ups, Docker offre en outre des gages d’accélération du temps de développement des nouvelles applications ». Elle poursuit en mentionnant : « il s’agit, enfin, d’une nouvelle étape dans la virtualisation de tous les environnements informatiques ».

Si Docker a connu des débuts laborieux dans l’Hexagone, il a aujourd’hui évolué en une solution raisonnable, qui est conçue pour durer dans les années à venir.

Tags : Docker
Yohann Poiron

The author Yohann Poiron

J’ai fondé le BlogNT en 2010. Autodidacte en matière de développement de sites en PHP, j’ai toujours poussé ma curiosité sur les sujets et les actualités du Web. Je suis actuellement engagé en tant qu’architecte interopérabilité.