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.
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).
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.
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.
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
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 :
Formations Docker à Paris