• 24 novembre 2015

    Velocity 2015 |Compte-rendu du débat sur Docker

    Pour rappel, Docker permet de mettre en place rapidement des environnements de développement grâce aux Linux Containers (LXC). Docker rime avec rapidité et agilité et a trouvé très rapidement écho chez beaucoup de développeurs.

    Malgré l’engouement qu’il suscite, Docker doit encore convaincre les Ops sur certains points. Vous trouverez un résumé des échanges lors des conférences sur la sécurité de Docker et au « Velocity Debate » qui avait pour thème « L’utilisation de Docker en production ». Il est tout de même à noter que la majorité des participants ont un avis très tranché sur le sujet Docker. (Valérian Beaudoin- ITWO chez Oxalide).

    Pourquoi Docker est si peu répandu en production ? Cette réponse n’est en réalité pas si simple.

    Points de vigilance forts (Cons)

    • Ajout de complexité à l’infrastructure
      • C’est une couche supplémentaire
      • Un hôte est toujours derrière un Docker, un outil est nécessaire (Chef ou d’autres technologies d’automatisation) pour le manager
      • Les processus dans différents Docker sont difficilement différentiables
    • Responsabilité, stratégie et transfert de compétences
      • La facilité de déploiement de nouvelles technologies peut poser des problèmes lors d’incidents par l’Ops. En cas d’incident, comment les Ops peuvent traiter un élément dont ils n’ont pas la maîtrise et la responsabilité ?
      • Les façons de déployer et de travailler avec Docker varient d’une personne à l’autre. Y-a-t-il des bonnes pratiques/politiques communes de mise en œuvre de Docker ?
      • Le réseau, un des éléments le plus souvent minoré. L’utilisation d’une VM dans un réseau et une architecture est portée par l’Ops. Est-ce que le Dev doit élargir son périmètre avec des compétences d’Ops ?
    • Problèmes de sécurité : le FS du container est RW sur l’hôte (Attention aux clouds publics !)

     

    Docker n’est clairement pas prêt pour faire du multi-tenant,si on s’intéresse à la sécurité des conteneurs Linux, l’isolation peut ne pas être si robuste.La surface d’attaque reste importante (Kernel Attacks, Images docker empoisonnées, Déni de Service, etc.).

    Réduire cette surface d’attaque impose des contraintes à prendre en compte telles que la mise en place d’un File System en Read Only ou encore interdire la communication entre conteneurs (impose l’utilisation de la commande « link »). Une des bonnes pratiques serait de placer ces conteneurs dans des Virtuals Machines (VMs) via VMware par exemple pour sécuriser son environnement. (Benjamin Rabiller – ITWO chez Oxalide).

    Par contre, son utilisation dans un contexte de single tenant réduit beaucoup les problématiques (Ludovic Piot – Responsable du pôle Conseil, Architecture et DevOps chez Oxalide) pour :

    • Des fins d’isolation de versions de stacks techniques (j’ai besoin de PHP v.X, mais aussi PHP v.X+1 et je veux les héberger sur le même système).
    • Permettre des mécaniques de mutualisation de ressources pour multiplier des instances d’une même stack technique (je veux pouvoir faire du blue/green deployment en spawnant les process sur les mêmes systèmes)
    • Permettre de réutiliser les mêmes docker images que celles utilisées sur les environnements de test amont (dev, recette, préprod)

    Pros

    • Facilite le partage et l’exécution sur n’importe quel environnement
    • Switch rapide grâce aux micro-services disponibles
    • Il fait une seule chose et le fait bien (Philosophie UNIX)

     

    L’arrivée d’une nouvelle technologie comme Docker bouscule l’existant et fait débat de part son engouement et sa jeunesse. Au-delà des considérations techniques, Docker se situe entre 2 chaises, celle du Dev et celle de l’Ops. La principale inquiétude vient de la politique générale de mise en œuvre. Quels sont les périmètres de chacun ? Où placer les responsabilités ? Comment l’intégrer correctement au sein d’une organisation. Poser ces questions permettent de poser un objectif : celui d’avoir une production stable et maîtrisée avec Docker (comme toute autre nouvelle technologie). Le DevOps apporte des réponses où la montée en compétence et les responsabilités doivent s’appuyer sur le partage et la collaboration quand tout reste encore à expérimenter et à construire.

Newsletter

Inscrivez-vous et tenez vous au courant de l’actualité Oxalide