Docker : la paravirtualisation simple et puissante

Slides:



Advertisements
Présentations similaires
Active Directory Windows 2003 Server
Advertisements

CHOUETTE Un outil pour le développement de données normalisées dans le champs de linformation voyageurs Jacques BIZE Groupe Technologie des transports.
Tomcat et son fonctionnement XML
SOMMAIRE Historique Les différentes techniques Intérets Etat actuel
L’intégration continue
MySQL I / Présentation. II / Administration et Outils.
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
simulateur de réseau de machines UML connectées par WiFi mode ad-hoc
À.
Présentation du système Linux
Bases et Principes de la Virtualisation. Votre infrastructure informatique ressemble-t-elle à cela ? 2.
Épreuve E6 – PARCOURS DE PROFESSIONNALISATION
GTCB Kahila Boulbaba BTS IRIS Session Sommaire Description du projet Présentation Moyen mis en œuvre Interaction entre les éléments Répartition.
réalisé par: FreeWays Security Club
Les outils d’intégration continue
Active Directory Windows 2003 Server
STAGE : Découverte du métier d’Intégrateur
Déploiement et Configuration
Sommaire Objectif de Peakup Principes de fonctionnement
Applications Chapitre B17 et C18
Cloud Computing et mesures de performances
Oracle VM VirtualBox (anciennement SUN VirtualBox)
Présentation 1. Consumer/Soho Small BusinessMidsize Business CorporateEnterprise Windows Home Server 1-4 employés 1-4 PCs 1-4 employés 1-4 PCs 5-49 employés.
Exercice Votre client CBEAUCBON.COM h é berge actuellement son site sur deux machines accessibles directement depuis internet. Aucun service de s é curit.
Les outils de déploiement
Framework Play 2.0 Démonstration du proof of concept
Introduction : Présentation de Linux Choix d’une distribution
Olivier Nocent Programmation Web Olivier Nocent
Réunion de collaboration du 9-10 Juillet 2008 J.L. Béney 1 Logiciel At  Client-Serveur Tcp/ip de la station autonome  Influence de l'architecture matérielle.
Internet et moi Par William Guiltaux.
Gestion de configuration Linux avec etckeeper
Module : Technologies des serveurs réseaux : FTP Dynamic Host Configuration Protocol Présenter par : Mounir GRARI.
Huseyin OZENICI Soutenu le 11 Septembre 2009 Soutenance des mémoires Apprentissage / Projet
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Expose sur « logiciel teamviewer »
Virtualisation d'un serveur sous VMWare Server
Chapitre 1 : Présentation Page 1. Chapitre 1 : Présentation Page 2  1979 : Première version d’Unix commercialisée  Unix Système V  Puis Unix BSD par.
Cité Scolaire Robert Schuman réinstallation de nouveaux postes
15/02/2008 v Socle de virtualisation des serveurs Linux version du 15/02/2008.
Une nouvelle manière de visualiser le fichier de contrôle de System Automation LUDIWAC ® Helcia Conseil.
Alain Le Hegarat Responsable Marketing Windows Server
Cas M2L Projet ADISPO.
Présentation Les Outillages.
Nicolas Ribot PostGIS – Installation Licence GNU FDL - Version 1.0.
© 2015 IBM Corporation SoftLayer, an IBM Company Softlayer Tutorial 1 12 février 2015.
Projet Doriath FARSI MOHAMED-AMINE.  La SSII InfoSol, dans laquelle je travaille, a été contactée par Mr Doriath, directeur de l’entreprise « Foie gras.
Déploiement OS via Clonezilla
Parcours de professionnalisation
Séance /10/2005 CSS et Dreamweaver. CSS : principes Cascading Style Sheet = feuille de style en cascade Norme du W3C :
Que des problèmes !!! J’ai de gros problèmes avec mon ordinateur; est-ce que c’est un virus peut-être??
Sécurité des Systèmes Informatique
OCS Inventory BENCHIKH.
Mission 11 - Nagios SIRVIN Alexis.
HEPIX N. Neyroud 1.
PARCOURS DE PROFESSIONNALISATION
MP2P PROTOCOLE & SYSTÈME DE STOCKAGE REDONDANT COACHING 3 – 21/05/2015 Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH.
MP2P PROTOCOLE & SYSTÈME DE STOCKAGE REDONDANT COACHING 2 – 30/04/2015 Julien DUBIEL – Mathieu CORRE – Francis VISOIU MISTRIH.
9 février 2010 Enrique Ruiz Mateos Architecte avant-vente Microsoft
« déconnade » Que des problèmes !!! J’ai de gros problèmes avec mon ordinateur, est-ce un virus ? Peut-être !!
Ansible Déploiement, provisionning et configuration
Java Remote Method Invocation
Git et Gitlab In Git we trust. Git et Gitlab In Git we trust.
Sécurisation infrastructure Altibus Ajout d’un serveur pour le réseau Call Center.
WordPress et Etherpad avec BlueMix et Docker. But: réussir à faire fonctionner ces deux services très connus et utilisés dans bluemix, en se servant de.
Jenkins, votre serviteur C. Loomis (CNRS/LAL) Journée LoOPS 11 décembre 2012.
Installation & Outils O.Legrand G. Seront. Installation code.google.com/android/intro/installing.html Pour développer des applications de type Android,
WHAT IS THIS ? Serveur d’intégration Environnement JAVA Open Source Ou logiciel d’intégration continue.
Déjouer les pièges du Dockerfile
Introduction à la démarche DevOps
Transcription de la présentation:

Docker : la paravirtualisation simple et puissante Mathieu Passenaud @mathieupassenau @HumanTalksTlse http://www.mathieupassenaud.fr

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 11 769 fois sur GitHub, avec plus de 1 912 forks et 423 contributeurs[6]. fr.wikipedia.org/wiki/Docker_(Système_de_conteneur_Linux)

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)

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

« 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

« 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

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

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. » http://www.silicon.fr/open-source-docker-demoder-vm-93411.html

Concrètement

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

Je lance : root@server:/home/mathieu# docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world root@server:/home/mathieu#

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

Je re-lance ! root@server:/home/mathieu# docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" 23d69e6697115fa93b90b1e891218bebd9aa7156c853b18092bb05f81f012d26 root@server:/home/mathieu#

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

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

Cas concret : construisons une image

Je lance root@server:/home/mathieu# docker run -t -i ubuntu:14.04 /bin/bash root@a16a05633b78:/# (-t : tty, -i : interactif) root@a16a05633b78:/# apt-get update … root@a16a05633b78:/# apt-get install default-jre root@a16a05633b78:/opt# wget http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat-7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz root@a16a05633b78:/opt# tar xvf apache-tomcat-7.0.56.tar.gz root@a16a05633b78:/opt/apache-tomcat-7.0.56/bin# ./startup.sh ... Tomcat started.

Et…

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

Mon image existe ! root@server:/home/mathieu# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE ubuntu/tomcat latest e63854b1dca1 3 minutes ago 583.9 MB ubuntu 14.04 6b4e8a7373fe 10 days ago 194.9 MB base latest b750fe79269d 18 months ago 175.3 MB root@server:/home/mathieu#

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

Et…

Maintenant on scripte # This is a comment FROM ubuntu:14.04 MAINTAINER Mathieu Passenaud <mathieu.passenaud@gmail.com> RUN apt-get update && apt-get install -y default-jre wget RUN wget http://mir2.ovh.net/ftp.apache.org/dist/tomcat/tomcat- 7/v7.0.56/bin/apache-tomcat-7.0.56.tar.gz -O /opt/apache-tomcat-7.0.56.tar.gz RUN tar xvf /opt/apache-tomcat-7.0.56.tar.gz --directory=/opt/ root@server:/dockerimages/ubuntuTomcat# docker build .

# This is a comment FROM ubuntu/tomcat:latest MAINTAINER Mathieu Passenaud <mathieu.passenaud@gmail.com> RUN /opt/apache-tomcat-7.0.56/bin/startup.sh

Facilitons nous la vie, dès maintenant

Exemple complet

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

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

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

Maintenant Un serveur debian 7.0 apache frontal, openSSL à jour derrière firewall + LB Un/des serveur(s) ubuntu 14.04, Java 1.7 + 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

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

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 1.7 + tomcat 7.0 Un container, basé sur CentOS Mysql

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

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

Comment je fais en dev ? J’installe un docker Apt-get install docker Boot2docker : http://boot2docker.io/

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

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

Comment je rends le truc scalable ? https://docs.docker.com/swarm/ http://www.sebastien-han.fr/blog/2013/10/31/build-a-paas-zone-within-your-openstack-cloud/ http://docs.openstack.org/developer/devstack/ https://labs.runabove.com/docker/ http://shipyard-project.com/

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

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 : https://docs.docker.com/userguide/dockerlinks/ Nommer les containers à la création : --name web Puis le lier avec un autre : --link db:db

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

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

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