Skip to main content

Le projet Docker fête ses 10 ans ! Retour sur une décennie de conteneurs

Écrit par
secure containerized applications

17 mars 2023

0 minutes de lecture

Le 15 mars 2023 marquait le 10e anniversaire du célèbre lightning talk de Solomon Hyke à PyCon, où il a fait découvrir Docker au monde entier.

Revenons sur tout ce qui a changé et découvrons les témoignages de personnes qui ont ouvert la voie vers le monde conteneurisé dans lequel nous vivons aujourd’hui. J’ai ouvert mon petit carnet d’adresses de contacts spécialisés dans les conteneurs et le cloud natif, et je leur ai demandé de raconter leurs débuts avec Docker et de partager quelques anecdotes du terrain, depuis notre première rencontre avec Moby et Molly, il y a dix ans.

Bonjour wowrld !

Solomon Hykes présente Docker, avec la célèbre faute d’orthographe « Hello wowrld » affichée à l’écran derrière lui.
Solomon Hykes s’exprimant à PyCon 2013

En 2013, le monde découvrait Docker. Pour beaucoup de développeurs, c’était notre premier contact avec les concepts de cgroups, d’espaces de noms et d’autres technologies Linux utilisées pour « isoler » les processus. Comme les équipes de Docker aiment le dire, elles ont « démocratisé » la technologie des conteneurs, en la rendant facile à utiliser sans diplôme en administration de systèmes Linux.

Époustouflant et magique

Certains adjectifs revenaient souvent lorsque je demandais aux gens de me parler de leur première expérience avec Docker : magique, époustouflant, ou encore « révélation ».

Nirmal Mehta sur scène à la DockerCon 2015
Nirmal Mehta prenant la parole à DockerCon 2015

Imaginez la scène ! Portland, dans l’Oregon, en 2013, à la conférence OpenSource d’O’Reilly. Quelques mois après la naissance du projet open source Docker, celui-ci gagnait déjà en popularité au sein de différentes communautés informatiques : open source, cloud, DevOps, etc. C’était le dernier jour de la conférence et j’assistais à une session matinale, un vendredi, consacrée à cette nouveauté appelée Docker ! Solomon Hykes était l’intervenant. Il est entré directement dans le vif du sujet en expliquant les concepts de couches de conteneurs, leurs capacités et les technologies sous-jacentes. Il a conclu sa présentation par une démo où, si ma mémoire est bonne, il a lancé 5, 10, 15, 20 conteneurs apache/httpd en quelques secondes ! Même devant le petit public encore ensommeillé de ce matin-là — et moi tout particulièrement — c’était époustouflant… J’ai tout de suite eu le sentiment d’assister au début d’un changement de paradigme, et je voulais tout savoir !

Je sais que Docker n’était pas le premier à assembler ces technologies sous-jacentes pour créer des processus ou des conteneurs isolés, mais l’expérience utilisateur présentée ce jour-là — et qui perdure encore aujourd’hui — était magique.

- Nirmal Mehta, Principal Specialist SA chez AWS

Capture d’écran d’un tweet de Brandon Mitchell emmitouflé dans des vêtements Docker. Légende : « Tandis que tout le monde distribue des t-shirts, Docker me prépare à une énorme tempête hivernale à Barcelone. J’ai raté quelque chose dans les prévisions ? »
Brandon Mitchell bien emmitouflé dans des vêtements aux couleurs de Docker

Je me souviens de ma première utilisation de Docker, après avoir suivi toutes les étapes nécessaires pour configurer une VM afin d’exécuter nginx avec des outils comme Ansible et Chef. Je passais une heure à créer un playbook, à le configurer pour la VM qui venait d’être lancée, puis j’attendais que l’installation s’exécute. Ensuite, j’ai lancé la commande Docker pour démarrer nginx et, moins de 30 secondes plus tard, le processus était lancé dans cet environnement isolé magique. C’est ce qui m’a donné envie de découvrir ce qui venait de se passer et comment Docker fonctionnait.

- Brandon Mitchell, Solutions Architect chez BoxBoat, une entreprise IBM

Découvrir Docker, c’était comme découvrir des pouvoirs magiques. J’avais déjà vécu cela lorsque la virtualisation avait remplacé les serveurs : je pouvais regrouper des VM sur une infrastructure physique et en tirer le meilleur parti. Docker, c’était comme descendre d’un niveau dans un autre rêve : je pouvais désormais regrouper des applications dans des VM et exploiter encore mieux le matériel.

- Adrian Goins, ancien Developer Advocate chez Rancher/SUSE

Andy Clemenko, ingénieur terrain chez Rancher Government Solutions
Andy Clemenko, pionnier de Docker et ingénieur de terrain

Début 2015, mon employeur m’a demandé de devenir un expert « Docker ». Je connaissais très peu de choses sur le sujet, à part quelques articles du site Orange, alors j’ai commencé à expérimenter. Comme tout le monde, j’ai commencé par le classique exemple « hello world » de Docker avec Nginx. Pour moi, la révélation a été immédiate. En tant qu’administrateur système de longue date, j’ai vu dans l’isolation des processus une avancée majeure. À partir de ce jour, j’ai réorienté toute ma carrière vers les conteneurs. J’ai eu la chance d’aider le gouvernement américain à adopter les conteneurs dans plusieurs agences. Un an et demi plus tard, j’ai eu la chance de poursuivre l’aventure Docker en rejoignant l’entreprise.

- Andy Clemenko, Field Engineer chez  Rancher Government Solutions

Scénario catastrophe

David Flanagan, qui a adopté Docker dès sa première année, a rapidement compris comment cette technologie pouvait révolutionner les déploiements dans son entreprise.

David Flanagan et son tout jeune fils qui rient ensemble
David Flanagan, fondateur de Rawkode Academy et papa sympa

J’ai découvert Docker grâce à la démo de Solomon à PyCon en 2013. À l’époque, je travaillais comme directeur du développement pour une entreprise britannique de radio et de magazines, et j’essayais de l’aider à faire entrer son activité dans le XXIe siècle… la transformation numérique, quoi ! Son principal problème était la montée en charge. Nous avions même un scénario « catastrophe » : « Que faire si Lemmy de Motörhead meurt ? » Notre charge était extrêmement prévisible… jusqu’à ce qu’elle ne le soit plus. Impossible de prévoir l’actualité : il faut pouvoir monter en charge en temps réel, aussi vite que possible.

Nous utilisions Vagrant et des VM depuis quelque temps, mais les mettre rapidement à l’échelle était pénible. Il fallait surdimensionner l’infrastructure au départ, puis la réduire rapidement après l’« événement » afin de diminuer les coûts. Alors, quand nous avons découvert Docker, ça a été une révélation. Sauf que… à l’époque, Docker n’avait pas encore de commande « docker build »… Elle est toutefois arrivée peu après, avec le slogan toujours utilisé aujourd’hui : « Build. Ship. Run ». Docker n’a pas seulement résolu le problème de l’exécution : la création d’images de conteneurs est devenue incroyablement simple, et leur distribution aussi. Kubernetes et le cloud natif doivent énormément à l’équipe dotCloud des débuts, quel que soit le moteur d’exécution de conteneurs que nous utilisons aujourd’hui.

- David Flanagan, fondateur de Rawkode Academy

Stabiliser la grille

J’utilise moi aussi Docker depuis ses tout débuts et, si vous me permettez de le dire, voici comment cela s’est passé pour moi.

Eric Smalling et ses amis à une soirée de KubeCon 2022
Capture d’écran du tweet de James Spurin : James Spurin, Eric Smalling, Bret Fisher, Chad Crowell, Kunal Kushwaha et Ramesh Kumar à KubeCon 2022

J’ai commencé à expérimenter Docker fin 2013, en l’intégrant à nos pipelines CI pour exécuter des centaines de tests fonctionnels de bout en bout à chaque commit d’une importante application web de commerce en ligne. Aux heures de pointe, nous lancions souvent plus de 2 000 instances de navigateur via des grilles Selenium2 basées sur des VM. Les résultats de tests instables, dus aux problèmes de stabilité de la grille, étaient notre pire cauchemar. Nous lancions et arrêtions constamment des instances dans le cloud et avons essayé différentes stratégies au fil des ans pour accélérer les démarrages, assurer la stabilité et réduire les coûts. Nous avons même testé les instances spot et nous sommes livrés à des guerres d’enchères dans plusieurs régions ! 

Nous avions déjà commencé à utiliser Docker pour exécuter l’application web et les contrôleurs de la suite de tests, mais j’ai eu une révélation en comprenant que je pouvais créer une image contenant le navigateur et xvfb, puis la démarrer instantanément. Nous avons ainsi pu faire fonctionner des grilles Selenium stables avec autant de navigateurs qu’un seul nœud pouvait en accueillir ! (Nos problèmes de stabilité venaient généralement de l’incapacité des nœuds à faire tourner de nombreux navigateurs, ce qui nous obligeait à utiliser beaucoup de petits nœuds avec peu de navigateurs sur chacun.) La réussite a été telle que nous avons pu abandonner en grande partie les instances cloud et utiliser seulement quelques VM locales pour ces grilles, économisant ainsi des milliers de dollars par semaine.

- Eric Smalling, Sr. Developer Advocate chez Snyk

Convaincre le plus grand nombre

Pour les personnes qui découvrent le développement logiciel en entreprise, les avantages des conteneurs et de l’écosystème qui s’est développé autour d’eux peuvent sembler aller de soi. Pourtant, pendant les cinq ou six premières années, l’avenir de Docker était loin d’être assuré.

Les résultats parlent d’eux-mêmes

Le changement est souvent difficile à accepter, mais les avantages concrets de Docker ont vite convaincu :

J’avais l’habitude d’introduire de nouvelles technologies à la mode. Alors, j’entendais souvent des soupirs exaspérés : « Dave a encore trouvé un nouveau jouet ». La plupart de mon équipe utilisait un Mac, alors vous imaginez : ils ne m’appréciaient pas vraiment !

Mais chez nous, Docker était principalement utilisé côté serveur. boot2docker n’existait pas encore, alors l’équipe a continué à utiliser Vagrant pour le développement. Nous avons fini par intégrer Docker à cet environnement, lorsque l’intérêt de la chose est devenu évident. L’équipe a constaté à quel point cela simplifiait notre pipeline de déploiement, et s’est laissée convaincre.

Difficile de contester quand nos déploiements sont passés de 40 minutes à environ 3 !

- David Flanagan

Sevi Karakula derrière un ordinateur portable, le bras passé autour de celui-ci, pointant un autocollant de Container Solutions sur lequel on peut lire « Shift happens »
Sevi Karakula fait bouger les choses !

Lorsque j’ai découvert Docker, j’étais développeur logiciel depuis assez longtemps pour savoir à quel point il peut être difficile d’intégrer un nouveau membre à l’équipe et de lui fournir tous les outils nécessaires. De même, chaque fois que nous essayions d’introduire de nouveaux frameworks et langages dans l’environnement de développement — pour alléger un peu les choses —, cela tournait souvent au casse-tête, car la plupart des développeurs réagissaient en levant les yeux au ciel.

Docker nous a grandement simplifié la vie : il suffisait de présenter cet outil magique à l’équipe pour qu’elle en voie immédiatement les avantages, sans avoir à gérer toute la complexité de l’installation et de la configuration. Ce fut un grand moment d’émancipation pour les développeurs : plus besoin d’installer chaque outil sur une machine étroitement surveillée, de relancer des demandes d’autorisation ou de se soucier des licences. Dès lors qu’une image existait, tout était possible.

- Sevi Karakulak, Engineering Lead chez Container Solutions

Pas « prêt pour l’entreprise »

L’expression « prêt pour l’entreprise » est subjective et peut avoir un sens différent pour chaque entreprise avec laquelle vous travaillez. Matt Bentley raconte comment, à ses débuts comme Solutions Engineer chez Docker, il a dû répondre à la question de savoir si Docker était « attrayant » — ou, en l’occurrence, ne l’était pas.

Matt Betley debout derrière le comptoir d’un stand à DockerCon 2019, les mains posées sur le comptoir et portant un badge « Docker Team »
Matt Bentley à DockerCon 2019

… le client adorait Docker en tant que technologie, [et] il appréciait le produit Docker Trusted Registry. Mais tant que nous n’aurions pas proposé autre chose qu’une interface reposant uniquement sur une API et la ligne de commande, sa direction ne considérerait jamais le produit comme prêt pour l’entreprise.

Le client devait présenter les produits en interne. Si je lui montrais ce que j’avais fait avec un pipeline CI/CD construit dans Jenkins — récupérer le code, le compiler et le tester dans un conteneur, le déployer, puis promouvoir l’image —, les équipes ne comprendraient pas. Pour elles, une solution prête pour l’entreprise devait offrir de belles interfaces utilisateur.

- Matt Bentley, Manager, Solutions Engineering chez VMware

Une hésitation plus fréquente concernait l’immaturité relative du projet. Même si les technologies sous-jacentes existaient depuis de nombreuses années, beaucoup hésitaient à miser sur un projet open source issu d’une start-up, avec ses mascottes de dessin animé et sa tortue de compagnie qui effectuait des déploiements.

Eric Smalling et Rachel Leeken à la soirée AWS à KubeCon EU 2022
Rachel Leeken et Eric Smalling à KubeCon EU 2022

J’ai commencé à découvrir Docker en 2015 et, au vu de son potentiel, j’ai proposé de l’étudier pour moderniser notre environnement plutôt que d’utiliser la solution ancienne et coûteuse d’un fournisseur. Le client n’a pas voulu l’adopter : il nous a dit qu’il n’était pas sûr de la technologie des conteneurs ni de sa pérennité pendant les cinq années du contrat.

- Rachel LeeKin, Containers Specialist SA chez AWS

Se tirer une balle dans le pied

Parfois, le plus difficile n’était pas de convaincre une équipe d’adopter les conteneurs, mais de lui apprendre à bien les utiliser.

Adrian Goins, casque sur la tête, se tient à côté d’un paramoteur quadricoptère orange et noir, entouré de divers équipements de caméra
Adrian Goins et l’Iron Condor, son quad paramoteur


Au début, il était difficile de convaincre mes clients de s’y mettre… Ceux qui comprenaient l’idée ne voyaient pas toujours les avantages ni comment tirer parti d’un conteneur. Je me souviens d’un client qui se connectait à ses conteneurs pour y recompiler son application ou ses dépendances, puis validait le conteneur comme s’il s’agissait d’un dépôt de code. Leurs conteneurs de production étaient énormes et probablement plus fragiles que leur infrastructure d’origine, sans conteneurs.

- Adrian Goins

L’intérêt grandit

Au fil des années, de plus en plus de personnes ont commencé à voir le potentiel des conteneurs, notamment à mesure que les orchestrateurs ont mûri — même s’ils ont apporté leurs propres défis. Adrian Mouat (@adrianmouat | @adrianmouat@hachyderm.io), auteur et autre Docker Captain de la première heure, se souvient des premières conférences DockerCon et de l’effervescence qui régnait alors que de plus en plus de personnes commençaient à s’intéresser au sujet et que des entreprises proposaient des solutions pour répondre à leurs besoins.

Selfie de Betty Junod, Adrian Mouat, Eric Smalling et Matt Jarvis, avec des gratte-ciel en arrière-plan. Photo prise lors de KubeCon Amérique du Nord 2022, à Détroit, dans le Michigan.
Adrian Mouat avec Betty Junod, Eric Smalling et Matt Jarvis à KubeCon NA 2022

Je me souviens surtout qu’en 2014, les intervenants — moi compris — demandaient : « Qui utilise Docker ? » Une forêt de mains se levait. « Qui utilise Docker en production ? » Presque toutes les mains retombaient.

Cela dit, le nombre de personnes qui utilisaient Docker en production avant même sa version 1.0 (octobre 2014) et sa déclaration d’aptitude à la production était stupéfiant.

Nous utilisions des métaphores maritimes et parlions de la façon dont cela réglait le problème du « ça marche sur ma machine » — malheureusement, k8s est arrivé et a recréé le même problème.

Quand je travaillais chez Container Solutions, nous avons contribué à organiser le premier Docker Con EU au NEMO Science Center. L’enthousiasme était incroyable ; tout le monde savait assister aux débuts de quelque chose d’important. CoreOS était présent (avec le lancement de Rocket !), Alexis Richardson faisait la promotion du réseau Weave, Luke Marsden dirigeait ClusterHQ et le gestionnaire de données Flocker, et Timo Derstappen faisait des choses remarquables avec Giant Swarm. Les entreprises étaient partout, essayant simplement de comprendre ce qui se passait.

- Adrian Mouat, Product Manager chez Chainguard

Scène de la keynote de DockerCon 18 Europe, avec Jenny Burcio et Mano Marks remettant à Bret Fisher le prix « Top of the Captains Hat ». Bret porte une casquette blanche de capitaine de bateau.
Bret Fisher remporte le prix « Tip of the Captains Hat » à DockerCon 18 Europe

J’ai assisté à la conférence de Solomon à PyCon 2013 et j’ai essayé Docker en 2014 pour améliorer nos tests Node.js, mais je n’ai tout simplement pas compris. Je n’arrêtais pas d’essayer de faire tenir un serveur entier dans une image de conteneur (sans succès), et le réseau relevait pour moi de la sorcellerie. C’était un tel amas de nouvelles notions et d’automatisations magiques que j’ai abandonné, puis je suis revenu six mois plus tard. Cette fois, j’ai compris — et ça m’a frappé de plein fouet. Le trio 1-2-3 : créer des images, les stocker dans des registres et lancer des conteneurs à partir de celles-ci, m’a époustouflé. Je ne suis jamais revenu en arrière.

- Bret Fisher, expert DevOps et créateur de Docker Mastery

Les orchestrateurs

Si l’annonce de Docker à PyCon 2013 a été l’étincelle qui a allumé le feu, l’arrivée des plateformes d’orchestration de conteneurs a été le vent qui a embrasé la forêt. Mesosphere, Rancher, Swarm, Nomad et Kubernetes ont été les « applications phares » qui ont véritablement fait décoller les conteneurs. On a beaucoup écrit sur les avantages et les inconvénients de chaque plateforme, mais on ne saurait trop insister sur leur rôle dans la généralisation des conteneurs.

Kubernetes est aujourd’hui la plateforme dominante, mais Swarm compte toujours une communauté très fidèle, et Nomad conserve lui aussi quelques poches de popularité. Mesos est antérieur à Docker, et je suis sûr qu’il a encore un nombre considérable d’utilisateurs. Pour certains, Kubernetes semblait trop complexe, mais, comme le montre sa part de marché, la plupart ont fini par l’adopter.

À l’arrivée de Kubernetes, je l’ai détesté. C’était une couche d’abstraction supplémentaire qui n’apportait pas grand-chose… jusqu’au jour où ce fut le cas. Alors, je l’ai adoré : je pouvais prendre ces serveurs, avec leurs VM et leurs conteneurs, et en faire un petit centre de données. Le fait qu’un processus veille sur tout ça 24 heures sur 24, 7 jours sur 7, me permettait de faire autre chose.

- Adrian Goins

Même si Kubernetes est désormais la norme de fait pour déployer des conteneurs, il est intéressant de voir l’évolution de ce domaine et le nombre d’abstractions qui se créent autour.

Quand il est devenu évident que les orchestrateurs seraient essentiels à l’adoption des conteneurs à grande échelle, je pensais qu’il y aurait de la place pour plusieurs orchestrateurs majeurs. Chacun avait ses points forts et ses cas d’usage idéaux. Ce que j’aimais avec Swarm, c’est que je pouvais prendre une personne qui maîtrisait les simples commandes docker run ou savait créer un fichier Docker Compose facile à comprendre, et déployer un service Swarm en quelques minutes. La simplicité de la CLI docker et d’outils comme Docker Compose était remarquable : si quelqu’un savait lancer des conteneurs sur un hôte avec l’un ou l’autre, il lui était facile de passer à l’orchestration. Aujourd’hui, le secteur s’efforce de masquer Kubernetes aux développeurs, car il détournait trop leur attention du développement pour la reporter sur l’orchestration. Le temps que les développeurs consacrent à l’orchestration est autant de temps en moins pour apporter de la valeur métier avec les applications qu’ils développent.

- Matt Bentley

Des carrières et des vies transformées

Une très grande peluche bleue de Moby la baleine (environ 1,5 mètre de long) posée sur un bureau vide, avec une bannière « Whalecome » au-dessus d’un tableau d’affichage vide en arrière-plan
Moby, la baleine, dans les anciens bureaux de Docker à SFO

Le point commun entre toutes les personnes que j’ai contactées pour cet article, c’est la façon dont le projet Docker et la communauté qui s’est développée autour ont changé la carrière et, en fait, les moyens de subsistance de tant de personnes.

Je savais que c’était la prochaine évolution de l’infrastructure. J’en étais obsédé et j’ai réorienté toute ma carrière vers les conteneurs.

- Bret Fisher

À partir de ce jour, j’ai entièrement réorienté ma carrière vers les conteneurs… Aujourd’hui encore, je m’emploie à informer et à guider le gouvernement américain dans son parcours vers les conteneurs. C’est incroyable de voir une technologie aussi transformatrice durer depuis 10 ans.

- Andy Clemenko

Plus j’en apprenais, plus les possibilités offertes par la conteneurisation me passionnaient. J’ai fini par enseigner Docker, puis j’ai décidé de réorienter ma carrière vers les conteneurs, puis Kubernetes. Avec le recul, je peux affirmer sans hésiter que Docker a changé ma vie.

- Sevi Karakulak

Snyk aime l’open source

Nous saluons les dix années de travail transformateur du projet Docker, comme en témoignent les témoignages éloquents cités ici, ainsi que les millions de développeurs qui créent, livrent et exécutent chaque jour des applications dans des conteneurs partout dans le monde.

Snyk a été fondée en 2015 avec pour objectif de permettre aux développeurs d’écrire du code et d’utiliser des logiciels open source en toute sécurité — y compris dans les conteneurs où ils les exécutent. Convaincus du pouvoir et de l’importance du modèle de développement open source, nous proposons gratuitement nos outils d’analyse aux développeurs individuels depuis le premier jour.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.


Contributeurs

Merci à toutes les personnes qui ont contribué à cet article !

Nirmal Mehta

Principal Specialist Solutions Architect chez AWS ; Docker Captain depuis 2016.
LinkedIn
@normalfaults
hachyderm.io/@nirmal

Brandon Mitchell

Solutions Architect chez BoxBoat, une entreprise IBM ; Docker Captain depuis 2018 ; mainteneur de la spécification d’image OCI.
LinkedIn
@sudo_bmitch
@bmitch@fosstodon.org

Adrian Goins

Ancien Developer Advocate chez Rancher/SUSE ; créateur de contenu et aviateur ; défenseur de longue date de Rancher/SUSE.
LinkedIn
@creator_aviator

David Flanagan

Fondateur de Rawkode Academy ; créateur de la conférence KubeHuddle.
LinkedIn
@rawkode

Andy Clemenko

Field Engineer chez Rancher Government Solutions ; ancien Docker SA et SE.
LinkedIn
@clemenko
@clemenko@hachyderm.io

Rachel Leekin

Containers Specialist Solutions Architect chez AWS.
LinkedIn
@Rachel_LeeKin

Matt Bentley

Manager, Solutions Engineering chez VMware.
LinkedIn
@matthewbentley
@mbentley@hachyderm.io

Adrian Mouat

Product Manager chez Chainguard ; Docker Captain depuis 2016 ; auteur de Using Docker (O'Reilly Media, 2016).
LinkedIn
@adrianmouat
@adrianmouat@hachyderm.io

Sevi Karakulak

Engineering Lead chez Container Solutions.
LinkedIn
@sevikarakulak

Lire la suite

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

feature insights context
Blog

La prévention est-elle essentiellement un problème résolu ?

La prévention dans le code généré par les agents est résolue sur le plan architectural, mais le défi reste de choisir des contrôles qui protègent la sécurité sans ralentir le développement.

Live Stream

Les agents de remédiation démystifiés : pourquoi corriger vaut mieux que détecter

Découvrez comment l’agent de remédiation de Snyk utilise les renseignements de sécurité, l’analyse de la cassabilité et la validation pour transformer les vulnérabilités en pull requests prêtes à être fusionnées.