Kubernetes, catalyseur du cloud-nativ


Les systèmes classiques, mis à jour et entretenus pendant des années, ne sont plus à la pointe de la technologie.
Infrastructure as Code (IaC), en revanche, décrit un état théorique et laisse les outils d'automatisation faire le véritable travail. Kubernetes s'est non seulement établi comme le standard de facto pour l'infrastructure de microservices, mais il a également entraîné dans son sillage une flotte considérable de nouvelles solutions logicielles innovantes. Le paysage de la Cloud Native Computing Foundation (CNCF), créée à cet effet, compte aujourd'hui environ 1200 produits autour de Kubernetes.
Lancé en raison d'un mécontentement vis-à-vis de l'orchestration de conteneurs existante de Docker-Swarm, rien ne laissait présager qu'un petit projet annexe de quelques développeurs de Google allait changer le monde du logiciel. Ce n'est que la publication en tant qu'open source en 2014 qui a permis une collaboration mondiale et une croissance constante. La percée s'est ensuite faite de manière ludique, au sens propre du terme : Niantic, une filiale de Google, a misé sur Kubernetes dans sa salle des machines pour son jeu de réalité augmentée Pokémon Go dès son lancement. La stabilité et l'énorme évolutivité ont établi de nouveaux critères.
Ainsi, les grands hyperscaleurs AWS, Azure et Google Cloud ne sont pas les seuls à proposer une infrastructure et un Managed Kubernetes, des fournisseurs allemands comme Open Telekom Cloud ou Ionos ont également des offres correspondantes dans leur portefeuille. Pour les fournisseurs sans Managed Kubernetes, il existe des automatisations prêtes à l'emploi qui sont tout aussi simples à mettre en œuvre.
Qu'il s'agisse d'achats en ligne ou de commerce de détail, de streaming ou de portail d'informations, de production ou de logistique, de plus en plus d'entreprises misent sur des applications dans Kubernetes. Kubernetes est également devenu incontournable dans les secteurs critiques en termes de sécurité, comme les banques, les assurances, les entreprises d'infrastructure ou même les administrations. Dans ces secteurs, il est souvent nécessaire de l'exploiter dans son propre centre de données. Pour cela, les distributions Linux d'entreprise proposent également des solutions Kubernetes correspondantes.
Avec OpenShift, Red Hat met à disposition, en plus de Kubernetes, une boîte à outils complète pour la gestion du cycle de vie des applications. Avec Rancher, Suse met l'accent non seulement sur la gestion des charges de travail, mais aussi sur la gestion de clusters Kubernetes au-delà des limites de l'infrastructure. Ubuntu propose des piles d'applications complètes avec MicroK8s et les Charmed Operators. Fidèle à sa stratégie open source, SAP a publié sa gestion de clusters Gardener, initialement développée en interne, sous licence Apache et propose ainsi un installateur certifié par la CNCF pour Kubernetes. Parallèlement, de nouvelles distributions voient le jour qui, suivant les principes du cloud native, réduisent largement le système d'exploitation et se laissent entièrement contrôler par une API, comme Kubernetes lui-même.
Contrairement à ce que son nom laisse entendre, les principes du cloud-native computing ne se limitent pas à l'application dans le nuage. Les propriétés fondamentales que sont l'observabilité, l'élasticité, l'évolutivité, les systèmes de service-of-services et les unités de mise à disposition fermées sur elles-mêmes peuvent également être mises en œuvre dans une infrastructure propre. Des applications complexes, composées de différents microservices, peuvent ainsi être mises à disposition de manière hautement disponible, résiliente et adaptable. L'infrastructure peut également être exploitée de manière résistante et adaptable en suivant ces principes. La surveillance, la gestion des logs et des politiques fournissent les informations nécessaires pour exploiter les capacités d'autoréparation de Kubernetes.
Les abstractions et les interactions des composants impliqués entraînent inévitablement une complexité accrue du système global. Cette complexité nécessite des normes libres, des interfaces définies et une collaboration collective. L'open source permet précisément cette collaboration. Ainsi, il est déjà possible aujourd'hui d'exploiter un cloud privé entièrement libre avec OpenStack, Kubernetes, Ceph et d'autres composants libres.