ANNÉES 2010

Kubernetes

En 2006, Google se trouvait face à une équation difficile. L’entreprise proposait gratuitement Gmail, YouTube et son moteur de recherche à des millions d’utilisateurs. Comment gérer une infrastructure colossale sans que les coûts s’envolent ? Les ingénieurs ont alors développé Borg, un système interne capable de faire tourner des milliers d’applications sur leur parc de machines. Le nom rendait hommage à une race d’extraterrestres de Star Trek, ces créatures reliées par une conscience collective. L’analogie collait bien au projet. Borg optimisait l’usage des ressources matérielles en orchestrant l’exécution d’applications dans des conteneurs, une technologie qui commençait à peine à émerger. Google garda ce trésor secret pendant des années, conscient de l’avantage technique qu’il représentait.

En 2013, trois ingénieurs de l’entreprise – Craig McLuckie, Joe Beda et Brendan Burns – ont eu une intuition. Docker venait de rendre les conteneurs populaires auprès des développeurs, mais la technologie restait limitée. Elle ne savait gérer des conteneurs que sur une seule machine. L’expérience acquise avec Borg ouvrait la voie à quelque chose de plus ambitieux. Pourquoi ne pas créer un système capable d’orchestrer des conteneurs à l’échelle d’un centre de données entier ?

Ils ont baptisé leur idée « Project Seven », référence au personnage Seven of Nine de Star Trek, une ancienne drone Borg. Ce clin d’œil établissait un lien avec le système originel tout en marquant une rupture vers plus d’ouverture. Car le vrai pari résidait là. Rendre ce projet open source représentait un risque. Urs Hölzle, directeur technique de Google, voyait dans cette expertise en gestion de conteneurs un avantage concurrentiel. Mais l’entreprise a compris qu’une adoption massive nécessitait une communauté active de développeurs externes.

Le projet prit finalement le nom de Kubernetes, du grec ancien kubernētēs qui désigne le pilote ou le timonier d’un navire. Ce choix s’inscrivait dans la continuité maritime de Docker. Le système devait piloter des conteneurs, comme un timonier guide son navire. Le logo arbore sept branches, trace discrète du nom initial « Project Seven ».

Les concepteurs ont bâti Kubernetes en s’appuyant sur les leçons tirées de Borg et de son successeur Omega. L’architecture repose sur des clusters, avec d’un côté des nœuds de travail qui exécutent les applications conteneurisées, de l’autre des nœuds de contrôle qui gèrent l’orchestration. Le système utilise des étiquettes (labels) pour organiser et gérer les conteneurs de manière souple, abandonnant la numérotation séquentielle rigide de Borg.

La version 1.0 fut dévoilée en 2015 lors de la conférence OSCON. Dès le lancement, Microsoft, Red Hat et IBM ont apporté leur soutien. Google a confié le projet à la Cloud Native Computing Foundation (CNCF), une organisation à but non lucratif hébergée par la Linux Foundation. Ce transfert garantissait la neutralité du projet et son développement collaboratif.

Les fonctionnalités techniques de Kubernetes répondent aux exigences des applications modernes. Réplication automatique des conteneurs, équilibrage de charge, découverte de services, surveillance de la santé des applications, réparation automatique en cas de panne. Le système regroupe plusieurs machines pour distribuer efficacement la charge de travail.

L’approche de Kubernetes en matière d’API marque une évolution notable par rapport à Borg. Chaque objet possède trois champs fondamentaux : les métadonnées, la spécification de l’état désiré et le statut actuel. Cette standardisation a simplifié le développement d’outils et d’extensions par la communauté.

La gestion des « pods » apporte une dimension nouvelle. Un pod peut contenir plusieurs conteneurs partageant des ressources. Cette conception aide à décomposer les applications complexes en composants plus petits et mieux isolés, sans perdre la coordination entre eux.

L’ascension de Kubernetes s’inscrit dans une transformation plus vaste du développement logiciel. Le système a accompagné l’essor du cloud computing et des architectures en microservices. Les entreprises peuvent désormais déployer leurs applications de manière cohérente, sur leurs propres serveurs comme sur AWS, Microsoft Azure ou Google Cloud.

L’impact sur l’industrie informatique s’est révélé massif. En 2020, Kubernetes figurait parmi les dix projets open source les plus populaires sur GitHub. Selon la CNCF, il est devenu le deuxième plus grand projet open source après Linux. 71% des entreprises du Fortune 100 l’utilisent.

Cette histoire montre comment une technologie développée pour résoudre des problèmes internes à Google s’est muée en standard industriel grâce à l’open source. Elle souligne le rôle des communautés de développeurs dans l’adoption des technologies à grande échelle. Kubernetes a transformé la manière dont les entreprises développent, déploient et gèrent leurs applications, leur donnant l’agilité nécessaire pour innover vite sans sacrifier la stabilité de leurs services.