E-JAMBON bio photo

E-JAMBON

Ce qui se conçoit bien s'exprime clairement.

Email Twitter Github

Où j’essaie d’expliquer ce que c’est à un débutant.

Exercice de vulgarisation.

[ NdA : J’aurais bien dit “à mon épouse” dans le titre. Mais paraît que c’est sexiste.

C’est pas vrai !

C’est un fait, nuance. Et pour cause : c’est la seule à demander. C’est la seule, parmi mes proches, à faire l’effort de faire semblant de s’intéresser à ce que je fais. Quand elle a le courage, que je répond intelligemment, elle fait même semblant de s’y intéresser.
Ceci étant, je préfère ménager la sensibilité de ceux qui sont sensibles à ce sujet (le sexisme) que celle de ceux qui sont obtus.

Donc j’ai changé le titre.
]

DOCKER ?

Docker, en gros, c’est un émulateur d’ordinateur.
Ca veut dire que c’est un programme qui se comporte comme un ordinateur. Un “ordinateur virtuel”.
Un ordinateur dans l’ordinateur. Quand je branche une clé usb sur mon “vrai” ordinateur, l’ordinateur virtuel se branche dessus. Pareil pour la souris, le clavier et l’écran… J’utilise mon “vrai” écran quand j’utilise l’ordinateur virtuel : c’est plus pratique. Il peut donc lire le contenu de la clé USB, savoir que je tapes sur une touche de mon clavier et afficher des choses sur mon écran. Mais il y a bel et bien un ordinateur dans mon PC.

Et ça sert à quoi, de faire ça ?

C’est une solution à plein de problèmes. Mais pour que tu comprennes pourquoi, faut que je dise deux trois trucs :

  • Docker fonctionne sous Windows, Mac OS-X ou Linux.
  • Quand on crée une machine “docker”, on peut, très facilement, l’enregistrer. Dans l’état dans lequel elle est. Donc si il y a une appli dans la machine, l’appli est sauvegardée aussi.
    En conservant les données, bien entendu. Autrement dit : la maintenance est simple.
  • Quand un développeur a fini de développer, il a encore plein de boulot. En particulier, préparer le déploiement. Et c’est là que les bactéries attaquent : c’est un bordel, mais un bordel. Y’a pas deux machines identiques. On rencontre des difficultés différentes sur chaque machine. Au final, on perd un temps phénoménal.

Avec docker, le développeur crée l’ordinateur virtuel, il installe son appli, fait ses tests, vérifie que ça marche, puis enregistre. Ensuite, il donne le fichier à qui le veut et l’utilisateur n’a plus qu’à lancer ça sous Docker, faire la configuration du logiciel comme il l’entend… Et ça marche. Quelle que soit la machine “réelle” sur laquelle on fait marcher l’ordinateur virtuel.

C’est un gain de temps phénoménal. Je ne saurais le souligner assez.

Un peu comme Java, non ?

Très juste. C’est presque comme Java. C’est très juste comme comparaison. Mais c’est différent…

Quelle différence ?

Le contexte est inclus dedans. Une appli a souvent besoin d’un contexte. Un système d’exploitation, la “machine virtuelle” de java, un serveur web, une base de donnée et plein d’autres choses. Une application, java ou pas, utilise tout ce qui se trouve autour d’elle, et souvent, ce n’est pas du java.

Il faut donc l’installer, le configurer et maintenir l’ensemble. Docker permet de déployer tout ce dont on a besoin (donc tout le contexte) en même temps. C’est pour ça que ça économise autant de temps pour l’utilisateur final, le développeur, le support.

Il suffit d’installer l’ordinateur du développeur et hop, ça marche. Et comme ça tient dans un fichier (je simplifie un peu), tout le monde est content.

Et c’est nouveau ?

Docker oui. Il y a d’autres solutions. Le concept est ancien. C’était un domaine plus où moins réservé aux gros ordinateurs (les “serveurs”). Jusque là, on s’interressait “peu” à généraliser cet usage : les machines des utilisateurs finaux étaient trop légère pour ça. Mais ce n’est plus vrai. Et ça va l’être de moins en moins.

Docker fait des “compromis” interressant, des “racccourcis” : c’est rapide, simple, pratique. Donc on l’adopte assez facilement. C’est une solution qui a le vent en poupe.

Ce n’est pas pour autant “la meilleure solution”. C’est une des solutions existantes, et c’est bien de la connaître, quand on fait un peu de développement ou du technique.

Et je peux le mettre facilement sur mon ordinateur ?

Oui… mais c’est pas encore un produit qui t’es destiné. Pas encore en tout cas. Bientôt, j’en suis sûr. Trop jeune. Ca va venir vite, j’en suis sûr.

Enfin je dis ça… Il peut te pousser une passion pendant la nuit, c’est tout ce qu’il faut pour que ce soit à ta portée. C’est juste que j’en doute.

C’est réservé à ceux qui aiment mettre les mains dans le cambouis alors qu’ils pourraient lire un bon bouquin au coin du feu ou sur une chaise longue au soleil. Grâce à ces cyber-mécanos, ça arrivera bientôt tout cuit sur un plateau d’argent pour les autres.

Et pourquoi tu le fais pas ?

Euh… bin déjà j’apprend à m’en servir, à comprendre comment ça marche. Histoire justement de pouvoir l’expliquer, déjà. Et puis si je vois que c’est faisable et que j’ai une idée de la manière dont je peux faire ça, pourquoi pas…

Mais ça sert à quoi, en pratique ?

Bientôt, ça te servira aussi. En se projetant un chouilla dans le futur du moins.

Les solutions comme Docker offrent des solutions à plusieurs problèmes éthiques.
Tu utilises internet ? N’est-ce pas ?

Quel rapport avec internet ?

Tu utilises des services, sur internet. Tu as un blog, tu prends des notes grâce à une appli web, tu as un agenda en ligne, des photos.. du mail, tu vas sur des réseaux sociaux… Tout ça, c’est hébergé chez des tiers. Tout ton contenu. Toutes tes données sont chez eux. Ils t’hébergent “gratuitement”.

En fait, ils mettent à ta disposition des applications accessibles depuis le Web. Et bien là tu pourras te passer d’eux. L’indépendance, c’est un passage obligé pour la liberté. Même si on l’est jamais complètement, plus on est indépendant, plus on est libre.

Bref, tu sauves le monde en apprenant Docker…

GRRR

Avec Docker, on va pouvoir envisager d’autres modèles que Facebook / Google etc. C’est déjà pas mal.. non ?

Un réseau social décentralisé, c’est à dire sans la société Facebook ou twitter.
Pareil pour twitter, les hébergeurs de mail, les “EverNotes” etc.

Tu vas pouvoir poster :

L'origine du monde

sans craindre que ton compte soit automatiquement clôturé
C’est pas mal d’être libre d’écrire ce qu’on veut. Je vois Docker comme un outil de démocratisation d’internet.

Et…C’est la seule solution qui existe ?

Non, loin de là. Il y en a plein d’autres.
Celle-ci a le vent en poupe. C’est tout.
J’en connais d’autres.

Une machine dans une machine, c’est pas un peu compliqué ?

Si. Mais c’est comme pour java. Tu t’occupes pas de ce problème, tu te concentres sur le tiens : utiliser. Tu es “utilisateur”. Rien ne t’empêche d’apprendre comment ça fonctionne, c’est du “libre”. Libre, justement, ça veut dire que tu peux à tout moment regarder comment ça marche. Tu as ce droit.

Et y’a tout plein de gens qui t’aident en plus.

“Compliquer c’est une mauvaise solution”…

Oui je sais. Je dis toujours ça.
C’est peut être pas une bonne solution.

Mais bon… je suis pas sûr qu’il y en ait de parfaite.
C’est peut-être celle qui semble la plus viable en ce moment. C’est même pas sûr.

Mouais. Bon … quand t’auras fini de sauver le monde, on pourra aller au cinoche ?