Docker : état des lieux des services Cloud

En à peine deux ans, Docker a révolutionné le monde du déploiement applicatif et fédéré l’industrie du cloud et du développement. En parallèle de cette évolution fulgurante, de nombreux services Cloud dédiés sont apparus chez les principaux Cloud Providers. Nous vous proposons ici un panorama des principales offres Cloud Docker disponibles sur le marché.

A chacun sa vision, ses particularités, et une réponse à des besoins spécifiques : cela va de la simple mise à disposition d’images Ubuntu avec Docker pré-installé, d’images plus évoluées telles que CoreOS ou Kubernetes afin de monter une infrastructure d’orchestration Docker, aux services d’hébergement de conteneurs, ou encore aux services d’orchestration as a service.

Déploiement de serveurs Docker Engine

Tous les cloud providers proposent des images avec Docker pré-installé :

  • Digital Ocean (Ubuntu, CoreOS, Dokku)
  • Azure (Ubuntu)
  • Rackspace
  • Amazon EC2
  • OVH RunAbove
  • Google Cloud Platform

Ce type d’offre permet à l’utilisateur de gérer lui même son instance Docker sans service supplémentaire. L’utilisateur peut choisir la taille de son instance, et payer ce qu’il consomme.

Hébergement conteneurs

SailAbove OVH : ce service issu des labs RunAbove d’OVH est encore en Alpha. Il est facilement testable et permet d’exécuter des conteneurs Docker hébergés sur le dépôt privé SailAbove. Au niveau de l’utilisation, il suffit d’utiliser le client Docker pour créer et builder son conteneur chez soi, puis de le pousser sur le dépôt SailAbove. Ensuite, il faut utiliser les outils Python en ligne de commande pour exécuter et gérer les instances de l’image envoyée. Voici un exemple pour une application Python.

AWS Elastic Beanstalk : ce service permet de déployer et gérer des applications Web via conteneurs Docker sur le cloud AWS sans se préoccuper de la gestion de la charge, du provisionnement, du monitoring, et de la répartition de charge. Pour l’utiliser, il suffit de créer une application avec les outils AWS (API, CLI, Console) et d’importer le Dockerfile ainsi que les fichiers de l’application.

D2SI_Blog_Image_Docker_ElasticBeanstalk

Avec orchestration as a service

Amazon EC2 Container Service : ce service (en preview) permet disposer d’un cluster hébergé sur AWS EC2. Il permet de lancer des applications dockerisées à la volée via une simple API, de gérer leur état de manière centralisée et de profiter des fonctionnalités des services EC2 (groupes de sécurité, volumes EBS, rôles IAM). De la même manière que les autres services d’orchestration de déploiement de conteneurs, il permet de gérer automatiquement l’allocation des conteneurs en fonction de différents critères fournis par l’utilisateur (niveau de ressources minimum, politiques d’isolation, nombre d’instances).

D2SI_Blog_Image_Docker_EC2_ContainerService

Google Cloud Platform – Container Engine :  ce service (en version Alpha) permet de disposer d’un cluster hébergé et géré par Google. Il est basé sur Kubernetes.

Il permet de déployer facilement via son API des applications dockerisées sans se préoccuper de savoir sur quel noeud elle va tourner, si les dépendances entre conteneurs seront respectées. Il est en outre possible d’utiliser l’autoscaler du service afin de déployer plusieurs instances de l’application. Le nombre d’instances minimal ou maximal à exécuter peut être précisé. L’idée est que si un noeud ou une instance disparaît, une nouvelle instance va être automatiquement déployée afin de respecter la contrainte précédemment fixée. Il existe aussi des contraintes sur les ressources minimales disponibles.

Dans tous les cas, c’est l’orchestration interne qui gère ça automatiquement.  J’ai pu assister à une démonstration lors du Meetup Docker chez Google Paris, et même si le service est en Alpha, la démo m’a impressionné. Voici la liste (non documentée) des commandes utilisées pendant la démo.

D2SI_Blog_Image_Docker

Online.net, l’outsider

Online.net (groupe Iliad) a pris le parti d’un choix complètement différent des autres hébergeurs. Adepte des solutions maisons, Online a développé sa propre baie à base de micro carte ARM. Chaque carte dispose de son propre CPU ARM quatre coeurs et de 2Go de RAM une carte Gigabit et 20Go de SSD local. La compacité de ce micro-serveurs permet de loger 912 serveurs par baie. Online travaille depuis plusieurs mois avec Docker afin d’adapter le Docker Hub Registry et de gérer les images de différentes architectures. Actuellement, il faut se contenter de chercher les images générées par Online via leur dépôt.

Online souhaite proposer à terme une offre basée sur la scalabilité horizontale et sur une multitude de coeurs ARM. Les applications hautement parallélisées devraient profiter pleinement de cette offre.

Pour avoir vu la démo d’Online, et essayé la preview de serveurs C1 avec des Docker ARM, les performances sont tout à fait honorables pour ces petites machines.

D2SI_Blog_Image_Docker_OnlineLabs

 

Drivers Docker Machine

Même si ce ne sont pas des offres du catalogue, certains Cloud Providers ont travaillé avec Docker pour fournir des drivers Docker Machine. Ces drivers permettent de déployer très rapidement et sans efforts de nouvelles instances Docker Engine via l’utilitaire Machine. En général, il suffit juste de disposer des paramètres d’authentification à l’API du fournisseur et de les fournir à Machine.

Voici la liste actuelle des drivers Machine :

  • Amazon EC2
  • Google Cloud Platform
  • Azure
  • Rackspace
  • DigitalOcean
  • OVH RunAbove
  • N’importe quel autre fournisseur de cloud basé sur OpenStack ou VMware vSphere / vCloud

D2SI_Blog_Image_DockerWhales

Il existe donc de nombreux services autour de Docker. Chacun en fonction de ses besoins, que ce soit pour essayer Docker, mettre en place un environnement de développement, ou même une infrastructure de production scalable et clusterisée, y trouvera son compte.

A voir si l’association de Docker Machine, Docker Swarm , et Docker Compose amènera d’autres services Cloud qui concurrenceront ou compléteront les services déjà fournis ou basés par CoreOS, Kubernetes, EC2 Container Service ?

Et vous ?  Dans quelle mesure pensez-vous que ce trio d’outils d’orchestration made in Docker va faire évoluer les offres de service ?

Docker sera présent lors du TIAD le 19 mars prochain. Evénement dédié à l’automatisation IT, The Incredible Automation Day vise à rassembler dev et ops pour créer un espace d’échanges et de discussions autour de l’automatisation. Inscriptions en ligne :

D2SI_Blog_Image_TIAD-TEASER

Formations Docker à Paris

D2SI_Blog_Image_DockerLogo

Commentaires :

A lire également sur le sujet :