SlideShare une entreprise Scribd logo
1  sur  78
Les Pipelines Jenkins
dans la vraie vie
Jean-Philippe Briend
About me
Jean-Philippe Briend
@jpbriend Java expert,
Pèlerin DevOps,
Automation addict
DevOps,
Continuous Delivery,
Software Craftmanship
jbriend@cloudbees.com
About CloudBees
We are
The hub of
Enterprise Jenkins
and DevOps
We deliver
Smarter solutions for
accelerating
software
development and
delivery
We make a
difference
We are the leader
in Continuous
Delivery for
DevOps
Why this is important
You can focus on
coming up with
great ideas, we
take care of the
mundane tasks.
Développeur ?
Exploitation ?
Testeur ?
Chef de projet ?
Vous
Faites de l’Intégration Continue ?
Vous voulez faire du déploiement automatisé ?
Avez un pipeline end-to-end ?
Avez un composant unique ?
Avez un plat de spaghettis de composants à livrer ?
Vous
Qui ?
Pour jouer ?
Utilisé dans la vraie vie ?
Jenkins 2 et Pipeline
Personne n’est parfait !
Bonne nouvelle !
Qui utilise Jenkins ?
Comment livrer plus rapidement du meilleur code ?
ProdDev
Un processus
• qui s’assure de la qualité
• s’exécute de façon fiable
• produit de la valeur rapidement
Il nous faut
pour automatiser
Il nous faut
un pipeline
Il nous faut
Un pipeline linéaire typique
Les jobs Jenkins Pipeline !
Type de job Pipeline
Progression et historique
“Ce qui est bien mais pas top”
Pipeline optimisé
Pipeline Stage View
On a fini ?
Commit
Lancer le process
Vérifier la qualité
et releaser !!!
attends attends attends…
Composant unique
ou microservice
Les tests sont complets
C’est releasable de façon indépendante
Ne casse pas la compatibilité ascendante
Uniquement valable si
Un système est composé d’une multitude d’applications/composants
Sauf que
ayant des dépendances
Les nouvelles fonctionnalités
fournies par de nouvelles interfaces
nécessitent des versions minimum
Tests de chaine ?
Quid des tests de performance ou tests fonctionnels ?
Mais aussi
Et les cas des systems embarqués ?
Il faut fournir une image complète contenant tous les composants
???
Assembly build
Release pipeline
Release Pipeline
Encore une étape manuelle ???
Quelle version ?
Mauvais build = régression
Et si on utilisait un trigger automatique depuis le job amont ?
Utilisez la commande build
Mais il nous faut le numéro de build de
chaque composant
On pourrait trouver qqchose dans
Jenkins…
Inspecter la version déployée ?
n. cargo-list for use of Customs officers; list of
passengers in aircraft or of trucks etc. in goods train
Oxford English Dictionary
Manifest
Que met-on dans un manifest ?
la liste des composants et leur version
#Tue Mar 01 23:11:41 GMT 2016
mobile-deposit-api=1.0.0-21
mobile-deposit-ui=1.0.0-4
Read / Write manifest ?
Où stocker ce manifest ?
Jenkins Build workspace ?
SCM ?
Jenkins Build artifact ?
External file system ?
Artifact repository ?
Fini ?
Jenkins sait mettre les jobs en attente
Gestion de la concurrence des stages Pipeline
La Concurrency Rule saute les builds
Ca va marcher avec les SCMs
Utiliser les builds paramétrés
Etapes supplémentaires ?
Mise à jour du manifest
asynchrone par rapport au build
de Release
63
manifest-update
release-build
Exécuter le déploiement
Tout redéployer ?
Comparer à ce qui tourne
Comparer au manifest
manifest
updates
Demo
Pipelines ≠ linéaires
Assembler de multiples composants
Pattern fan-in
Déclencher des jobs downstream
Suivre avec des manifests
https://github.com/jpbriend/mobile-deposit*
Branches qcon
Sources
[Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Contenu connexe

Tendances

Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciwiemfourati
 
Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days Léo Cavaillé
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxYasmine Amrani
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerGeeks Anonymes
 
Transition Agile @ Meetic
Transition Agile @ MeeticTransition Agile @ Meetic
Transition Agile @ MeeticmeeticTech
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests PlanDenis Voituron
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureJonathan Bonzy
 
Séminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS Formation
Séminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS FormationSéminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS Formation
Séminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS FormationORSYS
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien Navarre
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteStephane Couzinier
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Samuel Metias
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] IntroductionCellenza
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtlMSDEVMTL
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDiego Lemos
 
DevOps vu par les ops
DevOps vu par les opsDevOps vu par les ops
DevOps vu par les opsMichel HUBERT
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesStéphane Di Cioccio
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & MétiersCellenza
 
DevOps vu par les Ops
DevOps vu par les OpsDevOps vu par les Ops
DevOps vu par les OpsMicrosoft
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 

Tendances (20)

Jenkins Workflow
Jenkins WorkflowJenkins Workflow
Jenkins Workflow
 
Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ci
 
Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days Échouer pour mieux réussir - Game Days
Échouer pour mieux réussir - Game Days
 
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
5- [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagner
 
Transition Agile @ Meetic
Transition Agile @ MeeticTransition Agile @ Meetic
Transition Agile @ Meetic
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
Séminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS Formation
Séminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS FormationSéminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS Formation
Séminaire DEVOPS, DÉMARCHE ET MISE EN ŒUVRE - ORSYS Formation
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Jenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverteJenkins - Les jeudis de la découverte
Jenkins - Les jeudis de la découverte
 
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
Microsoft DevOps Day 2015 02122015 - L'expérience du groupe produit Visual St...
 
[Agile Testing Day] Introduction
[Agile Testing Day] Introduction[Agile Testing Day] Introduction
[Agile Testing Day] Introduction
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtl
 
Devoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous DeliveryDevoxx 2016 - L'odyssée du Continuous Delivery
Devoxx 2016 - L'odyssée du Continuous Delivery
 
DevOps vu par les ops
DevOps vu par les opsDevOps vu par les ops
DevOps vu par les ops
 
Presentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequencesPresentation DevOps : enjeux , objectifs, consequences
Presentation DevOps : enjeux , objectifs, consequences
 
[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers[Agile Testing Day] Test & Métiers
[Agile Testing Day] Test & Métiers
 
DevOps vu par les Ops
DevOps vu par les OpsDevOps vu par les Ops
DevOps vu par les Ops
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 

En vedette

Trading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB
Trading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDBTrading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB
Trading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDBMongoDB
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineSlawa Giterman
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesSteffen Gebert
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)CloudBees
 

En vedette (7)

Trading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB
Trading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDBTrading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB
Trading up: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
Jenkins Pipelines
Jenkins PipelinesJenkins Pipelines
Jenkins Pipelines
 
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins PipelinesAn Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
An Open-Source Chef Cookbook CI/CD Implementation Using Jenkins Pipelines
 
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
Pimp your Continuous Delivery Pipeline with Jenkins workflow (W-JAX 14)
 

Similaire à [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontZenika
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange LabsEmmanuel Hugonnet
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifkemenaran
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain Leroy
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outilsAgile Tour 2009 Québec
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureMarc Nazarian
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, LinuxCellenza
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Publicis Sapient Engineering
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatiséJérémie Campari
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?LeClubQualiteLogicielle
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & opsQuentin Adam
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transcolaurent_opnworks
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelAgile Montréal
 

Similaire à [Codeur en seine] Les Pipelines Jenkins dans la vraie vie (20)

At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
What’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. DarmontWhat’s Next Replay! Lyon 2011 - G. Darmont
What’s Next Replay! Lyon 2011 - G. Darmont
 
Usine logicielle à Orange Labs
Usine logicielle à Orange LabsUsine logicielle à Orange Labs
Usine logicielle à Orange Labs
 
Formation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratifFormation Extreme Programming, Tests unitaires, travail collaboratif
Formation Extreme Programming, Tests unitaires, travail collaboratif
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Symphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeureSymphonie pour PHP industrialisé en agilité majeure
Symphonie pour PHP industrialisé en agilité majeure
 
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
05 - [ASP.NET Core] Devops : VSTS, Git, Azure, Docker, Linux
 
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-L...
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
Normandy JUG integration Continue
Normandy JUG integration ContinueNormandy JUG integration Continue
Normandy JUG integration Continue
 
Happy dev ... & ops
Happy dev ... & opsHappy dev ... & ops
Happy dev ... & ops
 
Intégration continue transco
Intégration continue transcoIntégration continue transco
Intégration continue transco
 
Conformiq
ConformiqConformiq
Conformiq
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie TrudelHa zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
Ha zut, le DevOps a mangé ma vélocité par Jean-Marc Lavoie & Sylvie Trudel
 

[Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Notes de l'éditeur

  1. workspace: pas durable, limité à un seul slave SCM: bien, conserve l’historique, gère la concurrence – utilisable par plusieurs noeuds Build artefact: publié dans Jenkins dans un build FS externe: difficile de maintenir un historique Artifact repository: versionner de façon unique chaque build