Top Banner
Contexte Conteneurisation et partage Dockerfile DockerHub Registre privé Intégration continue Docker Compose Gestion de pics de charge Workflow Conclusion Webinaire Docker : retour d’expérience Cécile Cavet ccavet at apc.in2p3.fr Centre François Arago (FACe), Laboratoire APC, Université Paris Diderot 16 Juin 2016 C. Cavet Webinaire Docker
21

Webinaire Docker : retour d'expérience

Jan 05, 2017

Download

Documents

duongkien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Webinaire Docker : retour d’expérience

Cécile Cavetccavet at apc.in2p3.fr

Centre François Arago (FACe), Laboratoire APC, Université Paris Diderot

16 Juin 2016

C. Cavet Webinaire Docker

Page 2: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Plan

1 Contexte

2 Conteneurisation et partage

3 Intégration continue

4 Gestion de pics de charge

5 Conclusion

C. Cavet Webinaire Docker

Page 3: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Cas d’utilisation de Docker à l’APC

Projets scientifiques :Ù LISAPathfinder (2015, succés !) / eLISA (2029) : encharge du proto-DPC (Data Processing Center)

conteneurisation et partage des applications :LPF : analyse des données de LISAPathfinder.LAL : analyse des données de LIGO.LISACode : simulateur d’ondes gravitationnelles.

mise en place de services :registre privé.intégration continue avec Jenkins et Sonar.

workflow : gestion de pics de charge Ù R&TCNES/Atos.

C. Cavet Webinaire Docker

Page 4: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Cas d’utilisation de Docker à l’APC

Projets scientifiques :Ù Besoin de la boite à outils Docker :Engine, Compose, Registry, Machine...

C. Cavet Webinaire Docker

Page 5: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Cas d’utilisation de Docker à l’APC

Mode d’utilisation :sur le cloud : VM Linux + Docker Engineen local (Mac OS X) : Docker Machine + VM.

Virtualisation : VirtualBox.OS : Boot2Docker.

Figure: Linux vs OS X @Docker.C. Cavet Webinaire Docker

Page 6: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

1ère utilisation : conteneurisation etpartage des applications

Figure: Cycle de vie @Docker.

C. Cavet Webinaire Docker

Page 7: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Conteneurisation et partage desapplications

Dockerfile :Conteneurisation : création d’images Docker.

Code scientifique (LISACode).Librairies (hdf5...).Librairies spécifiques (LAL).

Format spécifique (proche script shell).

C. Cavet Webinaire Docker

Page 8: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Création d’images Docker

Figure: Chaîne de processus @ http://fr.slideshare.net/s-brinkmann/

locally-it-worked-virtualizing-docker.

C. Cavet Webinaire Docker

Page 9: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Conteneurisation et partage desapplications

Docker Hub : Registry publicPartage des images Docker :

SaaS : service hébergé sur le cloud.Construction (build) automatique d’images :

Dépôt public : GitHub ou Bitbucket pour leDockerfile et le Readme.Construction de l’image quand nouveau commitsur le dépôt.Branches : à la demande (par ex. latest / develop).

C. Cavet Webinaire Docker

Page 10: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Docker Hub

Figure: Compte public du DPC de LISA.

C. Cavet Webinaire Docker

Page 11: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Conteneurisation et partage desapplications

Registre privé :Partage des images Docker :

Code non public.Création d’images manuelle.

VM cloud :Serveur Web simple (sans interface) avec DockerCompose : conteneurs Ù Registry et Nginx.Sécurité : certificat.Nom de domaine : myregistrydomain.com Ù IP.

C. Cavet Webinaire Docker

Page 12: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

2ème utilisation : intégration continue

C. Cavet Webinaire Docker

Page 13: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Intégration continue

Docker Compose :Multi-conteneurs reliés.Image : construction à la volée ou utilisation d’unregistre (public, privé, local (Docker Host)).Format : YAML.

C. Cavet Webinaire Docker

Page 14: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Intégration continue

Docker Compose :Même instructions que le CLI Docker (liens, ports,volumes...).Conteneurs Jenkins, Sonar et MySQL :

$ docker-compose up -d$ docker-compose ps

Name Command State Ports----------------------------------------------myjenkins /bin/tini -- /usr... Up 0.0.0.0:8080mysql entrypoint.sh mysqld Upsonar ./bin/run.sh Up 0.0.0.0:9000

C. Cavet Webinaire Docker

Page 15: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Interface Web de Jenkins

C. Cavet Webinaire Docker

Page 16: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

3ème utilisation : gestion de pics de charge

Figure: R&T APC/CNES/Atos @M. Poncet, BiD’S 16.

C. Cavet Webinaire Docker

Page 17: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Gestion de pics de charge

Multi-outils :Conteneurisation d’une application : LPF

code privé (industriel).algorithme MCMC (MATLAB/C++), parallèle(MPI), librairies (LAPACK...).

Partage de l’image : registre privé sur une VM cloud.Exécution hybride : cluster HPC du CNES / VM ducloud Helix Nebula (Atos) + conteneurs.Gestion des ressources : Mesos ; des jobs Docker :Chronos.Ref. : Poncet et al., Enabling collaboration between space agencies

using private and cloud based clusters, BiDS’16 (2016)

C. Cavet Webinaire Docker

Page 18: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Workflow

Figure: R&T APC/CNES/Atos @M. Poncet, BiD’S 16.

C. Cavet Webinaire Docker

Page 19: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Conclusions

Expérience très positive :multi-applications.multi-services.multi-workflows.Ù Docker permet de faire tout !

beaucoup de doc, tuto, blog, meetup...Ù Enorme communauté.

C. Cavet Webinaire Docker

Page 20: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Conclusions

Quelques problèmes :registre privé pas encore complet.pas natif sur Mac et complexité pour les utilisateurs :OS local + OS VM + conteneurs Docker.mais dans un futur (proche) :

sur le cloud : gestion directe des conteneursDocker.en local (Mac OS X) : petite VM (Unikernels).

Future :construction automatique des images avec Jenkins(CloudBees pluging).

C. Cavet Webinaire Docker

Page 21: Webinaire Docker : retour d'expérience

Contexte

Conteneurisationet partageDockerfile

DockerHub

Registre privé

IntégrationcontinueDocker Compose

Gestion de picsde chargeWorkflow

Conclusion

Questions ?

C. Cavet Webinaire Docker