Kubernetes, le cloud native et le futur du logiciel

Il y a précisément cinq ans, en juin 2014, Google Cloud annonçait une nouvelle technologie de gestion des applications appelée Kubernetes.

D’une simple proposition open source, puis d’un post de blog, Kubernetes a su rapidement se faire apprécier dans le monde entier. En ce cinquième anniversaire, il semble pertinent de revenir sur ses origines, les défis qu’il a permit de relever et les opportunités qu’il présente pour l’avenir.

Aux débuts étaient les conteneurs...

Le précurseur le plus important de Kubernetes a été la montée en puissance des conteneurs d'application. Borg, outil de Google et permettant la gestion interne de conteneurs, a précédé et directement influencé Kubernetes. On retrouve ainsi Borg à travers les pods, les services et les labels de Kubernetes. Docker quant à lui a été le premier outil à réellement rendre les conteneurs utilisables par un large public, a commencé comme un projet open source en 2013. En plaçant une application dans un container, les développeurs pouvaient faciliter la gestion de l’exécution, le déploiement et l'évolutivité, provoquant ainsi un changement radical dans l’approche de gestion des applications. Les conteneurs ont permis de rendre les applications “stateless” facilement élastiques et l’immutabilité des images à considérablement réduit les écarts de configuration entre la production et les environnements de test. Alors que les conteneurs présentaient une forte valeur intrinsèque pour les développeurs, le défi suivant consistait à fournir et à gérer des services, des applications et des architectures qui couvraient plusieurs conteneurs et plusieurs hôtes.  Google avait déjà rencontré des défis similaires au sein de sa propre infrastructure informatique. L'utilisation du moteur de recherche le plus populaire au monde (et de plusieurs autres produits avec des millions d'utilisateurs) a conduit à l'innovation et à l'adoption précoce des conteneurs.

Kubernetes a réutilisé les modèles d'architecture et d'API ayant le plus réussi dans les systèmes précédents et intégré des éléments d’équilibre de la charge, des politiques d'autorisation et autres fonctionnalités nécessaires pour exécuter et gérer les applications à l'échelle. Ces abstractions d’infrastructure fournies par Kubernetes permettent une véritable portabilité à travers les différents clouds.

A partir de 2014 sont apparu les Kubernetes “managés”. Kubernetes a ainsi vu éclore un grand nombre d’innovation ; les entreprises de toutes les tailles ont vu les obstacles à l'adoption disparaître. Google et d'autres membres de la communauté ont augmenté leur investissement en ressources humaines, en expérience et en compétences en architecture informatique afin d’être prêts pour des charges de travail de plus en plus critiques.

L'ascension du cloud natif et de l’open source dans le sens de l’histoire économique et numérique

Toutes les entreprises, quel que soit leur cœur de métier, adoptent de plus en plus les technologies numériques. S’adapter rapidement est fondamental pour la poursuite de la croissance et de la compétitivité. Les technologies relatives au cloud natif, et en particulier Kubernetes, ont vu le jour pour répondre à ce besoin, en fournissant l'automatisation et l'observabilité nécessaires pour gérer les applications à l'échelle tout en améliorant la vélocité des équipes de développement. Les entreprises qui devaient auparavant se limiter à des déploiements trimestriels d'applications critiques peuvent désormais déployer en toute sécurité plusieurs fois par jour.

Le mode déclaratif de Kubernetes, piloté par API, permet aux équipes d'opérer de manière indépendante et de se concentrer sur leurs objectifs commerciaux. Un changement culturel inévitable sur le lieu de travail est venu de l'autonomie et de la productivité accrues ainsi que de la réduction de la charge de travail des équipes de développement. La capacité des équipes à développer et déployer rapidement de nouveaux logiciels crée un cercle vertueux de succès pour les entreprises et les équipes techniques. Les entreprises ont commencé à reconnaître que le fait de contribuer aux projets logiciels qu'elles utilisent non seulement améliore les performances du logiciel pour leurs cas d'utilisation, mais crée également des compétences essentielles et des opportunités stimulantes qui les aident à attirer et à retenir de nouveaux développeurs. Le projet Kubernetes, en particulier, favorise une culture de collaboration qui encourage la contribution et le partage de l'apprentissage et du développement avec la communauté. Cela favorise un écosystème positif qui profite autant aux contributeurs qu'aux utilisateurs finaux.

Quelle est la prochaine étape ?

Cinq ans, pour Kubernetes, c'est une éternité. Cela en dit long sur l'innovation collective que nous avons vue dans la communauté et sur l'adoption rapide de cette technologie. Ce n'est cependant qu'un début. De nouvelles applications telles que le machine learning, le edge computing et l'Internet des objets, trouvent leur place dans l'écosystème natif du cloud via des projets comme Kubeflow. Kubernetes est presque certain d'être au cœur de leur succès à venir. Kubernetes aura d’autant plus réussi qu’il sera devenu un élément invisible du quotidien, comme les réseaux de canalisation urbains ou les réseaux électriques. Mais tout comme les villes qui reposent sur ces infrastructures invisibles, les solutions et extensions qui se développeront à partir de Kubernetes changeront radicalement le monde tel que nous le connaissons aujourd’hui.

Kubernetes, le cloud native et le futur du logiciel
Kubernetes, le cloud native et le futur du logiciel

D’une simple proposition open source, puis d’un post de blog, Kubernetes a su rapidement se faire apprécier dans le monde entier. En ce cinquième anniversaire, il semble pertinent de revenir sur ses origines, les défis qu’il a permit de relever et...