Docker docker docker

Cette semaine a clairement été sous le signe de docker et de la containerisation de multiples services hébergés.

Docker ? Mais à quoi ca sert ?

Je te parle de containerisation/dockerisation depuis quelques temps mais je me rends bien compte que tu ne sais peut être pas forcément ni ce que c’est ni à quoi ca sert. Alors je vais appliquer un conseil que me donne souvent mon père, explique comme tu devrai m’expliquer. Voila, c’est parti.

Imagine que tu achètes un ordinateur. Dessus il n’y a rien d’installé à part ton système d’exploitation (Linux, Windows, MacOs). Ok il marche mais tu peux pas faire grand chose avant d’avoir installé tes logiciels préférés.

Au hasard on va dire Word, Excel et ton navigateur préféré (Firefox ou Chrome). Voila donc que tu installes ces 3 logiciels, un par un, patiemment en répondant aux questions (suivant, suivant, ok, suivant, j’ai compris, suivant…). Tout marche tu es content.

Le temps passe et tu en as marre de ton navigateur. Tu en choisi donc un autre que tu installes à nouveau et tu désinstalles l’ancien (ou tu l’oublies). Tu récupères tes favoris un par un.

Le temps passe encore (il arrête jamais). Cette fois-ci c’est la nouvelle suite Microsoft office qu’il faut installer. Tu réinstalles donc par dessus. Tu notes que ton ordi commence à ramer et qu’il faudrait que tu le réinitialise (que tu le remette à 0) mais tu n’as pas envie de tout réinstaller. C’est trop long trop fastidieux. Bref tu laisses pourrir ton ordi.

Ca c’est la méthode classique ou tu peux te représenter ton ordi comme un bateau et les logiciels comme autant de marchandises balancées en vrac, d’abord dans la soute, puis sur les ponts, puis ca déborde de partout et paf l’iceberg.

Docker présente plusieurs avantages pour moi :

  • Le premier c’est que l’on peut “programmer” l’installation d’un service voire plusieurs.
  • Le second c’est qu’on est sûr de ce qu’on livre
  • Le troisième c’est que l’on ne pourrit plus son ordi avec des restes de logiciels mal désinstallés.

Automatiser l’installation d’un/de service(s)

Imagine que tu puisses scripter l’installation de ton nouvel ordinateur en cliquant sur un bouton. Imagine. tu démarre ton nouvel ordi tout neuf avec son os tout neuf et tout ce que tu as affaire c’est installer ce fameux logiciel (Docker) dessus, puis de lancer un script d’installation de tous tes programmes.

Ce script installerait la dernière suite office, ton navigateur, ta solution “cloud” préférée (dropbox, onedrive, gdrive), etc. Et quand tu reviens, sans n’avoir eu à cliquer sur aucun bouton suivant, tout est fonctionnel, identique à l’ancien, et il n’attend plus que tes clics.

Et bien ce logiciel existe et c’est le seul que tu aurai à installer, c’est docker. Bien sûr, il est surtout destiné à des développeurs (des devops (mi développeur mi sysadmin mi facilitateur mi mollette)) et bien sûr je doute que Microsoft rende disponible (et open source) la suite office.

Qualité de livraison

Mais voila, d’un coup de cuillère à pot, on peut “scripter” l’installation de tous un lot de services et les installer sur un tout nouveau ordi/serveur en étant sûr que cela va marcher. Et ce dernier point est carrément non négligeable.

Une fois “dockerisé” on est sûr que le service, puisqu’il va être livré avec toutes ses dépendances et ses prérequis fonctionnera aussi bien sur le nouvel ordi qu’il fonctionnait sur l’ancien. Le container (docker) comprend tout ce dont il a besoin. Que ce soit le système d’exploitation, ou les outils nécessaires, tout est embarqué dans le container. On déplace le container sur un nouvel ordi, une fois démarré, il va rouler aussi bien que sur l’ancien. Fini les problème de feuilles de calculs pas compatible. Vous avez configuré votre container avec le dernier excel ? Une fois en place sur votre nouvel ordi il arrivera à lire vos fichiers excels.

C’est une tranquillité d’esprit incroyable si si j’te jure !

Un container c’est propre

C’est tellement propre qu’on mangerait dedans. Tu n’utilises plus la suite office ? Tu veux la dégager de ton ordi ? Pas de soucis. Tu arrêtes le container, tu supprimes “l’image” docker et voila, c’est comme si la suite office n’avait jamais été installé. Un regret ? Tu relance ton script d’installation et quelques minutes plus tard tu pleures de joie en ouvrant Excel, rassuré de le retrouver.

Tout çà pour dire que lorsque tu travaille dans un container, l’espace est confiné, limité et ce qui est programmé pour rester dans le container ne peut pas en sortir. Fini les dlls qui trainent, fini les répertoires qui restent un peu partout sur ton PC, fini la base de registre qui n’en fini plus de grossir. Si je fais beaucoup de métaphores sur Windows c’est juste pour la compréhension, je ne l’utilises que sur Linux.

Pour reprendre la métaphore du bateau, celui-ci peut embarquer des containers/docker bien proprement, bien rangés et ton batordi ne s’en porte que mieux (et toi aussi).

Bilan de la semaine

Cela fait quelques mois que je travaille avec Docker. Mon PC de boulot n’a que très peu de logiciels installés sur la machine hôte. Les services sur lesquels j’y travaille sont tous dans des containers bien rangés et c’est un confort dans le boulot de tous les jours.

Tu as besoin de plusieurs versions de php, tu crées autant de docker que de versions voulues.

Tu veux savoir si ton applicatif fonctionne avec la dernière mise à jour de php, paf nouveau docker et tu peux vérifier sans avoir à installer la nouvelle ni remettre l’ancienne. Les deux tournent dans des containers distincts.

J’adore ces côtés là de Magic. La dernière migration de serveur ayant été fastidieuse je sais que Docker va m’enlever ce tractopelle du pied. Du coup je me suis appliqué à dockerisé tous les services que je gère sur mes serveurs.

Il y a plusieurs blogs, plusieurs sites statiques liés à podmytube, 3 autres projets laravel liés à podmytube, 1 dernier pour reverse et c’est tous ces services que je me suis employé à dockeriser cette semaine. Le fait est qu’une fois que c’est commencé, faire cohabiter des services sur la machine hôte et d’autres sur docker rend les choses plus compliquées que si elles sont toutes du même côté.

J’ai perdu beaucoup de temps à essayer de les faire cohabiter jusqu’à ce que je me rend compte que c’était surtout une perte de temps. Conclusion, lundi prochain, ce blog sera dans un container 🙂

Published by

Fred

Totally fluent in frenglish, what a gift !

Leave a Reply

Your email address will not be published. Required fields are marked *