Kubernetes as a Service : Amazon s'attaque frontalement à Google

Kubernetes as a Service : Amazon s'attaque frontalement à Google Au départ seul à proposer l'orchestrateur open source en mode cloud managé, Google est désormais confronté sur ce terrain à la concurrence d'AWS et même de Microsoft.

Google a été le tout premier à proposer un service Kubernetes en mode cloud. Baptisé Google Container Engine (GKE), il est commercialisé depuis août 2015. Conçu pour gérer l'orchestration de clusters de containers logiciels, Kubernetes est directement issu de la technologie utilisée en interne par le groupe américain pour mettre en musique l'infrastructure massive supportant ses applications (Gmail, Google Drive…). Cédé depuis à la Cloud Native Computing Foundation (CNCF), Kubernetes est devenu un projet open source (sous licence Apache 2.0).

Dans la foulée, d'autres fournisseurs de cloud ont décidé de miser sur Kubernetes. C'est notamment le cas de Microsoft et d'Amazon Web Services (AWS). Tous deux avancent désormais des offres directement concurrentes de GKE. Du fait de sa maturité et de sa robustesse, Kubernetes est devenu au fil des mois un point de passage obligé. Il est désormais largement adopté par la communauté des développeurs. Même Docker, le pure player historique du container logiciel, a récemment décidé de l'intégrer aux côtés de son orchestrateur maison Swarm (lire l'article : Avec Docker EE 2.0, Docker intègre Kubernetes et fait sa révolution).

Comparatif des offres de Kubernetes as a Service
  Google Container Engine (GKE) Amazon Elastic Container Service for Kubernetes (EKS) Managed Kubernetes for Azure Container Service (AKS)
Déploiement du master Kubernetes sur plusieurs zones d'hébergement En option X  
Version(s) de Kubernetes supportées Toutes (même les versions Alpha) Plusieurs Uniquement l'avant-dernière version sortie
Autodimensionnement des ressources machines des clusters (au niveau des workers Kubernetes) X X  
Templates (managés) pour personnaliser le paramétrage du master X    

Note : les services cloud managés présentés ici garantissent tous un SLA (taux de disponibilité) au niveau du serveur maître du cluster kubernetes, mais pas des différents nœuds de la grappe de serveur.

Google GKE : robustesse et état de l'art

"L'installation de Kubernetes demeure complexe. Disposer sur ce terrain d'un service cloud managé présente pour avantage de simplifier cette étape. D'autant que les mises à jour de l'orchestrateur seront ensuite prises en charge directement par le fournisseur", souligne Cyril Sabourault, consultant Google Cloud au sein de l'ESN Devoteam. "Un service comme Google GKE déploie et manage complètement le serveur maître du cluster Kubernetes. Il gère aussi automatiquement le dimensionnement (autoscaling, ndlr) des ressources machines sous-jacentes, RAM et CPU, en fonction du trafic de l'application." Au final, il restera bien sûr nécessaire de décrire le comportement du logiciel au sein du cluster et les interactions entre ses différentes briques.

"Amazon EKS et Azure AKS sont similaires à Google GKE dans la philosophie"

Face à Google, Amazon et Microsoft ont tous deux dévoilé leur alternative fin 2017. Baptisée Elastic Container Service for Kubernetes (Amazon EKS), "l'offre d'Amazon est proche dans sa philosophie de celle de Google", constate Marc Falzon, consultant cloud architecture & automation chez D2SI (filiale de Devoteam). Comme le Container Engine de Mountain View, Amazon EKS (pour l'heure en bêta privée) est taillé pour automatiser l'installation, la configuration puis les mises à jour des masters Kubernetes. De même, il intègre également un autoscaling vertical et horizontal.

Au chapitre des différences, l'implémentation d'Amazon se révélerait par certains côtés moins standardisée que celle de Google. "Google s'adosse notamment au projet open source Fluentd (lui aussi piloté par la CNCF, ndlr) pour fédérer les logs de GKE dans sa solution de gestion d'événements Stackdriver. Ce qui rend plus confiant", estime Alexis "Horgix" Chotard, technical officer et consultant DevOps chez Xebia. De même, l'infrastructure GKE implémente la technologie open source Calico (qui fait référence dans l'écosystème) pour gérer la couche réseau des clusters et les "network policy". Ce qui n'est pas le cas d'Amazon EKS qui fait appel, lui, à un développement maison (également open source et compatible avec les API de Kubernetes) pour gérer cet aspect.  

Autre point fort à mettre au crédit de Google : son environnement est livré avec des modèles (ou templates) pour personnaliser la configuration du master Kubernetes en fonction de besoins particuliers (en matière de réseau, d'identification, etc.). Une possibilité qui n'est pas proposée par Amazon. "En revanche, l'offre d'AWS va permettre de charger des plugins qui contribueront à un premier niveau de personnalisation. Reste à savoir si ces plugins seront managés par Amazon", glisse un consultant.

Amazon EKS pourrait créer la surprise

"Avec EKS, nous répondons à une demande forte de nos clients. D'après la Cloud Native Computing Foundation, 63% des workloads Kubernetes tournent sur AWS", déclare Andy Jassy, PDG d'Amazon Web Services. Et Yann Daniel, architecte systèmes au sein de la société d'infogérance Linkbynet, d'analyser : "Là où GKE attire du fait de sa maturité sur Kubernetes, le taux de pénétration dont bénéficie déjà Amazon dans ce domaine, et qui s'explique notamment par sa position de leader sur le IaaS, ouvre un boulevard à sa solution."

Amazon EKS bénéficie en outre de la richesse du cloud américain. Dans sa version bêta disponible, elle tire d'ailleurs déjà parti de plusieurs outils AWS tiers (Amazon VPC, Elastic Load Balancing, IAM, PrivateLink...). "A l'avenir, on pourrait imaginer qu'EKS s'intègre encore d'autres briques d'Amazon. On peut penser à Elastic File System pour le stockage persistant distribué. Voire même à Fargate qui permettrait potentiellement de confier à Amazon l'entière gestion des agents et de la couche d'instances de calcul", insiste Yann Daniel. Et Alexis "Horgix" Chotard chez Xebia d'insister : "Fargate éviterait ainsi d'être facturé en fonction des instances consommées par le cluster EKS, mais au regard de l'exact niveau de puissance machine utilisée par les containers tournant dessus."

Azure distancé pour le moment

Qu'en est-il du côté de Microsoft ? Certes son service Kubernetes (Azure AKS) bénéficie déjà d'une brique comparable à Fargate (baptisée Containers Instances) lui permettant de s'abstraire du IaaS, mais l'offre de Redmond (actuellement en bêta publique) n'en affiche pas moins deux gros manques comparé à ses concurrentes. D'abord, AKS n'est pas encore capable de gérer l'hébergement d'un cluster sur plusieurs zones Azure (une demande a été soumise à Microsoft en ce sens). Ensuite, le service ne propose pas, à la différence de GKE et EKS, de dispositifs pour personnaliser la configuration d'un cluster Kubernetes.

En l'état, c'est donc la solution de Google qui tire son épingle du jeu. "Du fait de sa forte implication dans le projet open source Kubernetes et ses développements, Google est très réactif. Il intègre les nouvelles versions de l'orchestrateur plus rapidement que les autres. Pour les mêmes raisons, il est mieux placé pour intégrer efficacement et rapidement de nouvelles fonctionnalités de Kubernetes à son produit", analyse Alexis "Horgix" Chotard. Quant à Azure AKS, malgré ses manques, "c'est un produit très satisfaisant et bien intégré." Mais Amazon se situe clairement en embuscade. Son offre devrait sortir en version finale d'ici juillet prochain. A suivre.