Qu’est-ce que Docker, comment en tirer le meilleur et esquiver les écueils les plus courants ? Dans cette vidéo, Hugo Hervieux, membre de l’équipe infra chez Matters, vous partage son retour d’expérience et ses conseils à la suite de sa mise en place sur nos projets.
“Docker, c’est mentir aux applications”
Docker, c’est quoi ? Un outil qui vous permet d’isoler les applications afin de diminuer les dépendances d'infrastructures. Pour mesurer si son utilisation est pertinente, nous devons nous pencher sur certains concepts clés, liés à son utilisation, tels que les conteneurs, ou encore les volumes, et les layers, qui permettent un “versionning à la Git”.
Dans la pratique, Docker présente un réel avantage pour faciliter le déploiement d’applications en production grâce à son caractère léger, répétable et immuable. Certaines bonnes pratiques sont à respecter : l’unicité du processus par conteneur ou la maximisation de l’utilisation des variables d’environnement, par exemple.
Ces dernières apportent, en plus d’une modularité des conteneurs, un contact avec des environnements externes. Les dépendances des conteneurs avec des services externes doivent être gérées avec la plus grande précaution. Nous vous conseillons de veiller à la qualité de vos propres images tout comme à celles d'acteurs tiers qui peuvent être sujettes à des failles de sécurité.
Pour ce faire, vous devez comprendre les informations contenues dans leur DockerFile et construire des images légères. Ainsi, un déploiement en urgence ou encore le cas d’une réplication d’un conteneur dans un contexte de montée en charge (scalabilité) en seront facilités.
L’essentiel à retenir : Si Docker présente de nombreux avantages sur le plan du déploiement, il n’est pas pour autant la solution miracle par excellence. Pensez donc à vous interroger sur la pertinence de sa mise en place vis-à-vis de votre situation : “don’t be a Docker fanboy”.
Quelques ressources pour aller plus loin :