Docker et ses enjeux en production

Docker et ses enjeux en production

150 150 Aliou Ba

Si vous vous posez la question: pourquoi Docker est-il le sujet le plus courant dans le monde informatique actuel? C’est tout simplement parce que toutes les entités dans les grandes entreprises en tirent avantage.

Avant d’en détailler les raisons, nous allons dans un premier temps expliquer ce qu’est Docker et ce qui différencie les Containers des machines virtuelles.

Les Containers Docker sont basés sur de la virtualisation de l’OS. Ce sont des environnements isolés et indépendants de l’OS où on peut exécuter une ou de nombreuses applications avec toutes les librairies et les dépendances nécessaires.

A l’opposé, les machines virtuelles sont basées sur la virtualisation matérielle. Une machine virtuelle plus communément appelée VM est la simulation d’un ordinateur complet en récupérant toutes les ressources telles que CPU etRAM grâce à l’hyperviseur.

Voyons maintenant quels sont les avantages de l’utilisation de Docker au sein de vos infrastructures?

Avantages de Docker?

●      Isolation, légèreté et portabilité:

Le premier cas d’usage de Docker est sans doute sa capacité à isoler une application et ses dépendances dans un container sans contrainte de compatibilité avec les librairies des autres containers sur la même machine. Ce qui explique cette facilité à héberger plusieurs applications sur la même machine.

Pour vous donner un exemple, les géants de l’Internet s’appuient sur les technologies de conteneurisation pour répondre aux besoins de leurs clients. C’est le cas de Google qui utilise que des containers et en démarre au moins 2 milliards par semaine (source ici). Ce qui veut dire que chaque seconde, Google lance plus de 3 000 containers et peut être plus de 10 000 containers depuis que vous avez commencé à lire cet article. Cependant la gestion de plusieurs milliers de containers nécessite forcément un orchestrateur (Docker Swarm, Kubernetes ou Mesos) pour une gestion plus facile. Nous parlerons des orchestrateurs dans un autre article.

La légèreté et la portabilité s’expliquent par le fait que les containers Docker ne sont pas dépendants de l’OS. Ils peuvent être démarrés et stoppés en quelques millisecondes et peuvent désormais s’exécuter sur toutes les plateformes (Linux, Windows, Mac, VMWare, OpenStack, AWS, AZURE, Bluemix …).

●      Consolidation de Ressources

Avec Docker, il n’est pas nécessaire d’exécuter une application par VM. Docker nous permet d’exécuter le maximum d’applications que notre infrastructure peut supporter. D’où l’avantage d’une consommation moindre en ressources. Par exemple, si nous avons 8 applications hébergées sur 8 machines virtuelles, avec Docker nous pourrions utiliser de 2 à 3 fois moins de machines virtuelles.

L’écosystème DevOps est simplifié

La phase d’intégration a tendance à être une étape très douloureuse dans le cycle de développement. Les équipes de développement misent sur la rapidité à livrer de nouvelles applications alors que les administrateurs de l’IT (OPS) veulent conserver la stabilité de leur infrastructure qui en général est très sensible au changement. C’est la raison pour laquelle la mise en production représente une phase de stresset peut prendre plus de temps que prévu car chaque équipe (Dev et Ops) désigne l’autre comme étant responsable.

Pour répondre à ce défi culturel et organisationnel, l’écosystème Devops met en place des outils qui permettent aux développeurs de travailler facilement avec la production.  La technologie Docker est très orientée sur ce concept de DevOps car elle fournit un moyen simple et efficace de transporter les applications conteneurisées allant de l’environnement de développement jusqu’à la production.

●      Réduction de coût:

Docker permet aux entreprises d’optimiser l’utilisation de leur infrastructure, de standardiser les environnements et de diminuer les coûts de maintenance et de licence. Comme la techno Docker est désormais compatible avec tous les environnements (Linux, Windows, Mac, VMWare, OpenStack, AWS, AZURE …), les entreprises gagnent en flexibilité et ne sont pas dépendantes des solutions de fournisseurs.

93% des entreprises qui ont utilisé la technologie Docker affirment avoir fait une réduction de coût de 30% en moyenne.

Ayant travaillé sur plusieurs projets d’étude et de mise en place de Docker, je peux dire le déploiement de quelque dizaines d’applications stateless peut être géré facilement. Cependant lorsqu’on veut mettre en production des applications critiques, les 4 points suivants méritent d’être rigoureusement étudiés: le stockage pour les applications stateful, le réseau pour l’exposition des services, la sécurité et l’orchestration pour gérer facilement plusieurs centaines d’applications conteneurisées. Je vous invite à vous abonner afin de pouvoir lire les prochains articles qui vont porter respectivement sur le stockage, le réseau, la sécurité et l’orchestration.

 

Aliou BA

DevOps & Cloud Architect chez Gekko

Laisser une réponse