@ndeloof @ludoch #Docker La Révolution Docker @ndeloof @ludoch CloudBees Google
May 24, 2015
@ndeloof @ludoch#Docker
La Révolution Docker
@ndeloof @ludochCloudBees Google
@ndeloof @ludoch#Docker
@ludoch @ndeloof
@YourTwitterHandle#DVXFR14{session hashtag} @ndeloof @ludoch#Docker
Wha
t ?
@ndeloof @ludoch#Docker
la « Virtualization »
•Hyperviseur type 1 « bare metal »
•Hyperviseur type 2 ~= émulateur
•Conteneur
@ndeloof @ludoch#Docker
Conteneur (« isolateur »)grouper, Isoler, contrôler un groupe de process
source: wikipedia.org
@ndeloof @ludoch#Docker
Conteneur (« isolateur »)Chaque « conteneur » expose une vision en totale isolation
✓ ProcessID indépendants✓ interfaces réseau, routage✓ droits utilisateur✓ sémaphores, files de messages✓ montages filesystem✓ …
@ndeloof @ludoch#Docker
Conteneur (« isolateur »)Chaque « conteneur » expose une vision en totale isolation
@ndeloof @ludoch#Docker
Conteneur (« isolateur »)
✓ Linux Namespaces + Control Group => LXC/LibVirt
✓ BSD Jails
✓ Solaris Zones
✓ Google LMCTFY
✓OSX, Windows ?
@ndeloof @ludoch#Docker
et Docker dans tout ça ?Repose sur les mêmes bases que LXC (libContainer)« Standing on the shoulders of giants »
•Fournit une interface simplifiée
✓Construction incrémentale des images (Dockerfile)
✓Distribution des images (Docker Index)
@ndeloof @ludoch#Docker
Révolution ???
@ndeloof @ludoch#Docker
Révolution ???
Why Docker ?
© anotherconf 2014 - all right reserved
@ndeloof @ludoch#Docker
ça vous dit quelque chose ?
@YourTwitterHandle@ndeloof @ludoch#Docker
Run
anywhere
sans b
lague ?
@ndeloof @ludoch#Docker
Java vs Docker“Run (anything ?) anywhere”
Linux devient le standard le plus portable.Pas Java OS
@ndeloof @ludoch#Docker
Java vs DockerLinux File System vs java.io.File
@ndeloof @ludoch#Docker
Java vs Dockersystem defaults (encoding, etc)
@ndeloof @ludoch#Docker
Java vs Dockerjava.time enfin!
@ndeloof @ludoch#Docker
Java vs Docker“just enough” environment
Java Profiles: la solution du pauvreJigSaw (really ?)
Dockerfile, images incrementales
@ndeloof @ludoch#Docker
Java vs DockerPackaging ✓ java 1.2 U432✓ maven repo ? ✓ package natif ?✓ npm ?✓ Docker image !
@ndeloof @ludoch#Docker
Java vs DockerMulti tenant (or lack of)
Java 7 8 9? 10? 11… Le future c’est la containerization !
@ndeloof @ludoch#Docker
Java vs DockerJava 8 et les streams, 100000 threads pour mon map-reduce ?
… ou 10000 containers x 10 threads ?
@ndeloof @ludoch#Docker
ConclusionDo not try to show more than 15 lines of code per slideRemember, your audience will READ the slides and won’t listenTry to take screenshot of your code in Eclipse or IntelliJ
Evitez de montrer plus de 15 lignes de code par slideSouvenez-vous que votre audience va lire le slide et ne vous écoutera pasEssayez d’utiliser des captures d’écran d’Eclipse ou IntelliJ
Docker et la conteneurization apportentde meilleures solutions
@YourTwitterHandle#DVXFR14{session hashtag} @ndeloof @ludoch#Docker
Run
anyw
here
pour
de vr
ai
@ndeloof @ludoch#Docker
Nouvelles pratiquesPortabilité
✓ Dev✓ Test✓ Perf✓ Staging✓ prod
@ndeloof @ludoch#Docker
Continuous Delivery
Jenkins
http://blog.loof.fr/2014/04/jenkins-meets-docker-round-1.htmlhttp://blog.loof.fr/2014/04/jenkins-meets-docker-round-2.html
@ndeloof @ludoch#Docker
packaging OPS-friendlyCeci n’est pas un livrable pour la prod
+
@ndeloof @ludoch#Docker
Separation of concernDans le conteneur/var/log/myapp
Sur l’hôte/mnt/backup/myapp/log
@ndeloof @ludoch#Docker
Separation of concernsDans le conteneur/var/log/myapp
Sur l’hôte/mnt/backup/myapp/log
VOLUME
@ndeloof @ludoch#Docker
UpgradeSystème hôte minimal
Upgrade = build d’une nouvelle image, chacun à son rythme
@ndeloof @ludoch#Docker
Diviser pour mieux régnerNon aux monolithes !
@ndeloof @ludoch#Docker
Diviser pour mieux régnerOui aux Micro-services ‣ « the unix way » ‣ domaine restreint‣ évolution rapide‣ quotas/resources dédiées
http://yobriefca.se/blog/2013/04/29/micro-service-architecture/
@ndeloof @ludoch#Docker
Micro-service avec Docker
LINK
@ndeloof @ludoch#Docker
@YourTwitterHandle#DVXFR14{session hashtag} @ndeloof @ludoch#Docker
Le ch
ange
ment
c’e
st
mainten
ant
@ndeloof @ludoch#Docker
Docker en prod !Google Cloud Platform
● boot2docker -> debian2docker dans GCE● Docker registry privé dans Cloud Storage● Docker images Google● LMCTFY contributions dans Docker● App Engine Managed VMs
@ndeloof @ludoch#Docker
LMCTFY
LMCTFY: Containers @Google depuis 2006. Contribution Docker en 2014http://www.linuxplumbersconf.org/2013/ocw//system/presentations/1239/original/lmctfy%20(1).pdf
@ndeloof @ludoch#Docker
Docker en prod !Google Cloud Platform
● https://index.docker.io/u/google○ cloud-sdk, docker-registry
● boot2docker contributions (en Go pour Windows)● https://github.com/unclejack/debian2docker● http://docs.docker.io/en/master/installation/google● https://github.com/GoogleCloudPlatform/docker-cloud● De 0 en 2 minutes: un Docker environnement sur GCE.● App Engine Managed VMs (demo demain!)
@ndeloof @ludoch#Docker
Docker en prod !
@ndeloof @ludoch#Docker
What’s next ?
@ndeloof @ludoch#Docker
Standard de factoAdoption progressive pas tous les acteurs Cloud et on-premises
@ndeloof @ludoch#Docker
ExtensibilitéSystème de fichier ‘union’‣ BTRFS‣ ZFS‣ …
Support de virtualization‣ Solaris Zones‣ BSD Jails
@ndeloof @ludoch#Docker
ToolingHébergementflynn: https://flynn.ioOrchard: https://orchardup.comStardock: https://stackdock.comTutum: http://www.tutum.coQuay: https://quay.ioRed Hat: http://www.projectatomic.ioAmazon, Google, CloudBees,Azure???...
Environnement de devfig: http://orchardup.github.io/figDrone: https://drone.io...
@ndeloof @ludoch#Docker
Exploitationmaestro-ng ?
@ndeloof @ludoch#Docker
Config ManagementChef/Puppet/Salt/Ansible vs Docker
@YourTwitterHandle@ndeloof @ludoch#Docker
Q?