AWS avance dans les containers : un Kubernetes managé (enfin) et Fargate

AWS sort enfin un service Kubernetes managé, se hissant au rang de Google et de Microsoft. Le n°1 du Iaas entend également faire des containers un citoyen de première classe sur son infrastructure avec Fargate.

AWS a profité de sa conférence Re :Invent qui se tient actuellement à Las Vegas pour étoffer un peu plus son portefeuille de services dédiés aux containers. A la clé, l’annonce d’un Kubernetes managé nommé Elastic Kubernetes Service (EKS) et Fargate, dont la vocation est de considérer les containers sur AWS comme le sont les machines virtuelles sur EC2. Ces deux services viennent épauler Elastic Container Service, le service de gestion des containers d’AWS déjà en place.

Kubernetes sur AWS, mais managé

Jusqu’alors, il était bien possible de déployer des clusters Kubernetes sur AWS. D’ailleurs, rappelle AWS (citant les chiffres de la Cloud Native Computing Foundation), 63% des workloads Kubernetes sont motorisées par AWS. Toutefois, cela nécessitait de configurer à la main nombre de paramètres pour disposer d’un cluster opérationnel, scalable et doué de capacités de haute disponibilité (comprendre correctement distribué).  Certains outils permettaient ces déploiements et sa maintenance opérationnelle, comme, par exemple, Kops (Kubernetes Operations), ou encore conjure-up.

C’est justement ce problème qu’EKS entend résoudre. Comme avec les autres services AWS, le groupe prend en charge la configuration de l’infrastructure et ses difficultés, et connecte étroitement son service aux autres de la marque. Dans ce cas, cette intégration porte sur Elastic Load Balancing, IAM pour l’authentification, Amazon VPC pour isoler les workloads, AWS PrivateLink pour les accès aux réseaux privés et AWS CloudTrail pour les logs.

Selon AWS, EKS repose sur la version upstream de Kubernetes et reste ainsi totalement compatible avec les autres déploiements standards de la solution (cloud ou pas). Cela installe une forme de continuité entre EKS et les installations déjà en place.

Le lancement d’un Kubernetes managé sur AWS n’est finalement pas une surprise. Et ce, à plusieurs titres.  On pouvait certes s’attendre à ce que le n°1 du Iaas fasse de Kubernetes un citoyen de première classe de son infrastructure en rejoignant à l’été dernier la Cloud Native Computing Foundation (CNCF – qui encadre le projet Open Source). Mais, avec EKS, AWS vient surtout – et c’est assez rare – combler son retard par rapport à Azure et Google (le 2e et 3e du marché du Cloud, derrière lui) qui avaient déjà fait une place de choix à Kubernetes au sein de leur infrastructure. Microsoft Azure Container Service supporte en effet Kubernetes comme orchestrateur de clusters de containers, aux côtés de Swarm (Docker) ou encore de DC/OS (MesoSphere). Initiateur du projet Kubernetes, Google le supporte logiquement sur Google Cloud via son service Google Kubernetes Service.

Mais AWS a également fait le constat que parmi les moteurs d’orchestration de containers, Kubernetes est finalement celui qui a attiré la communauté des développeurs. Difficile de faire l’impasse donc. Docker a fait le même constat en décidant d’intégrer Kubernetes au côté de Swarm dans l’édition Enterprise de sa plateforme, après avoir pendant longtemps trainé des pieds. La Cloud Foundry Foundation, sous l’impulsion de Pivotal et Google, a de son côté donné vie au projet Kubo au sein de son Container Runtime. Ce projet consiste à rapprocher l’outil de déploiement multi-Cloud de la fondation, BOSH, et l’orchestrateur de container, pour en faciliter les déploiements et en faire le moteur opérationnel.

Fargate : une couche d’abstraction pour simplifier

Toutefois, pour AWS, cela ne semblait pas aller suffisamment loin. D’où l’idée derrière AWS Fargate (présenté également lors de ce RE : Invent 2017). Ce service vient cette fois-ci installer une couche d’abstraction entre l’infrastructure EC2 et les moteurs d’orchestration de containers que sont Elastic Container Service (ECS) et EKS (Fargate supportera EKS en 2018).

Avec Fargate, AWS propose en fait un service qui permet de placer, à un niveau d’utilisabilité identique, les containers et les machines virtuelles sur EC2, résume ainsi AWS dans un billet de blog. Car si ECS permet depuis longtemps de lancer des containers sur EC2, cela n’en reste pas moins difficile. « Avec ces solutions de gestion de containers, vous devez toujours prendre en charge les questions de disponibilités, de capacité et de maintenance de la couche infrastructure », souligne AWS, dans ce même billet de blog.

Concrètement, avec Fargate, AWS propose aux entreprises et aux développeurs une option plus abordable de déploiements de containers. Un déploiement de ECS et/ou EKS sur EC2 permet ainsi d’avoir d’accès à une granularité très fine des paramètrages de l’infrastructure et de disposer de grandes possibilité de personnalisation. Un déploiement d’ECS et/ou d’EKS via Fargate est géré par ce dernier, l’utilisateur n’a qu’à entrer ses exigences en matière de CPU et de mémoire pour son application.

Fargate est facturé à la taille de la tâche (qui définit par exemple l’image à exécuter) ainsi que les ressources que cette tâche utilise. La consommation de CPU et de mémoire est facturée à la seconde.

 

Pour approfondir sur IaaS