Les atouts et faiblesses de quatre offres de Containers as a Service

Les atouts et faiblesses de quatre offres de Containers as a Service Amazon, Microsoft, Google et OVH ont tous retenu Docker. Mais ils se différencient dans le choix de l'orchestrateur et l'intégration plus ou moins poussée aux services associés.

Le monde du cloud ne pouvait ignorer le phénomène Docker. Dès fin 2014, Amazon Web Services (AWS) et Google commercialisaient chacun un service cloud de gestion de containers - ou Containers as a Service (CaaS). En 2015 et 2016, c'était au tour de Microsoft Azure et OVH de s'engager dans cette voie. Depuis leur lancement, ces quatre offres ont nettement gagné en maturité. "Nous ne sommes plus dans l'annonce marketing", constate Pablo Lopez, CTO du cabinet Xebia. Ces solutions sont aujourd'hui mieux intégrées aux autres services proposés par les fournisseurs. Elles permettent aussi de gérer plus finement la disponibilité des applications via des orchestrateurs. "Si on décide que tel service doit être hautement disponible, il est possible de paramétrer le lancement automatique de nœuds pour éviter toute interruption", pointe l'expert. Tous les providers de cloud proposent par ailleurs un "registry" privé, pour stocker les images Docker. "Comme les images sont hébergées au plus près de l'endroit où elles vont être exécutées, les temps de latence s'en trouvent réduits", approuve Pablo Lopez. De même, les prestataires pilotent désormais la persistance des données - par la duplication des containers sur différents serveurs hôtes. Un élément souvent présenté comme l'un des principaux points faibles de la technologie Docker.

Comparatif des principales offres de Containers as a Service

Offre / date de lancement

Tarification

Points forts

Points faibles

Amazon EC2 Container Service (novembre 2014) Service gratuit. Paiement des ressources AWS (instances EC2, volumes EBS…) pour stocker et exécuter une application. - Intégration dans l'écosystème d'AWS,
- Technologie éprouvée d'autoscalling.
- Outil d'orchestration maison,
- Intégration avec Amazon Lambda non native.
Azure Container Service (novembre 2015) Service gratuit. Paiement des VMs (à partir de 10,97 euros par mois), du stockage associé et des ressources réseaux consommés. - Large choix d'orchestrateurs open source (Kubernetes, Docker Swarm, Mesos DC/OS),
- La possibilité de containers / clusters Windows
- Jeunesse de l'offre,
- Complexité tarifaire.
Google Container Engine (novembre 2014) Service compris dans le tarif des instances Google Compute Engine. Pour le management des clusters : gratuit jusqu'à 5 machines virtuelles, 0,15 dollar de l'heure au-delà. - La puissance de Kubernetes, l'outil d'orchestration de Google,
- Le savoir-faire de Google dans la gestion des containers.
- Relative jeunesse de l'offre, 
- Paiement pour la gestion du cluster.
Managed Docker with Marathon d'OVH (avril 2016) 4,99 euros par nœud et par mois pour la configuration d'entrée de gamme (la seule actuellement disponible). - Expertise de l'hébergement,
- Acteur français.
- Jeunesse de l'offre , 
- Nombre de configurations limité (outil d'orchestration Marathon).

1. Amazon ECS, l'écosystème du leader

AWS a été le premier à proposer un service de gestion de conteneurs Docker. Il s'agit d'Amazon EC2 Container Service (ECS). Ce service cloud permet d'exécuter des applications containerisées sur un cluster d'instances EC2. Pour Pablo Lopez, un des atouts d'ECS réside dans sa technologie éprouvée de mise à l'échelle (ou autoscalling). "Elle permet de poser des règles sur une cluster en ajoutant automatiquement des nœuds si, par exemple, la puissance CPU dépasse une certaine limite", explique le spécialiste.

AWS met aussi en avant l'intégration d'ECS à ses autres services cloud, notamment en matière d'identification et de contrôle d'accès. Pablo Lopez regrette toutefois que Lambda, le service de calcul "serverless" d'Amazon, ne puisse pas se lancer nativement depuis les containers. "Il existe une stratégie de contournement en passant l'interface REST de Lambda. Cela exige toutefois du code et de l'intégration manuelle", détaille Pablo Lopez. Autre grief : le choix d'AWS de recourir à son propre système d'orchestration de containers. Bien que proche de l'orchestrateur Marathon, ce n'est pas un outil open source comme lui. Ce qui peut contribuer à créer une dépendance vis-à-vis du prestataire américain.

2. Google Container Engine, l'atout Kubernetes

Pour son service de CaaS, Google capitalise sur son expérience d'une dizaine d'années dans la gestion de containers en volume. Google Container Engine (GKE) s'appuie sur la puissante plateforme IaaS, Google Compute Engine (GCE), mais aussi et surtout sur Kubernetes : l'outil open source d'orchestration de conteneurs créé par Google - et que le groupe utilise pour ses propres applications.

Autre avantage de GKE : le pilotage de l'autoscalling est réalisé au niveau de l'orchestrateur. Si l'infrastructure atteint ses limites, Kubernetes pourra lui ajouter automatiquement des nœuds de serveur supplémentaires. "Cette fonction est toutefois encore en bêta", tempère Pablo Lopez. Google conseille d'ailleurs de l'utiliser dans la limite de cent machines virtuelles. A la différence d'AWS et Azure, Google fait payer le management du cluster au-delà de 5 nœuds, à raison de de 0,15 dollar de l'heure.

3. Azure Container Service, un positionnement multi-orchestrateurs

Bien que parti après AWS et Google, Azure est le seul fournisseur de notre comparatif à proposer les trois grands orchestrateurs open source : Mesosphere DC/OS, Kubernetes et Docker Swarm. Un positionnement qui a pour but de faciliter la migration d'une application hébergée en interne vers le cloud de Microsoft.

Azure Container Service (ACS) permet ainsi, selon Hervé Leclerc de l'agence digitale Alter Way, de répondre à la plupart des cas d'usage. "Un grand groupe va choisir Kubernetes ou Mesosphere DC/OS, une petite société s'orientera vers Swarm. Cela donne plus de souplesse dans les projets", note le directeur technique.  Le récent rachat de Deis, un spécialiste des outils pour Kubernetes, par Microsoft ne fera que renforcer ce positionnement comme l'explique Scott Guthrie, le patron du cloud de Microsoft, dans un billet.

Autre atout, le déploiement de containers sur des clusters Azure est facilité par Azure Ressource Manager (ARM). Dans une approche industrielle, ARM permet de déployer, mettre à jour, dupliquer un ensemble de ressources. L'architecture pourra aussi tirer profit des services Azure d'équilibrage de charge ou de pare-feu. Enfin, Microsoft oblige, Azure offre la possibilité d'opter pour des containers Linux ou Windows (cette dernière option est toutefois en version préliminaire pour l'instant).

4. Managed Docker with Marathon : OVH monte en gamme

Gros changement dans l'offre de CaaS d'OVH en un an. SailAbove, sa solution de CaaS qui se contentait de créer, lancer et exécuter des containers, a laissé place à une offre plus ambitieuse. Comme son nom l'indique, Managed Docker with Marathon s'articule autour d'un moteur d'orchestration (Mesos Marathon). Une brique qui faisait cruellement défaut à SailAbove.

Nettement plus haut de gamme, le nouveau service, présenté en avril 2016, s'oriente vers la prise en charge de systèmes en production. Marathon est conçu pour gérer la montée en charge d'une architecture Docker en dupliquant les containers ou en leur allouant des ressources machines supplémentaires. En version gamma (dernière étape avant la commercialisation), Managed Docker with Marathon est pour l'heure proposé via une configuration unique (avec 2 Go de RAM et 1 vCPU de 2,4 GHz). Le lancement de deux autres configurations plus puissantes est annoncé sur le site de l'hébergeur français.

Des systèmes de facturation désavantageux

Les quatre acteurs passés au crible dans ce comparatif proposent le même système de facturation, basé sur la consommation de machines virtuelles (VM). "Il n'est pas très avantageux. Pour un seul container qui utilise peu de ressources, il implique de payer l'intégralité d'une VM", regrette Pablo Lopez chez Xebia. Un mode de paiement qui a incité Alter Way à lancer sa propre offre de Container as a Service reposant sur le principe du "pay as you go". "Nous ne vendons pas de la VM", avance Hervé Leclerc. "Si le service tourne une seconde, il sera facturé une seconde." 

A lire aussi : 

Amazon Web Services / Docker