SlideShare une entreprise Scribd logo
@ContainerDay16 @jlrigau @fthouny
Conteneurisation de
l'usine logicielle
Retour d’expérience du projet Libon d’Orange Vallée
@ContainerDay16
@ContainerDay16
Jean-Louis RIGAU
@jlrigau
Continuous Delivery, DevOps and Docker
@ Xebia IT Architects
Fabien THOUNY
@fthouny
Craftsmanship, Agile, Tech Lead
@ Libon
@ContainerDay16 @jlrigau @fthouny
Appeler...
● Appels VoIP (app to app) gratuits
● Appels VoIP-Out à prix réduits vers
plus de 140 destinations
@ContainerDay16 @jlrigau @fthouny
Envoyer des messages...
● Chat utilisant le protocole XMPP
● Échange de fichiers
@ContainerDay16 @jlrigau @fthouny
Simplement !
● Multi-plateforme
○ Android
○ iPhone
○ Web HTML5
● Synchronisées grâce à des API REST
@ContainerDay16
Il était une fois,
il y a fort
longtemps...
@ContainerDay16 @jlrigau @fthouny
build1
Instance unique de Jenkins
@ContainerDay16 @jlrigau @fthouny
● Mises à jour OS
● Librairies systèmes
● Versions de SDK
○ JDK 1.7/1.8
● Mutualisation des services
○ Cassandra, Oracle, MySQL
● Ressources de la machine
● Risque de défaillance
Difficultés multiples
@ContainerDay16 @jlrigau @fthouny
build1
Gestion des besoins spécifiques
build2
slave
@ContainerDay16 @jlrigau @fthouny
● 2 machines
○ l’une surchargée
○ l’autre sous-utilisée
● Versions OS différentes
○ Écart entre les packages
○ Davantage de maintenance
Toujours plus de complexité !
@ContainerDay16
Et vint le temps
de la
révolution...
@ContainerDay16 @jlrigau @fthouny
Construire, transporter et exécuter tout
type d’application sur tout type de plate-
forme
Opérer ses applications au sein de son
Data Center comme s’il s’agissait d’une
ressource unique
Boîte à Outils 1/2
Déployer et orchestrer ses conteneurs au
sein d’un cluster Mesos à l'échelle
@ContainerDay16 @jlrigau @fthouny
Boîte à Outils 2/2
Configuration automatique de HAProxy et
Découverte de Service pour Mesos
Marathon
Open-source TCP/HTTP load-balancing
proxy server
Bamboo
@ContainerDay16 @jlrigau @fthouny
Architecture du Cluster
@ContainerDay16 @jlrigau @fthouny
Framework Marathon
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1
Mise en Cluster de la CI
Bamboo Bamboo Bamboo
@ContainerDay16 @jlrigau @fthouny
● Gestion des images Docker
○ Stockage
○ Distribution
● Déploiement
○ Image officielle sur le Docker Hub
○ Utilisation de Marathon
● Sécurité
○ Authentification LDAP
○ TLS
Docker Registry
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1
Déploiement de la Registry
Bamboo Bamboo Bamboo
@ContainerDay16 @jlrigau @fthouny
Configuration d’un Service
● Configuration au format JSON
○ Image
○ Volume, Mapping de ports
○ Ressources
○ Contraintes
○ Health Check
● Déploiement avec l’API REST de
Marathon
● Utilisation des images officielles
○ Disponible sur le Hub
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1
Déploiement des Services
Bamboo Bamboo Bamboo
API
Docs
Slack
Bot
Zk UI
Version
Board
@ContainerDay16 @jlrigau @fthouny
Framework Jenkins Scheduler
@ContainerDay16 @jlrigau @fthouny
● Création d’images de “Build”
○ Héritant de l’image “build-tools”
○ Une image Docker par runtime
● Utilisation du Jenkins Mesos plugin
○ 1 slave = 1 image Docker
○ Utilisation des labels dans les jobs
● Slave à la demande
○ Création de tâches Mesos
○ Nettoyage automatique
Création des slaves
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1
Jenkins Slaves conteneurisés
Bamboo Bamboo Bamboo
API
Docs
Slack
Bot
Zk UI
Version
Board
@ContainerDay16 @jlrigau @fthouny
● Binaire développé en Go
○ Inclut dans les images de build
○ Disponible sur le poste de DEV et sur l’environnement de CI
● Mêmes outils en CI et sur le poste de développement
Binaire “build-machine”
@ContainerDay16 @jlrigau @fthouny
DEMO
Construction et déploiement d’une application
@ContainerDay16
Place à l’
industrialisation
de la
plateforme...
@ContainerDay16 @jlrigau @fthouny
Spécialisation de l’infrastructure
● Séparation Master / Slave
○ Extraction du master vers une VM
○ Conservation des machines physiques pour les slaves
● Réorganisation des modules Puppet
○ 2 profils master et slave
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1 buildfiler2 buildfiler3 buildfiler4
Bamboo Bamboo Bamboo Bamboo Bamboo Bamboo
buildmaster1
Séparation Master / Slave
API
Docs
Slack
Bot
Version
Board
Zk UI
@ContainerDay16 @jlrigau @fthouny
● 2 types de données
○ Cache (Docker, Maven, NPM, Gradle, etc.)
○ Données persistantes (Registry, Jenkins, Sonar, Nexus, Dashboard, etc.)
● Mise en place de GlusterFS
○ Mutualisation des capacités de stockage des noeuds du cluster
○ Volume répliqué et distribué (~ 1,6 To disponible au final)
● Création d’un point de montage “/shared”
○ Accessible sur chacun des noeuds du cluster
Gestion des Données
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1 buildfiler2 buildfiler3
Distributed Replicated GlusterFS Volume
buildfiler4
Bamboo Bamboo Bamboo Bamboo Bamboo Bamboo
buildmaster1
CI entièrement conteneurisée !
API
Docs
Slack
Bot
Zk UI
Version
Board
@ContainerDay16 @jlrigau @fthouny
Performances de la Registry
● Registry : point faible de l’architecture
○ Ajout d’une deuxième instance en cluster
● Le Docker Hub peut être lent
○ Mise en place d’un cluster de miroirs
● Boucle sur Internet pour accéder à la registry
○ Ajout d’une entrée dans le /etc/hosts de chacun des noeuds
@ContainerDay16 @jlrigau @fthouny
build1 build2 buildfiler1 buildfiler2 buildfiler3
Distributed Replicated GlusterFS Volume
buildfiler4
Bamboo Bamboo Bamboo Bamboo Bamboo Bamboo
buildmaster1
Registry en Haute Disponibilité
API
Docs
Slack
Bot
Version
Board
Zk UI
mirror
mirror
@ContainerDay16 @jlrigau @fthouny
● Mise en place d’un système de gestion de droits sur la Registry
○ PoC de Portus en cours
● Utilisation des images officielles pour nos builds
○ Exploration de Jenkins 2.x et du Plugin Pipeline
● Élimination des dernières faiblesses de l’architecture
○ Master à mettre en cluster
● Emmener les conteneurs jusqu’en Production !
○ En s’appuyant sur l’expérience acquise sur la CI
Quelles évolutions ?
@ContainerDay16 @jlrigau @fthouny
Q&A

Contenu connexe

PDF
Paris Container Day 2016 : De la construction au déploiement d’applications...
PDF
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
PDF
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
PDF
Paris Container Day 2016 : Architecture microservices hautement disponible au...
PDF
Paris Container Day 2016 : Choisissez votre style avec docker & Amazon Web Se...
PDF
Déploiement et gestion d'un site web avec Rancher
PDF
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
PDF
OpenShift en production - Akram Ben Assi & Eloïse Faure
Paris Container Day 2016 : De la construction au déploiement d’applications...
Paris Container Day 2016 : Les nouveaux défis du déploiement (Xebia Labs)
Paris Container Day 2016 : Cloudunit v2 (Treeptik)
Paris Container Day 2016 : Architecture microservices hautement disponible au...
Paris Container Day 2016 : Choisissez votre style avec docker & Amazon Web Se...
Déploiement et gestion d'un site web avec Rancher
Devoxx France : Kubernetes University, Cap sur l’orchestration Docker !
OpenShift en production - Akram Ben Assi & Eloïse Faure

Tendances (20)

PDF
Devoxx France : GruntJs In Action
PDF
Gitlab CI : Integration et Déploiement Continue
PDF
Kubernetes Meetup Paris #5 - Metriques applicatives k8s
PDF
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
PDF
Débridez les performances de vos applications avec Chronicle Queue
PDF
Chroniques de formation : Scaling Code Labs avec Swarm et Compose
PDF
kubernetes, pourquoi et comment
PDF
Intro docker
PPTX
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
PDF
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
PDF
Introduction à Docker et Gaudi
PDF
12-Factor
PDF
Introduction à docker.io
PDF
Devoxx France - Où sont passés mes serveurs ?
PPTX
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
PDF
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
PPTX
Automatiser l'ère post-dev
PPTX
REX Openshift à la Poste
PDF
Déploiements avec Docker
PPTX
Python application packaging @ MeilleursAgents
Devoxx France : GruntJs In Action
Gitlab CI : Integration et Déploiement Continue
Kubernetes Meetup Paris #5 - Metriques applicatives k8s
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?
Débridez les performances de vos applications avec Chronicle Queue
Chroniques de formation : Scaling Code Labs avec Swarm et Compose
kubernetes, pourquoi et comment
Intro docker
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?
Docker avec Rancher, du dev à la prod - Makazi au devopsdday 2016
Introduction à Docker et Gaudi
12-Factor
Introduction à docker.io
Devoxx France - Où sont passés mes serveurs ?
Retour d'expérience Docker: Puissance et simplicité de VSTS, déploiement sur ...
Introduction à Docker et utilisation en production /Digital apéro Besançon [1...
Automatiser l'ère post-dev
REX Openshift à la Poste
Déploiements avec Docker
Python application packaging @ MeilleursAgents
Publicité

En vedette (7)

PDF
Open shift and docker - october,2014
PDF
OpenShift, Docker, Kubernetes: The next generation of PaaS
ODP
Openshift Container Platform
PPTX
DEVNET-1183 OpenShift + Kubernetes + Docker
PDF
A Gentle Introduction To Docker And All Things Containers
PDF
Red Hat OpenShift V3 Overview and Deep Dive
PDF
fabric8 ... and Docker, Kubernetes & OpenShift
Open shift and docker - october,2014
OpenShift, Docker, Kubernetes: The next generation of PaaS
Openshift Container Platform
DEVNET-1183 OpenShift + Kubernetes + Docker
A Gentle Introduction To Docker And All Things Containers
Red Hat OpenShift V3 Overview and Deep Dive
fabric8 ... and Docker, Kubernetes & OpenShift
Publicité

Similaire à Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'expérience Xebia & Libon) (20)

PDF
Docker en Production (Docker Paris)
ODP
Rex docker en production meeutp-docker-nantes
PDF
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
PDF
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
PDF
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
PPTX
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
PDF
Plateformes et infrastructure infonuagique natif de ville de Montréall
PPTX
OUMAIMA BOUGRYNE PPT.pptx
PDF
formation_dockerhscv jh sjsjx jhxavcjhvdcjhvajhsdvc
PDF
Container Day 2016 - De la construction au déploiement d’applications avec de...
PDF
Docker - un outil pour faciliter le développement et le déploiement informatique
PDF
formation docker.pdf
PDF
Tadx - Présentation Conteneurisation
PDF
SUSE Expert Days Paris 2018 – CaaSP
PPTX
Adopter pleinement GitOps (ConFoo 2024 Montréal)
PPTX
L'évolution vers le (Dev)NoOps
PDF
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
PDF
Midi technique - présentation docker
PDF
Spring Boot & Containers - Do's & Don'ts
PPTX
Docker, Pierre angulaire du continuous delivery ?
Docker en Production (Docker Paris)
Rex docker en production meeutp-docker-nantes
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Sébastien Coutu: Copy this Meetup Devops - microservices - infrastructure imm...
Gab17 lyon-Docker pour quoi faire - Cédric Leblond et Derue
Plateformes et infrastructure infonuagique natif de ville de Montréall
OUMAIMA BOUGRYNE PPT.pptx
formation_dockerhscv jh sjsjx jhxavcjhvdcjhvajhsdvc
Container Day 2016 - De la construction au déploiement d’applications avec de...
Docker - un outil pour faciliter le développement et le déploiement informatique
formation docker.pdf
Tadx - Présentation Conteneurisation
SUSE Expert Days Paris 2018 – CaaSP
Adopter pleinement GitOps (ConFoo 2024 Montréal)
L'évolution vers le (Dev)NoOps
Docker ! De la découverte à la mise en production / Digital apéro [19/03/2015]
Midi technique - présentation docker
Spring Boot & Containers - Do's & Don'ts
Docker, Pierre angulaire du continuous delivery ?

Plus de Publicis Sapient Engineering (20)

PDF
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
PDF
Xebicon'18 - IoT: From Edge to Cloud
PDF
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
PDF
XebiCon'18 - Modern Infrastructure
PDF
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
PDF
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
PDF
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
PDF
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
PDF
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
PDF
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
PDF
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
PDF
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
PDF
XebiCon'18 - Le développeur dans la Pop Culture
PDF
XebiCon'18 - Architecturer son application mobile pour la durabilité
PDF
XebiCon'18 - Sécuriser son API avec OpenID Connect
PDF
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
PDF
XebiCon'18 - Spark NLP, un an après
PDF
XebiCon'18 - La sécurité, douce illusion même en 2018
PDF
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
PDF
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
XebiCon'18 - Modern Infrastructure
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...

Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'expérience Xebia & Libon)