Dockercon 2015 Barcelona

| 10 minutes read

DockerCon Moby Dock with Lego

Moby Dock en Lego

La Dockercon Europe 2015 était le 2nd rdv européen des afficionados de Docker ; afficionados dont nous faisions déjà partie en 2013 : devops et virtualisation, 2014 : Devops trenches, et 2015 : Docker cron job

Nous étions donc présents à Barcelone les 16 et 17 novembre, pour ce rendez-vous incontournable qui a réuni plus de 1500 personnes, développeurs, devops, ops, venus du monde entier.

Pour commencer, on peut féliciter Solomon Hykes et toute son équipe pour la réussite de cet évènement. Tous les ingrédients étaient réunis pour satisfaire l’appétit de la communauté d’utilisateurs et de contributeurs : une mise en scène millimétrée, des surprises, des annonces, des speakers de qualité et très accessibles, des goodies.

 

Dev vs Ops

Arrêt sur image : un ops veut étrangler le dev suite à une malveillance de sécurité

 

Il faut dire aussi que l’évènement va de pair avec les chiffres vertigineux qui ont été annoncés pour 2015 :

  • 240K applications dockerisées
  • 60M de projet liés à Docker sur GitHub
  • 157% de contributeurs en plus
  • 1.3 Milliard de pull sur le hub depuis janvier 2015
  • 5.6 Millions de pull sur le hub par jour
  • soit 65 pull par secondes

Les 3 grands thèmes abordés pour cette édition :

  • Utilisabilité
  • Sécurité
  • Scalabilité

Utilisabilité

De nombreuses améliorations ont été apportées pour faciliter l’adoption et améliorer l’expérience des utilisateurs :

  • Meilleur support pour OS X et Windows à travers la toolbox et plus particulièrement l’interface graphique Kitematic pour le démarrage d’un container en quelques clicks
  • Beaucoup de fix sur le docker Engine dont la correction du bug bloquant lors du push/pull concurrent d’images sur le registry (blocage du daemon Docker)
  • 2 évolutions très attendues :
    • La capacité de gestion d’un réseau privé entre conteneurs via libnetwork
    • La gestion des volumes selon un cycle de vie indépendant du conteneur
  • Refonte de l’architecture pour favoriser l’utilisation de plugins : pour le réseau, les volumes, la sécurité, etc.
  • Le support de Docker sur Windows Server 2016

Sécurité

La sécurité a toujours soulevé des interrogations pour le déploiement de Docker à une échelle industrielle. Comme l’indique, à juste titre, Solomon Hykes :

“Developers usually don’t care about security. They care about developing features. They need usable security.”

Il a alors souligné les nombreux efforts qui ont été fait dans ce domaine. L’idée principale étant de décharger les développeurs des tâches de sécurisation des containers, et d’apporter aux opérationnels des facilités pour la configuration de la sécurité à tous les niveaux.

Sécurisation du registry

L’un des points critiques concerne la réutilisation d’image dans un registry public ou privé. Comment garantir la provenance et le contenu des images téléchargées ?

Sur ce sujet, plusieurs solutions sont en cours d’expérimentation :

Le projet Nautilus

Docker nautilus project

Nautilus permet d’intégrer, de façon native, un moteur qui scanne les images présentes dans le registry, afin de détecter les vulnérabilités possibles.

Cette vérification concerne non seulement les accès au système invité (système embarqué dans le conteneur), mais aussi, les applications déployées à l’intérieur de celui-ci.

Une solution de self-service devrait voir le jour d’ici quelques mois, afin de permettre aux utilisateurs d’activer Nautilus sur leurs propres images.

Notary et Docker content trust

La solution Notary est une solution Open Source permettant de s’authentifier et de signer une image pour en garantir la provenance. Elle est intégrée à Docker depuis la version 1.8.

Encodage Hardware avec Yubico

Plongés dans une ambiance digne de James Bond ou de Mission Impossible, Solomon Hykes nous a proposé :

“Votre mission, si vous l’acceptez, sera de contribuer à la sécurisation des images Docker.”

Suspense !! Une petite clé Ubikey était cachée entre chacun des fauteuils de la salle de conférence !

Docker Ubikey

Docker Ubikey

Intégrée au système notary, cette puce de la taille d’une carte SIM, fournit une solution de cryptographie hardware permettant la génération des clés pour signer une image avant de la pousser dans le registry.

Combiné au système “touch-to-sign”, l’interaction humaine lors de la signature est obligatoire. Une fonction de rotation de clés permet de régénérer des nouvelles paires de clés en cas de vol des clés initialement générés tout en garantissant l’intégrité des images Docker.

Sécurisation du daemon Docker

De nouvelles fonctionnalités sont en cours de développement pour sécuriser l’accès au Daemon Docker via les systèmes d’authentification les plus courants : Kerberos, LDAP, SASL, PAM, LDAP, Client Certs, Unix user. Chacune des implémentations sera mise à disposition sous forme de plugin.

En complément, un plugin (AuthZ) sera mis à disposition pour permettre l’implémentation des autorisations sur le daemon : quel utilisateur peut lancer quelle commande du daemon ?

Sécurisation des conteneurs

L’isolation est un autre point observé attentivement par les opérationnels.

Docker container isolation

En complément des éléments livrés en version 1.9, deux nouvelles solutions sont en cours d’expérimentation :

  • Usernamespaces : l’utilisateur root du conteneur n’est pas root sur le système hôte
  • Seccomp : filtrage des appels systèmes via l’utilisation d’un profil lors du démarrage du conteneur

Scalabilité

Dans ce domaine, l’équipe Docker a démontré les capacités de déploiement à grande échelle.

Une démo proposait de déployer sur le cloud AWS, 50 conteneurs * 1000 nœuds, soit 50000 containers au total. Il a fallu seulement 1 heure pour démarrer l’ensemble des conteneurs !

La keynote du mardi matin, était dédiée à la présentation de 2 solutions intégrées à l’offre Docker : Tutum et Docker Universal Control Plane

Tutum

Racheté le mois dernier et intégré à l’offre globale, Tutum est une solution cloud qui permet de déployer et de gérer des conteneurs Docker.

L’outil propose les fonctions suivantes :

  • Connexion aux registry public/privé
  • Déploiement de conteneurs sur différentes infrastructures : cloud public/privé, on premises
  • Monitoring du CPU, de la  mémoire, des disques et de la bande passante
  • Scheduling des déploiements en production

Docker Universal Control Plane

Cette nouvelle solution de déploiement et de monitoring est basée sur Docker Swarm et peut être déployée “on premises”.

Un programme beta est accessible sur le site de Docker.

L’écosystème et les exposants

Dans le hall d’exposition, les startupers côtoyaient les géants de l’écosystème (Microsoft et IBM). Chacun de ces acteurs proposait des solutions diverses : monitoring, orchestration, cloud, stockage, base de données, etc.

Nous avons notamment eu l’occasion de croiser nos amis toulousain d’OVH, qui présentaient l’offre d’hébergement SailAbove, ainsi que leur nouvelle offre IoT PaaS TimeSeries.

Parmi toutes les solutions présentées, l’une d’elle a vraiment attiré notre attention : Ruxit. Développé par Dynatrace, cette solution propose des fonctionnalités de monitoring et d’analyses de performances et de disponibilité de service, pour des applications embarqués dans des containers. Avec cet outil, chacune des défaillances peut être analysée dans le moindre détail, de bout en bout : du navigateur de l’utilisateur, jusqu’à l’infrastructure, en passant par le serveur applicatif ou la base de données.

L’intelligence du système réside dans cette capacité à naviguer entre les différentes couches de l’application et dans la détection des sources de défaillance. Pour finir, Thomas Rothschädl nous a indiqué que l’outil avait été développé from scratch, avec une démarche Lean, ce qui a probablement contribué à cette sensation de forte valeur ajoutée.

Mise en perspective, maturité, adoption et tendances à moyen terme

Docker est une technologie mature. Son feature set est désormais bien articulé et couvre l’ensemble des ressources qui peuvent être (micro) virtualisés et compartimentés (calcul, mémoire vive, réseau, stockage persistent). La solution Docker Swarm facilite la création des clusters et la distribution des containers à travers de ces clusters.

Docker a récemment mis un grand effort sur la qualité et l’utilisabilité de sa technologie ce qui se résume en des nombreuses bug fixes accumulés lors sa phase de maturation. Les avancées dans la sécurisation de la technologie donne de moins en moins d’arguments aux détracteurs qui ont tendance à retarder l’adoption pour ces raisons. Les développements continuent et se focalisent notamment sur ces thèmes :

  • de sécurisation des contextes d’exécution,
  • de structuration des outils (plumbing project),
  • l’introduction des nouveaux points d’extension,
  • la gestion des volumes,
  • l’amélioration des APIs,
  • l’introduction des techniques de snapshotting.

Comme de nombreux témoignages ont pu le démontrer lors de cette conférence (Schipsted, Oxford University Press, Salesforce, Eurecom), Docker est aujourd’hui adopté pour la construction des PaaS privatifs ou publics, la création des grilles de calcul et la distribution des livrables (shipping) de technologies hétérogènes au sein des chaines d’intégration et de déploiement en continu (CI/CD). Il s’agit des témoignages d’organisations qui ont commencés l’utilisation de Docker entre 2013 et 2014. Naturellement, des solutions de création des PaaS CaaS privatifs (Deis, DCOS, Kubernetes) ainsi que les hébergeurs cloud se positionnent (OVH Sailabove, Amazon ECS, etc).

La philosophie de Docker est “Batteries included but swappable / removable”.

Docker est un ensemble d’outils relativement simple et composable permettant une adoption rapide à petite échelle et une industrialisation graduelle de son usage. La philosophie de Docker est “Batteries included but swappable / removable”. Docker fournit des implémentations de base pour les fonctions comme par exemple la gestion de la persistance des volumes ou la définition des Software Defined Networks (SDNs). Lorsque ces implémentations fonctionnent bien à petite échelle, elles peuvent sembler naïves à des échelles industrielles. Par exemple il manque aujourd’hui le chiffrage des SDNs dans son implémentation par défaut. C’est ici où se positionnent les grands fournisseurs de solutions classiques (IBM, Hewlett Packard, Redhat, VMWare, NetApp, Cisco, etc). Ils implémentent des remplacements des implémentations par défaut, très fortement intégrés avec leur écosystème.

Une tendance du moment est l’arrivée dans l’écosystème Docker de nombreuses start-ups qui se focalisent sur des solutions de monitoring et de stockage répartis des volumes persistants. Lors de nos échanges avec les exposants, certains avaient une vision très techniques. Leur vision produit et leur modèle économique n’étaient pas toujours très clairs. En vue du nombre des acteurs dans ces domaines, nous nous attendons à une vague de consolidation dans les deux prochaines années.

Les architectures micro services, et par conséquence l’explosion du nombre de containers déployés sur des infrastructures de type PaaS/CaaS posent toujours deux majeures problèmes, dont les solutions sont variées et controversées :

  • La découverte des services et
  • la mobilité des containers dites statefuls (ceux qui contiennent des données) d’un nœud du cluster vers un autre nœud.

Avec une adoption de plus en plus large et des retours d’expérience différenciés nous nous attendons très prochainement à l’ émergence de meilleures pratiques qui répondent à ces questions.

Bert Poller Author: Bert Poller

Architecte SI, Artisan logiciel - J'aime programmer et concevoir des systèmes de toutes sortes.
D'origine allemande, polyglotte pas qu'en langages de programmation. Technophile, avec un regard critique sur le monde.
#JAVA #SCALA #DOCKER #REACTIVE #FP #DEVOPS #MESSAGING #DIGITAL_FABRICATION #SUSTAINABLE #COFFEE

Julien Boulay Author: Julien Boulay

Eclectic developer & architect
Activist for usability, performance and interoperability of systems.

My favorite quote : "The best feature is the one we don't need to develop !"

My hashtags : #windchill #java #talend #nodejs #angularjs #oss #docker

Like it?  Share  it!

Share Button
What do  You  think? Write a comment!

Leave a Reply

Required fields are marked *.


CommentLuv badge