Skip to content

Latest commit

 

History

History
116 lines (76 loc) · 4.38 KB

20171207_Softeam_Docker.adoc

File metadata and controls

116 lines (76 loc) · 4.38 KB

12@13 Docker, en mission chez un client, en 2017

Abstract

Vous êtes en mission chez un client, et vous devez proposer une solution basée sur Docker!
Mais Docker en 2017 a considérablement évolué (Swarm, Kubernetes, containerd, runc, …​) depuis son début (mars 2013).

Cette présentation vous propose un rapide tour d’horizon de Docker en 2017, et insiste sur les points/pièges à connaître lorsque vous recommandez une solution "Docker", en mission chez un client.

En plus des slides, vous aurez accès à un article complet détaillant ce que je présenterai, avec de nombreux liens vers des articles.

Intro

Retour d’XP de Daniel sur sa mission à Amundi (mise en place de Docker from scratch)

Isolution (Container) vs VM

L’isolation du Container n’est pas préemptive. Par exemple, l’espace "alloué" est tout d’abord une indication ; il n’est pas consommé par défaut, contrairement à 1 VM

📎
Hyper-V est le gestionnaire de VMs (et de Containers) de Windows 10
Contrairement à ce que je pensais, Docker for Windows (10 Pro) va installer une toute petite VM Linux sur l’Hyper-V (MobiLinuxVM)

Host vs Guest

Host → Guest → Docker Engine → Tomcat container (by example)

Histoire de Docker

  • 2013 : Docker était un simple exe provenant de Go Lang.

  • 2016 : dockerd (daemon Docker même) séparé de containerd (daemon gérant les container) depuis 2016 : depuis Docker 1.12 en 2016
    Auparavant, si on voulait mettre à jour Docker, il fallait aussi killer tous les containers…​

    📎
    Rappel : Plusieurs containers peuvent tourner au sein d’un même Docker daemon.
  • 2017 : Apparition de Moby
    Nom du projet Open Source gérant toutes les briques composant Docker. Ajoute un aspect modulaire à Docker :
    Moby → Docker CE → Docker EE

What is Docker?

Docker fits between PaaS and IaaS.

Voir Pizza as a Service 2.0

Orchestration

Manages containers above different nodes.

DevOps est avant tout une culture.

Execution environment :

  • Docker Registry

  • ACL (Access Control List) ou RBAC avec Docker

  • deployment

  • monitoring

  • reporting

Points d’attention

Chercher sur Google "Docker Root please"…​
On tombe sur une image donnant, en 1 ligne, les droits roots sur la machine hébergeant les containers.

Il est donc IMPERATIF de mettre en place des contrôles sur les images pour être récupérées.

⚠️
Attention aux images Docker qui installent des fichiers en root sur le file system du host, ou qui créent de nouveaux utilisateurs sur la machine host.
Généralement les accès aux machines sont tracés, avec des utilisateurs bien définis. Les nouveaux utilisateurs précédents vont donc lever de nombreuses alertes…​

L’écosystème Docker évolue très vite ! Faire attention aux versions fournies par les plateformes éditeur (ex : Suze avec CASP - Container as a Platform)

Daniel nous parle également de clients mettant en place des VMs installées par Vagrant qui lancent des containers Docker.

Aller au-delà

Gestion des volumes : de plus en plus de solutions proposent leur propre driver de volume pour persister la couche Read / Write du container (qui est normalement perdue au redémarrage du container)

Trend :

  1. Build: Maven (pom.xml)

  2. Compilation: Jenkins 2.X (Jenkinsfile)

  3. Integration: Docker Composer (.yml)

  4. Deployment: Kubernetes

Pour toutes ces étapes, on retrouve une configuration par fichier texte. (bien pratique)

Ressources

  • slides (avec notes non visibles dans la présentation) disponibles sur GitHub, GitPitch et sur l’Intranet

  • play-with-docker.com / play-with-k8s.com, voir les slides pour récupérer les autres liens.