samedi, 13 avril 2024

Comment Docker s’est cassé en deux

Docker n’a pas inventé les conteneurs (la méthode d’empaquetage du code informatique en unités compactes pouvant être facilement transférées d’un ordinateur portable à un serveur à un autre), mais il les a pris en compte en créant un ensemble commun d’outils open source et d’images réutilisables ce qui a soudainement permis à tous les développeurs de créer leur logiciel une seule fois et de l’exécuter n’importe où.

La facilité avec laquelle Docker a permis aux développeurs de « conteneuriser » leur code et de le déplacer d’un système à l’autre l’a rapidement établi comme une norme de l’industrie, bouleversant la méthode dominante de déploiement d’applications sur des machines virtuelles (VM) et établissant Docker comme l’une des technologies d’entreprise les plus rapidement adoptées d’une génération.

Aujourd’hui, Docker est toujours en vie, mais il ne représente qu’une fraction de l’entreprise qu’il aurait pu devenir, n’ayant jamais réussi à transformer cette innovation technologique en un modèle économique durable, menant finalement à la vente de son activité d’entreprise à Mirantis en novembre 2019. InfoWorld s’est entretenu avec plus d’une douzaine d’anciens et actuels employés de Docker, contributeurs open source, clients et analystes de l’industrie pour entendre l’histoire de la façon dont Docker s’est brisé en morceaux.

Docker est né

Fondée sous le nom de DotCloud en 2008 par Solomon Hykes à Paris, la société qui deviendra Docker a été initialement conçue comme une plateforme en tant que service (PaaS) permettant aux développeurs de créer et de livrer facilement leurs applications.

Hykes a rapidement été rejoint par son ami et collègue programmeur Sébastien Pahl, avant de déménager ensemble dans la Silicon Valley pour suivez le prestigieux programme Y Combinator à l’été 2010. Ayant déjà été rejetés une fois, Hykes et Pahl ont réappliqué, le père de Pahl leur a remis l’argent pour les billets d’avion pour San Francisco quelques semaines avant leur entretien. Hélas, le couple a de nouveau été rejeté, jusqu’à ce que James Lindenbaum, ancien élève de YC, fondateur d’une société concurrente appelée Heroku, se porte garant d’eux.

Docker tel que nous le connaissons a été destiné pour la première fois par Hykes à PyCon en mars 2013, où il a expliqué que les développeurs n’arrêtaient pas de demander l’accès à la technologie sous-jacente alimentant la plate-forme DotCloud. « Nous avons toujours pensé que ce serait cool de pouvoir dire oui, voici notre article de bas niveau, vous pouvez maintenant créer des conteneurs Linux avec nous et allez faire ce que vous voulez, allez construire votre plate-forme, c’est donc ce que nous faisons », a-t-il déclaré lors de cette conférence.

« Cela semble ringard, mais Solomon et moi parlions de pré-lancement et nous pouvions voir tous les porte-conteneurs entrer dans le port d’Oakland et nous parlions de la valeur du conteneur sur le monde du transport maritime », Ben Golub , PDG de Docker entre 2013 et 2017, a déclaré à InfoWorld. « Le fait qu’il soit plus facile d’expédier une voiture d’un bout à l’autre du monde que de transporter une application d’un serveur à un autre, cela semblait être un problème mûr pour être résolu. »

Le projet open source Docker a rapidement pris de l’ampleur, attirant des milliers d’utilisateurs, des partenariats de haut niveau avec des personnes comme Microsoft, AWS et IBM, et des brouettes pleines d’argent de capital-risque, y compris les premiers investissements de Peter Fenton chez Benchmark et Dan Scholnick chez Trinity Ventures. La société recentrée a changé son nom pour Docker et a collecté près de 300 millions de dollars auprès de Benchmark, Coatue Management, Goldman Sachs et Greylock Partners. Cependant, comme de nombreuses entreprises basées sur des logiciels open source, elle a eu du mal à trouver un modèle commercial rentable et ces investisseurs n’ont jamais obtenu leur grande sortie.

« Solomon a construit l’une des technologies les plus convaincantes des 20 dernières années et dans le domaine de l’emballage de quelque chose avec une opinion et de la rendre extrêmement précieuse pour un grand nombre de développeurs, Docker était énorme », a déclaré James Governor, analyste chez RedMonk. . « Docker a-t-il pris de mauvaises décisions ? Clairement oui, mais les investisseurs en capital-risque sont devenus fous et la somme d’argent qu’ils leur ont lancée signifiait qu’ils devaient avoir l’impression qu’ils pouvaient tout faire, ce qui était problématique. »

Avance rapide jusqu’en 2021 et la version courte de cette histoire est que l’outil d’orchestration de conteneurs open source massivement populaire Kubernetes a mangé le déjeuner de Docker (l’entreprise) en déplaçant son principal centre de profit : une version d’entreprise de son propre outil d’orchestration de conteneurs appelé Docker Swarm. Cependant, l’histoire vraie est bien plus complexe.

La commercialisation de l’open source est difficile

La combinaison d’énormes montants de capital-risque, d’un paysage concurrentiel en croissance rapide et de l’ombre menaçante des géants de l’industrie du cloud qui veulent tous une part du gâteau a créé un environnement de cocotte-minute dans lequel la jeune entreprise peut opérer.

« Il y a un dicton qui dit que « quand les éléphants se battent, l’herbe est piétinée », et il est devenu clair pour nous qu’il ne s’agissait pas seulement de Docker, mais de la façon dont les fournisseurs de cloud se faisaient concurrence. Ils voulaient tous nous entraîner dans des directions différentes. C’était un acte de jonglage constant pour rester fidèle à nos valeurs et à nos racines et créer une entreprise », a déclaré Golub.

L’ancien PDG note que tous ces facteurs ont créé des « tensions naturelles » au fur et à mesure que Docker grandissait. « Nous voulions créer une grande communauté et monétiser le produit de développement, tout en créant un excellent produit d’opérateur pour permettre aux clients de créer et de déployer des conteneurs à grande échelle », a déclaré Golub. « C’était la vision et assez rapidement, nous avons réalisé que nous devions évoluer rapidement et que nous n’avions pas beaucoup de temps pour équilibrer la communauté et être une entreprise commerciale … ​​à un startup vous prenez 100 décisions par jour, et vous espérez que 80 sont justes. »

Docker a commencé à prendre au sérieux une stratégie commerciale pour monétiser sa position de leader dans le monde des conteneurs vers 2014, lorsque l’entreprise a dépensé une partie de cet argent de capital-risque pour les acquisitions de Koality en 2014 et Tutum en 2015, tout en lançant la première version de son propre programme de soutien aux entreprises.

Ces investissements ont conduit à des produits tels que Docker Hub, que vous pouvez considérer un peu comme un GitHub pour les images Docker (qui existe également maintenant) et finalement Docker Enterprise. Mais aucun de ces produits n’a vraiment décollé auprès des entreprises clientes, qui étaient généralement heureuses de travailler avec des partenaires plus établis, ou de créer des solutions plutôt que d’acheter, car Docker s’efforçait de produire un ensemble de produits que les clients voulaient vraiment.

« Nous n’avons jamais expédié un excellent produit commercial », a déclaré Hykes à InfoWorld lors de ses vacances en France cet été. « La raison en est que nous ne nous sommes pas concentrés. On a essayé de faire un peu de tout. Il est déjà assez difficile de maintenir la croissance de votre communauté de développeurs et de créer un excellent produit commercial, sans parler de trois ou quatre, et il est impossible de faire les deux, mais c’est ce que nous avons essayé de faire et nous avons dépensé énormément d’argent pour le faire. ”

« Il n’y a eu aucune livraison technique en dehors de l’open source », a déclaré Nick Stinemates, ancien vice-président du développement commercial et des alliances techniques et l’un des premiers employés de Docker. « Il y avait une incapacité fondamentale à fournir des logiciels commerciaux. »

Avec le recul, Hykes pense que Docker aurait dû passer moins de temps à expédier des produits et plus de temps à écouter les clients. « J’aurais évité de me précipiter pour mettre à l’échelle un produit commercial et investi davantage dans la collecte d’informations auprès de notre communauté et la constitution d’une équipe dédiée à la compréhension de leurs besoins commerciaux », a déclaré Hykes. « Nous avons eu une fenêtre en 2014, ce qui était un point d’inflexion et nous avions l’impression que nous ne pouvions pas attendre, mais je pense que nous avons eu le luxe d’attendre plus que nous ne le pensions. »

D’autres pensent que Docker a trop donné gratuitement trop tôt. « Ils ont sorti quelque chose gratuitement qui a réussi, home run », Kelsey Hightower de Google a déclaré au magazine Increment plus tôt cette année. « Ils ont résolu tout le problème et ont atteint le plafond de ce problème : créez une image, construisez-la, stockez-la quelque part, puis exécutez-la. Qu’y a-t-il d’autre à faire ? »

Hykes n’est pas d’accord avec cette évaluation. « Je pense que c’est faux et de manière générale, le produit open source de base a créé une croissance massive qui a créé l’opportunité de monétiser en premier lieu », a-t-il déclaré. « De nombreuses entreprises monétisent Docker avec succès, mais pas Docker. Il y avait beaucoup à monétiser, juste Docker n’a pas réussi à le monétiser. »

Par exemple, les deux Red Hat et Pivotal (maintenant partie de VMware) ont été les premiers partenaires de Docker, intégrant Docker des conteneurs dans leurs produits PaaS commerciaux (respectivement OpenShift et Cloud Foundry) et contribuer au projet open source.

« Si je suis généreux, les contributions de Red Hat au début ont un peu énervé Solomon », a déclaré Stinemates. « Solomon a brûlé beaucoup de ponts et il y a des fils sur Hacker News de lui à partir de se bat avec les opposants. Les partenaires d’entreprise ne pouvaient pas avoir cela avec Solomon. « 

Aujourd’hui, Hykes déclare qu’il est coupable d’avoir confondu « communauté et écosystème ». Red Hat spécifiquement « ne faisait pas partie de la communauté, ils ne se sont jamais enracinés pour le succès de Docker », a-t-il déclaré. « L’erreur de notre côté était de vouloir désespérément qu’ils fassent partie de la communauté. Rétrospectivement, nous n’aurions jamais bénéficié de ce partenariat. »

En conséquence, les premiers clients comme la société de technologie du voyage Amadeus se sont tournés vers Red Hat en 2015 pour combler ce qu’ils considéraient comme un vide de qualité professionnelle laissé par Docker. « Nous sommes passés directement d’un mode pionnier, où nous exploitions les versions open source [de Docker], à un partenariat solide avec Red Hat, où ils couvraient le support de la technologie des conteneurs pour nous », Edouard Hubin, responsable de la plate-forme cloud solutions chez Amadeus, a déclaré InfoWorld, par e-mail. « La conteneurisation a été la première étape du changement technologique loin de la virtualisation. La solution d’orchestration de conteneurs a véritablement changé la donne pour l’entreprise. Il est clair que Docker a perdu cette bataille contre Kubernetes et c’était une situation très difficile pour eux. »

La décision Kubernetes

Docker en viendrait à regretter un ensemble de décisions antérieures concernant son refus d’adopter véritablement Kubernetes en tant qu’outil d’orchestration de conteneurs émergent de choix, qui permettait aux clients de gérer des flottes de conteneurs à grande échelle et à l’unisson, au lieu d’aller de l’avant avec son propre propriétaire Docker Swarm orchestrateur (RIP) avec un niveau de concentration myope.

« La plus grosse erreur a été de rater Kubernetes. Nous étions dans cette bulle de pensée collective où, en interne, nous pensions que Kubernetes était beaucoup trop compliqué et que Swarm aurait beaucoup plus de succès », a déclaré Jérôme Petazzoni, l’un des premiers et des plus anciens employés de Docker. « Ce fut notre échec collectif de ne pas le réaliser. »

En vérité, Docker a eu la chance de travailler en étroite collaboration avec l’équipe Kubernetes de Google en 2014 et potentiellement posséder l’ensemble de l’écosystème de conteneurs dans le processus. « Nous aurions pu faire de Kubernetes un projet Docker de première classe sous la bannière Docker sur GitHub. Avec le recul, c’était une erreur majeure étant donné que Swarm était si tard sur le marché », a déclaré Stinemates.

Ces premières discussions dans les bureaux de Google à San Francisco étaient techniques et tendues, selon plusieurs personnes présentes, car les deux parties avaient des opinions bien arrêtées sur la manière dont l’orchestration des conteneurs devrait être effectuée.

Craig McLuckie, cofondateur de Kubernetes et désormais vice-président de VMware, déclare avoir proposé de faire don de Kubernetes à Docker, mais les deux parties n’ont pas pu parvenir à un accord. « Il y avait un élément mutuel d’orgueil là-bas, de leur part que nous ne comprenions pas l’expérience des développeurs, mais le sentiment réciproque était que ces jeunes parvenus ne comprennent vraiment pas la gestion des systèmes distribués », a-t-il déclaré à InfoWorld. D’autres disent que les discussions étaient plus informelles et axées sur le développement conjoint de la technologie des conteneurs. Quoi qu’il en soit, les équipes n’ont jamais été d’accord et ont fini par se séparer, avec Google lance lui-même Kubernetes à l’été 2014.

Hykes conteste que Google ait offert à Docker la propriété du projet Kubernetes, affirmant qu’ils avaient « l’opportunité de faire partie de l’écosystème comme tout le monde ».

Hykes reconnaît qu’il y avait des tensions entre les équipes Docker et Google à l’époque. « Il y a eu un moment où les egos ont prévalu. Beaucoup de personnes intelligentes et expérimentées chez Google ont été aveuglées par les outsiders complets de Docker », a déclaré Hykes. « Nous ne travaillions pas chez Google, nous ne sommes pas allés à Stanford, nous n’avions pas de doctorat en informatique. Certaines personnes avaient l’impression que c’était à eux de le faire, alors il y avait une bataille d’ego. Le résultat n’a pas été une bonne collaboration entre les équipes Docker et Kubernetes, alors qu’il était vraiment logique de collaborer. »

 » Cet ego fondamental d’un côté et la tension de l’autre avec [les cofondateurs de Kubernetes] Joe Beda, Brendan Burns et Craig McLuckie, qui avaient des opinions bien arrêtées sur la nécessité d’une API de niveau de service et Docker avait techniquement sa propre opinion sur une seule API du point de vue de la simplicité, ce qui signifiait que nous ne pouvions pas nous mettre d’accord », a déclaré Stinemates.

Hykes admet que Docker était sous pression à l’époque pour trouver une solution d’orchestration pour les clients qui souhaitaient augmenter leur utilisation des conteneurs, mais qu’il n’était pas évident à l’époque que Kubernetes serait cette solution. « Kubernetes était si tôt et l’un des dizaines et nous n’avons pas deviné par magie qu’il dominerait », a déclaré Hykes. « On ne savait même pas à quel point Google y était engagé. J’ai demandé à nos ingénieurs et architectes quoi faire et ils nous ont recommandé de continuer avec Swarm », a-t-il déclaré.

Même McLuckie admet qu’il « ne savait pas que Kubernetes deviendrait Kubernetes. Il est facile de regarder en arrière et d’appeler cela un mauvais choix. »

Cependant, Kubernetes a fini par gagner la bataille de l’orchestration des conteneurs, et le reste devient un grand moment de « portes coulissantes » pour l’industrie du logiciel.

.

Toute l’actualité en temps réel, est sur L’Entrepreneur

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici