Kubernetes fête ses 10 ans : comment il a dirigé l'informatique cloud native au cours de la dernière décennie - et quelle est la prochaine étape
Comme Linux, Kubernetes témoigne de la puissance de la collaboration et de l’innovation open source. Comment pourrions-nous nous en passer ?
Si vous supprimiez Linux, le cloud, les conteneurs ou Kubernetes, vous ne reconnaîtriez pas le monde technologique d'aujourd'hui. Linux est la base du système d'exploitation pour tout cela ; le cloud nous donne accès à toutes ses applications et ressources ; les conteneurs sont l'endroit où vivent ces applications ; et Kubernetes orchestre tous les conteneurs. Supprimez n’importe lequel d’entre eux, et nous vivons et travaillons dans un royaume plus primitif.
Peu de technologies ont eu un impact aussi profond sur le paysage en constante évolution du cloud computing natif que Kubernetes. Alors qu'il célèbre son 10e anniversaire, Kubernetes témoigne de la puissance de la collaboration et de l'innovation open source. Depuis ses modestes débuts chez Google jusqu'à devenir la norme de facto pour l'orchestration de conteneurs, Kubernetes a transformé la façon dont nous déployons, gérons et faisons évoluer les applications.
Vous n’êtes pas obligé de me croire sur parole. Dans le rapport 2024 The Voice of Kubernetes Experts Report 2024 récemment publié par Pure Storage, la société a constaté qu'« au cours des cinq prochaines années, 80 % des nouvelles applications seront créées sur des plates-formes cloud natives ». Je suis surpris que ce soit si bas.
Vous voyez, Kubernetes a changé notre façon de faire de l'informatique. Comme me l'a dit Liz Rice, directrice de l'open source chez Isovalent, une société de mise en réseau, de sécurité et d'observabilité basée sur eBPF, Kubernetes a fondamentalement changé notre façon d'aborder les réseaux et la sécurité :
Kubernetes est fondamentalement dynamique. Les pods peuvent évoluer en fonction de la demande, et les charges de travail peuvent être planifiées et reprogrammées sur différentes machines. Ainsi, bien que la mise en réseau entre les charges de travail Kubernetes utilise des paquets IP, les adresses IP n'ont de sens qu'à court terme, car elles sont utilisées et réutilisées pour différentes charges de travail à différents moments. Cela signifie que les outils de mise en réseau et de sécurité traditionnels qui identifient le trafic en fonction des ports et des adresses IP ne suffisent plus. Nous avons besoin d'outils qui mappent les adresses IP éphémères à des identités Kubernetes significatives, telles que les pods, les services, les espaces de noms et les nœuds.
Parcourez la dernière décennie pour comprendre où Kubernetes a commencé, comment il a façonné le monde cloud natif et ce qui nous attend.
La genèse de Kubernetes
L'histoire de Kubernetes commence au début des années 2010 chez Google, où les ingénieurs étaient aux prises avec les défis liés à la gestion d'applications conteneurisées à grande échelle. Tout le monde reconnaissait l’importance des conteneurs et la nécessité de trouver un moyen de les gérer.
Au sein de Google, ils savaient déjà à quel point les conteneurs d'organisation étaient importants. Après tout, Google utilisait des conteneurs avant que Docker ne les rende populaires. Lorsque les ingénieurs de Google Craig McLuckie, Joe Beda et Brendan Burns ont présenté leur idée pour la première fois en 2013 à Urs Hölzle, alors responsable de l'infrastructure technique de Google, il a répondu : « Alors laissez-moi être clair. Vous souhaitez créer une version externe du Borg. planificateur de tâches. L'un de nos avantages concurrentiels les plus importants. Celui dont nous ne parlons même pas en externe. Et, en plus de cela, vous souhaitez le rendre open source ? »
Oui, oui, ils l'ont fait. Finalement, ils ont persuadé Hölzle que c'était une bonne idée.
Pourquoi? McLuckie a expliqué :
Nous avons toujours pensé que Kubernetes open source était la bonne voie à suivre, apportant de nombreux avantages au projet. D'une part, les boucles de rétroaction étaient essentiellement instantanées : s'il y avait un problème ou si quelque chose ne fonctionnait pas correctement, nous le savions immédiatement. Mais plus important encore, nous avons pu travailler avec de nombreux ingénieurs formidables, dont beaucoup comprenaient vraiment les besoins des entreprises qui bénéficieraient du déploiement de conteneurs. Ce fut un cercle vertueux : le travail d’ingénieurs talentueux a suscité davantage d’intérêt pour le projet, ce qui a encore augmenté le taux d’amélioration et d’utilisation.
C’est ainsi que début juin 2014, lors de la première DockerCon, la « guerre de l’orchestration des conteneurs » a commencé. Apache Mesos, GearD de Red Hat, Docker Libswarm, Tupperware de Facebook et Kubernetes ont tous été annoncés. Comme l'a déclaré Brad Rydzewski, alors fondateur de Drone.io : « Ce que j'ai appris à la #dockercon : chacun construit sa propre plate-forme d'orchestration. Sérieusement. Tout le monde. »
Rydzewski n'avait pas tort. D'autres programmes d'orchestration ont rapidement suivi.
Même à ces débuts, je pensais que Kubernetes serait clairement le gagnant. Inspiré du programme de gestion de conteneurs Borg de Google, utilisé depuis 2003, il possédait une maturité qui manquait aux autres programmes.
Kubernetes a rapidement gagné du terrain. Le nom « Kubernetes » vient du mot grec signifiant « timonier » ou « pilote », symbolisant son rôle dans le pilotage des applications conteneurisées. Le logo Kubernetes, une roue de navire à sept branches, rend hommage à son héritage Borg et à son prénom, Seven of Nine, un sympathique Borg de Star Trek, qui a été abandonné pour des raisons évidentes de marque.
Adoption rapide et croissance de la communauté
La nature open source et l'ensemble de fonctionnalités robustes de Kubernetes en ont fait un succès instantané auprès des développeurs et des entreprises. En 2015, Kubernetes avait atteint la version 1.0 et Google s'est associé à la Linux Foundation pour former la Cloud Native Computing Foundation (CNCF), avec Kubernetes comme technologie de départ. Cette décision a été cruciale pour favoriser une communauté dynamique autour de Kubernetes, conduisant à une innovation rapide et à une adoption généralisée.
Alors que d'autres programmes d'orchestration de conteneurs sont toujours présents, Amazon Web Services (AWS) a annoncé en 2017 Elastic Container Service for Kubernetes (EKS), et tout le monde a pu lire ce qui se passait. Kubernetes dominerait le monde cloud natif.
Simultanément, la CNCF a nourri l’écosystème Kubernetes. Aujourd’hui, des centaines de programmes cloud natifs dépendent tous de Kubernetes. Aujourd’hui, il n’existe aucun fournisseur de cloud majeur qui ne s’appuie sur Kubernetes. C'est devenu la plateforme incontournable d'orchestration de conteneurs.
Transformer le développement cloud natif
L'impact de Kubernetes sur le développement cloud natif ne peut être surestimé. Il a introduit un nouveau paradigme pour le déploiement et la gestion des applications, permettant aux développeurs de se concentrer sur l'écriture du code plutôt que de se soucier de l'infrastructure. Kubernetes élimine les complexités de l'orchestration des conteneurs, en fournissant des fonctionnalités telles que les déploiements et les restaurations automatisés, l'auto-réparation et la mise à l'échelle horizontale.
Un autre avantage clé de Kubernetes est sa portabilité. Les applications déployées sur Kubernetes peuvent s'exécuter sur n'importe quel fournisseur de cloud ou infrastructure sur site, ce qui en fait un choix idéal pour les environnements hybrides et multi-cloud. En effet, le cloud hybride vit et meurt grâce à Kubernetes. Cette flexibilité a changé la donne pour les entreprises, leur permettant d'éviter la dépendance vis-à-vis d'un fournisseur et d'optimiser leurs stratégies cloud.
Au fil des années, en plus des programmes cloud natifs associés, Kubernetes a donné naissance à un riche écosystème d'outils et de projets qui étendent ses capacités. Il s'agit notamment de Helm, le gestionnaire de packages Kubernetes qui simplifie le déploiement et la gestion des applications en fournissant des graphiques réutilisables, et Prometheus, le puissant programme de surveillance et d'alerte de l'environnement Kubernetes.
L'essor de Kubernetes a également donné naissance à de nouveaux paradigmes comme GitOps, qui exploite Git comme source unique de vérité pour l'infrastructure déclarative et la gestion des applications.
L'avenir de Kubernetes
Pour l’avenir, Kubernetes ne montre aucun signe de ralentissement. La plateforme continue d'évoluer, avec de nouvelles fonctionnalités et améliorations ajoutées régulièrement. La communauté Kubernetes explore des moyens de simplifier l'expérience utilisateur, d'améliorer la sécurité et d'améliorer l'évolutivité.
Ville Aikas, co-fondateur de Chainguard et l'un des créateurs de Kubernetes, a observé :
Nous avons ce vaste paysage CNCF qui s'est épanoui, ce qui est une chose merveilleuse en termes de toute la diversité des options d'outils et d'infrastructure qu'il offre aux équipes de plateforme. Mais je pense que cela crée également un certain nombre de choix qui doivent être faits pour exploiter Kubernetes - et ce paysage est devenu immense. J'ai toujours pensé que l'une des principales raisons pour lesquelles Kubernetes est devenu si populaire était que son interface de programmation d'applications (API) était si simple et que la charge cognitive pour l'utiliser était relativement faible. À mesure que Kubernetes continue de mûrir, il doit conserver la simplicité de son modèle mental et la convivialité de son API.
C'est plus facile à dire qu'à faire. Jongler avec Kubernetes et les paradigmes de programmation cloud natif est devenu de plus en plus difficile.
Comme l'a déclaré Shahar Azulay, PDG et co-fondateur de Groundcover, une société de surveillance des performances des eBPF :
Kubernetes a démontré sa capacité à gérer efficacement diverses tâches, mais sa complexité nécessite une configuration considérable et une maintenance continue. De la même manière que Linux est devenu un système d'exploitation fiable, je m'attends à ce que Kubernetes se transforme en une couche d'abstraction plus conviviale. Alors que l’adoption de Kubernetes continue de croître depuis une décennie, le besoin d’efficacité et d’optimisation des coûts devient de plus en plus critique.
Pour l'avenir, Isovalent's Rice a déclaré :
Nous constatons déjà que Kubernetes est utilisé dans des environnements plus hybrides aux côtés des charges de travail existantes et dans les appareils de pointe. La vision de Cilium, le programme de mise en réseau, d'observabilité et de sécurité cloud-natif et open source basé sur eBPF, est qu'un développeur d'applications ne devrait pas avoir besoin de savoir ou de se soucier de l'endroit où s'exécutent les services avec lesquels il souhaite interagir : la connectivité et la sécurité doivent tous être gérés dans la couche plate-forme.
Un autre développement passionnant à l’horizon est l’intégration de Kubernetes avec l’informatique sans serveur. Des projets tels que Kubeless et Fission apportent des fonctionnalités sans serveur à Kubernetes, permettant aux développeurs de créer et de déployer des fonctions en tant que service (FaaS) au-dessus de leurs clusters Kubernetes existants. Cette fusion du sans serveur et de Kubernetes promet d’ouvrir de nouvelles possibilités pour les applications cloud natives.
Les combinaisons Edge Computing et Kubernetes se développent également. À mesure que de plus en plus d’appareils et d’applications migrent vers la périphérie, Kubernetes s’adapte pour prendre en charge les déploiements en périphérie. La communauté Kubernetes travaille sur des projets tels que KubeEdge, MicroK8s et Red Hat Device Edge pour permettre des clusters Kubernetes légers et efficaces pouvant s'exécuter sur des appareils de périphérie.
L'avenir de Kubernetes est prometteur. Grâce à une innovation continue et à un écosystème florissant, Kubernetes est prêt à continuer à façonner le paysage cloud natif pour les années à venir. Portez un toast à une décennie de Kubernetes, et voici encore 10 années d'innovation, de collaboration et d'excellence en matière d'orchestration de conteneurs.