Google exploitait des conteneurs Linux à grande échelle depuis une décennie avant que les conteneurs ne deviennent à la mode. Son système Borg gérait des centaines de milliers de tâches sur des clusters allant jusqu'à des dizaines de milliers de machines, à l'aide d'un langage déclaratif de spécification de tâches, plus le redémarrage et la replanification automatiques lorsqu'une instance mourait.

Kubernetes, publié en open source en 2014, a porté les leçons de Borg hors de Google : un stockage persistant partagé, une API REST spécifique au domaine avec versionnage et validation, et une structure uniforme Spec/Status sur chaque objet. L'objectif de conception était de rendre les systèmes distribués complexes faciles à déployer et à gérer, tout en conservant les gains d'utilisation que permettent les conteneurs.

Parce que les contrôleurs se contentent de comparer l'état souhaité à l'état observé et d'agir sur la différence, la plateforme est intrinsèquement auto-réparatrice et extensible : un autoscaler ajuste seulement le nombre de réplicas souhaité et ne touche jamais au mécanisme qui le réconcilie. Cette unique abstraction est devenue la norme de l'industrie.

Déclarer l'état souhaité ; une boucle réconcilie la réalité

Les spécifications déclaratives signifient que le même YAML fonctionne sur n'importe quel cluster conforme, supprimant la taxe de portabilité

Une API d'objets uniforme permet aux utilisateurs, aux composants internes et à l'automatisation de tous piloter le même système

La boucle de contrôle fait des déploiements progressifs, des contrôles de santé et de la mise à l'échelle les fonctionnalités d'un seul mécanisme plutôt que du code sur mesure

Sa publication en open source sous la CNCF a donné à chaque fournisseur une place égale, de sorte que les géants du cloud se sont concurrencés sur le service, pas sur l'enfermement propriétaire

Proposer un contrat déclaratif plutôt que des scripts impératifs : les utilisateurs disent ce qu'ils veulent, le mécanisme se charge du comment. C'est ce contrat qui a fait de Kubernetes l'abstraction que chaque cloud pouvait adopter.

Kubernetes est devenu la norme de facto d'orchestration de conteneurs ; chaque grand cloud propose une version gérée, et les enquêtes de la CNCF le placent parmi les plateformes les plus largement utilisées. Borg reste le système interne de Google, mais son descendant public a standardisé la façon dont l'industrie déploie les logiciels.

VÉRIFIEZ LES SOURCES

Les sources

  1. Large-scale cluster management at Google with Borg (abstract) Google Research / EuroSys 2015 · research.google
  2. Borg, Omega, and Kubernetes ACM Queue · queue.acm.org
  3. Kubernetes Overview Kubernetes Documentation · kubernetes.io