La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Docker : la paravirtualisation simple et puissante

Présentations similaires


Présentation au sujet: "Docker : la paravirtualisation simple et puissante"— Transcription de la présentation:

1 Docker : la paravirtualisation simple et puissante
Mathieu Passenaud @mathieupassenau @HumanTalksTlse

2 Docker, pourquoi en parler ?
Docker a été distribué en tant que projet open source à partir de mars 2013[3]. Au 18 novembre 2013, le projet a été mis en favoris plus de 7 300 fois sur GitHub (14e projet le plus populaire), avec plus de 900 forks et 200 contributeurs[6]. Au 9 mai 2014, le projet a été mis en favoris plus de fois sur GitHub, avec plus de forks et 423 contributeurs[6]. fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux)

3 Docker, pourquoi en parler ?
L'intégration de Docker a été faite avec les outils de gestion d'infrastructures suivants : Chef [7] Puppet [8] Vagrant [9] Jenkins [10] OpenStack Nova [11] OpenSVC [12] Le 19 septembre 2013, Red Hat et Docker ont annoncé une collaboration concernant Fedora, Red Hat Enterprise Linux et Openshift[13]. fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux)

4 C’est quoi ? Des containers
Comme au port, vos marchandises sont isolées Mais sur le même navire !

5

6 « Docker est un système de packaging qui permet de prendre n’importe quel code source, n’importe quelle application et de l’envelopper, avec toutes ses dépendances, dans un objet unique, « self-contained », que l’on peut déplacer et faire tourner sur n’importe quel serveur, n’importe où sur la planète » Solomon Hykes

7 « A partir du moment où ça tourne sous un process unix, à partir du moment où ça écoute sur une socket TCP, on peut le déployer, on peut le scaler. » Solomon Hykes

8 C’est intéressant ? Ou juste un buzz ?

9 Comment ça marche ? « LxC (Linux Containers), une fonction
d’isolation des process désormais complètement intégrée au noyau de Linux depuis sa version 3.8. »

10

11 Concrètement

12 Sur le « host », la commande « docker » fait office « d’ hyperviseur »

13 Je lance : docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world

14 Et j’ai… Ben, rien root@server:/home/mathieu# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES Ben, rien

15 Je re-lance ! docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 23d69e fa93b90b1e891218bebd9aa7156c853b18092bb05f81f012d26

16 Un container en exécution !
Et j’ai… docker ps CONTAINER ID IMAGE COMMAND 23d69e ubuntu: "/bin/sh -c 'while t CREATED STATUS PORTS NAMES 33 seconds ago Up 32 seconds tender_lumiere Un container en exécution !

17 Mon container tourne tout le temps que le(s) processus lancé existe

18 Cas concret : construisons une image

19 Je lance docker run -t -i ubuntu:14.04 /bin/bash (-t : tty, -i : interactif) apt-get update apt-get install default-jre wget tar xvf apache-tomcat tar.gz ./startup.sh ... Tomcat started.

20 Et…

21 On sauvegarde l’image root@server:/# docker ps
CONTAINER ID IMAGE COMMAND a16a05633b ubuntu: "/bin/bash” CREATED STATUS PORTS NAMES 20 minutes ago Up 20 minutes dreamy_meitner docker commit -m="installed tomcat" -a="Mathieu Passenaud" a16a05633b78 ubuntu/tomcat

22 Mon image existe ! root@server:/home/mathieu# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu/tomcat latest e63854b1dca minutes ago MB ubuntu b4e8a7373fe days ago MB base latest b750fe79269d months ago MB

23 Je lance docker run -p 8080:8080 ubuntu/tomcat /bin/sh -c "/opt/apache-tomcat /bin/catalina.sh run" Oct 11, :15:39 PM org.apache.catalina.core.AprLifecycleListener org.apache.catalina.startup.HostConfig deployDirectory Oct 11, :15:46 PM org.apache.catalina.startup.Catalina start INFO: Server startup in 5395 ms

24 Et…

25 Maintenant on scripte # This is a comment FROM ubuntu:14.04
MAINTAINER Mathieu Passenaud RUN apt-get update && apt-get install -y default-jre wget RUN wget 7/v7.0.56/bin/apache-tomcat tar.gz -O /opt/apache-tomcat tar.gz RUN tar xvf /opt/apache-tomcat tar.gz --directory=/opt/ docker build .

26 # This is a comment FROM ubuntu/tomcat:latest MAINTAINER Mathieu Passenaud RUN /opt/apache-tomcat /bin/startup.sh

27 Facilitons nous la vie, dès maintenant

28

29

30

31 Exemple complet

32 Architecture Apache en frontal Application web tomcat
Base de données mysql

33 Avant - Avant Debian 5.0 apt-get install apache mysql-server tomcat …
5 jours plus tard après debug, openjdk et configuration, ça marche

34 Avant VMWare => ubuntu server 14.04 Wget tomcat
Apt-get install apache mysql-server Clone/transport de la VM vers la prod

35 Maintenant Un serveur debian 7.0 apache frontal, openSSL à jour derrière firewall + LB Un/des serveur(s) ubuntu 14.04, Java tomcat 7.0 (clone de machine de dev) Un serveur CentOS Mysql, construit depuis un export d’une base mysql locale à la machine de dev Ma machine de dev est dimensionnée comme une machine de prod, je deviens DevOPS

36 CALL PBEAU ou MLEN Apache2 + LB Tomcat Tomcat Tomcat MySQL Debian
Ubuntu CENTOS Vsphere/Vcloud ???? VMWARE Matos de fou furieux CALL PBEAU ou MLEN

37 Plus tard ??? Boot2Docker sur la machine de dev
Docker sur un serveur de prod Un container, basé sur debian 7.0 apache frontal, openSSL à jour derrière firewall + LB Un container, basé sur ubuntu 14.04, Java tomcat 7.0 Un container, basé sur CentOS Mysql

38 Matos de fou furieux + OS
Apache2 + LB Tomcat Tomcat Tomcat MySQL Docker Matos de fou furieux + OS CALL PBEAU ou MLEN

39 Mais il nous manque 3 choses
Comment je fais en dev ? Comment je rends le truc « scalable » ? Comment je fais communiquer mes containers ?

40 Comment je fais en dev ? J’installe un docker Apt-get install docker
Boot2docker :

41 Comment je fais en dev ? J’arrête mes VM VMWare/VirtualBox
Je travaille UNIQUEMENT dans des containers J’hésite pas à en faire plein de versions (comme des snapshots) J’exporte un tar.gz pour déployer en recette et en production

42 Boot2Docker http://boot2docker.io/ VirtualBox + VM linux + docker
Client Docker dans la console

43

44

45

46 Comment je rends le truc scalable ?

47 CALL PBEAU ou MLEN Apache2 + LB Tomcat Tomcat Tomcat MySQL
Docker + Swarm Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS CALL PBEAU ou MLEN

48 Comment je fais communiquer les containers entre eux ?
-p 80:8080 Redirection de port entre le hôte et le container Il existe un réseau interne entre containers Docker Links : Nommer les containers à la création : --name web Puis le lier avec un autre : --link db:db

49 Matos de fou furieux + OS Matos de fou furieux + OS
Tomcat Tomcat Apache2 + LB Tomcat MySQL Docker + Swarm Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS Matos de fou furieux + OS

50 Et pour l’existant et les récalcitrants ?
Rancher rancher.com

51 Rancher Exporte une VM existante Fait tourner KVM dans des containers
+ GUI

52

53


Télécharger ppt "Docker : la paravirtualisation simple et puissante"

Présentations similaires


Annonces Google