Docker achève sa vision du Cloud 2.0

L'éditeur californien fait évoluer son orchestrateur de cluster et l'intègre au cœur du moteur Docker. La finalité : rendre possible le portage d'application containerisée en cluster.

A l'occasion de son événement mondial (la Dockercon US) qui se tient cette semaine à Seattle aux Etats-Unis, Docker lève le voile sur une nouvelle version de son moteur de container (Docker Engine 1.12). Une mouture pas tout à fait comme les autres. Elle représente en effet l'étape ultime de Docker et de sa vision d'une infrastructure informatique standard rendant les applications portables, d'un système à l'autre... et d'un cloud à l'autre.

Jusqu'ici, le Docker Engine se limitait à l'exécution d'un container. C'est-à-dire d'une enveloppe légère permettant d'embarquer une application unitaire pour la transporter. Pour monter une architecture applicative constituée de containers en cluster, il était jusqu'ici nécessaire de faire appel à une brique tierce : le moteur d'orchestration maison fourni par Docker, ou toute autre solution équivalente (par exemple Kubernetes de Google ou encore Mesos).

Le moteur Docker intègre un orchestrateur de cluster

Dans sa version 1.12, Docker Engine intègre désormais directement un orchestrateur (lire le post officiel de cette annonce). Lors d'une interview réalisée lors de la Dockercon Europe 2015, Sam Alba, directeur de l'ingénierie de Docker, nous avait confié alors travailler sur le sujet. "Nous envisageons de fusionner notre orchestrateur Swarm dans le Docker Engine. C'est une suite assez logique, ces deux composants disposent en effet de la même couche d'API", nous avait alors indiqué Sam Alba.

Docker Engine 1.12 embarque un orchestrateur multi-containers et multi-hosts. © Docker

Une nouvelle version en préparation depuis six mois

Six mois après, le projet sort donc des laboratoires de Docker. "Bénéficier d'un Docker Engine directement équipé d'une couche d'orchestration contribue clairement à simplifier le déploiement de containers en grappe. Au final, on aboutit aussi à une solution plus performante, et plus simple à mettre en œuvre en termes de point de montage par exemple", commente Fabien Amico, directeur général de Treeptik - une société de services française spécialisée dans les containers et proposant un cloud Java orienté Docker (CloudUnit). Au final, Docker 1.12 ne propose plus seulement de standardiser le container unitaire, mais toute l'architecture applicative.

Une solution d'orchestration également mieux aboutie

Ce n'est pas tout. La technologie d'orchestration livrée avec Docker Engine 1.12 se veut également mieux aboutie que ce qu'était Swarm. "C'est d'ailleurs sans doute là le plus important. Swarm était taillé pour répondre aux cas d'orchestration simples. La page GitHub du projet le précisait clairement", note Fabien Amico. "L'orchestrateur de Docker Engine 1.12 a été conçu, lui, pour gérer les clusters en production. Il améliore notamment le traitement de l'équilibrage de charge, de la résilience en cas défaillance sur un nœud, ainsi que la mise à disposition de services distribués". A ces dispositifs, Docker Engine 1.12  ajoute encore une couche de cache gérée en mémoire pour optimiser la performance de l'ordonnance des tâches au sein d'une grappe.

Mais Docker Engine 1.12 a aussi pour but de répondre aux problématiques de sécurité. Il génère des certificats et leur distribution au sein des différents nœuds d'un cluster en vue d'authentifier et de chiffrer les communications au sein de l'architecture.

Docker Engine 1.12 s'adosse au système de cryptage TLS pour sécuriser les transactions au sein d'un cluster de containers. © Capture Docker

"En livrant ainsi une solution de gestion d'architecture de containers nativement intégrée au Docker Engine, Docker propose désormais une alternative crédible aux orchestrateurs de containers comme Kubernetes de Google ou Apache Mesos", estime Fabien Amico. "Nous avons testé Docker Engine 1.12 en configuration de cluster. C'est une solution mûre."

Migrer une application en cluster d'AWS à Azure, et réciproquement

En parallèle, Docker annonce la disponibilité d'images de Docker Engine 1.12 pour les clouds d'Amazon (AWS) et de Microsoft (Azure). Elles doivent permettre de monter une application clusterisée sur l'un des deux IaaS, avec la possibilité de la migrer aisément sur l'autre.

Toujours à l'occasion de cette Dockercon US 2016, Docker annonce la disponibilité en version bêta publique des clients Docker pour Mac et Windows 10 (lire le post de cette annonce). 

Docker