SlideShare a Scribd company logo
1 of 30
Download to read offline
Centred’ExcellenceenTechnologiesde
l’InformationetdelaCommunication
www.cetic.be
Jenkins
perdre du temps pour en gagner
Chef de projet
23 septembre 2015
Dimitri Durieux
Qui suis-je?
Dimitri Durieux
SonarQube : une autre vision de votre logiciel
• Chef de projet
• Master en sciences informatiques (UMons
2012)
Expertises:
• Analyse de logiciels & Qualité Produit
• Safety critical system
• Java & Scala
Twitter : @didurieux
www.cetic.be
Contenu
1. Intégration continue
1. Définition
2. Valeurs
3. Workflows
2. Jenkins
1. Overview
2. Motivations
3. Fonctionnalités
4. Utilisations
5. Exemples
6. Les plugins
3. Démo
4. Références
3
www.cetic.be
Intégration continue
4
www.cetic.be
Définition d’intégration continue
« Continuous Integration is a software development practice where
members of a team integrate their work frequently, usually each
person integrates at least daily - leading to multiple integrations
per day. Each integration is verified by an automated build
(including test) to detect integration errors as quickly as
possible.» Martin Flower
⇒ Pratique de développement
⇒ Intégration fréquente
⇒ Build et test automatique
⇒ Détection rapide d’erreurs
5
www.cetic.be
Définition d’intégration continue
La pratique d’intégration continue (CI) consiste à :
• Intégré
• Construire
• Testé
• Archivé
• Déployé
Réalisé régulièrement : chaque jour/commit
6
www.cetic.be
Valeur de la pratique
• Meilleure vision de l’avancement du projet
• Plus besoin de phase d’intégration
• Intégration au plus tôt
• Détection des bugs ASAP
• Le logiciel peut être déployé à tout moment
7
www.cetic.be
Workflow
8
• Code sources
• Tests
• Documentation
Entrées
• Build continu
• Tests continu
• Déploiement
continu
Intégration
continue • Rapport de tests
• Binaires
• Déploiement
Sorties
www.cetic.be
Outils d’intégration continue
• Gestion des sources :
• Subversion, Git, Mercurial
• Build continu :
• Jenkins, Atlassian Bamboo, Gitlab-CI, TeamCity, Cruise Control,
Apache Continuum
• Outil de test :
• Xunit, Cucumber, SoapUI, Selenium
• Dépôt d’artefacts :
• Artifactory, Nexus, Apache Archiva
9
www.cetic.be
Jenkins
10
www.cetic.be
Jenkins
• Développé en Java pour Java
• Interface Web
• Sous licence MIT
• Embarqué dans un serveur d’application
• Disponible en bundle (Tomcat)
• 1400+ plugins
• https://jenkins-ci.org/
11
www.cetic.be
Jenkins : Chiffres
12
Source : https://www.openhub.net/p/jenkins
www.cetic.be
Pourquoi Jenkins ?
• Flexible
• Configuration poussée
• Plugins
• Sans limite
• Open-sources
• Licence MIT
• Très bon support
• Large communauté
• Documentation
• Plugins
• API stable
• Documentation
13
www.cetic.be
Utilisateurs de Jenkins
14
www.cetic.be
Que peut faire Jenkins ?
• Automatisation des tâches de développement
• Lancement des tests
• Construction des releases
• Publication des tags, de la documentation, …
• Déploiement de l’environnement de tests
• Déploiement en production
• Notification
• Reporting
• Automatisation des tâches de maintenance
• Back up
• Mise à jour
• Log analysis
15
www.cetic.be
Utilisation de Jenkins : Création de Job
• Gestionnaire(s) de version
• Ce qui déclenche le build
• Cron, commit
• Les tâches de build
• Maven, Shell, Ms Build, etc.
• Les tâches d’après build
• Notification Email
• Publication des artéfacts, des rapports de tests
• Séquençage des jobs
• Attention aux lancements parallèles
16
www.cetic.be
Utilisation de Jenkins : lancement
• Lancement « press button »
• API-Rest pour lancer des Jobs à distance
• Monitoring des Jobs à distance
• Chaque lancement = construction
• Suivi en temps réel du logs
• Jenkins dispose de lanceurs
• Par défaut, un lanceur par core
• Possibilité d’ajouter des esclaves
17
www.cetic.be
Utilisation de Jenkins : reporting
• Chaque construction est tracée
• Status : failure, error, succeed !
• Logs toujours présents
• L’indice météo
• Indice des tendances
• Suivi des tests
• Augmentation de la couverture
• Evolution du taux d’échec
18
www.cetic.be
Exemple : page principale
19
www.cetic.be
Exemple : Page principale
20
www.cetic.be
Exemple : page de création d’un Job
21
www.cetic.be
Exemple : page de construction
22
www.cetic.be
Exemple : contenu d’un job mature
23
www.cetic.be
Gestion des plugins
24
• Plus de 1400 plugins
• 26 Catégories :
• Gestion du code source
• Déclencheurs
• Outils de build
• Notification du build
• Reporting
• Lancement et contrôle des « slaves »
• Uploader d’artefact
• Opération de post build
• Intégration de site/outil
• UI
• Développement .Net
• Développement iOS
• …
www.cetic.be
Démo
25
www.cetic.be
Conclusion
26
www.cetic.be
Résumé
• Intégration continue
• Gagner du temps
• Gagner en qualité
• Gestion du risque
• Jenkins
• Build en continu
• Mature, open-source, flexibles et reconnus
• Intégration des outils de développement
• Simple à installer, configurer et utiliser
27
www.cetic.be
Bonnes pratiques
• Activation de la sécurité
• Mettre en place un backup
• Installer des plugins
• Lancer tous vos tests
• Un job par branche, une branche par version
• Installer Jenkins sur une partition avec de l’espace disque
28
www.cetic.be
Références
• https://jenkins-ci.org/
• http://www.martinfowler.com/articles/continuousIntegration.html
• http://www.cs.colorado.edu/~kena/classes/5828/s12/presentation-
materials/bowesjesse.pdf
• https://wiki.jenkins-ci.org/pages/viewpage.action?pageId=58001258
29
linkedin.com/company/cetic
twitter.com/@CETIC
Aéropole de Charleroi-Gosselies
Bâtiment Éole
Rue des Frères Wright, 29/3
B-6041 Charleroi
Tel: +32.71.490.700
Fax: +32.71.490.799
www.cetic.be
info@cetic.be
Project Manager
071 490 767
Dimitri Durieux
dimitri.durieux@cetic.be
Contacts
0494 928 344

More Related Content

What's hot

What's hot (20)

ITLC HN 14 - Bizweb Microservices Architecture
ITLC HN 14  - Bizweb Microservices ArchitectureITLC HN 14  - Bizweb Microservices Architecture
ITLC HN 14 - Bizweb Microservices Architecture
 
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
 
Introduction to Agile Testing
Introduction to Agile TestingIntroduction to Agile Testing
Introduction to Agile Testing
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous DeploymentContinuous Integration, Build Pipelines and Continuous Deployment
Continuous Integration, Build Pipelines and Continuous Deployment
 
Introduction to CI/CD
Introduction to CI/CDIntroduction to CI/CD
Introduction to CI/CD
 
BDD with Cucumber
BDD with CucumberBDD with Cucumber
BDD with Cucumber
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT Industry
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Severity and Priority
Severity and PrioritySeverity and Priority
Severity and Priority
 
Maven ppt
Maven pptMaven ppt
Maven ppt
 
Bizweb Microservices Architecture
Bizweb Microservices ArchitectureBizweb Microservices Architecture
Bizweb Microservices Architecture
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0DevOps concepts, tools, and technologies v1.0
DevOps concepts, tools, and technologies v1.0
 
Jenkins presentation
Jenkins presentationJenkins presentation
Jenkins presentation
 
Building a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containersBuilding a CICD pipeline for deploying to containers
Building a CICD pipeline for deploying to containers
 
Webpack slides
Webpack slidesWebpack slides
Webpack slides
 

Viewers also liked

Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
Hugo Hamon
 
Open Source Hardware for Dummies
Open Source Hardware for DummiesOpen Source Hardware for Dummies
Open Source Hardware for Dummies
Robert Viseur
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
pkslide28
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
Dennys Hsieh
 
Et si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produitEt si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produit
Association Agile Nantes
 

Viewers also liked (20)

Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
Intégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CIIntégration Continue PHP avec Jenkins CI
Intégration Continue PHP avec Jenkins CI
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
Machinel Learning with spark
Machinel Learning with spark Machinel Learning with spark
Machinel Learning with spark
 
Soap UI - Getting started
Soap UI - Getting startedSoap UI - Getting started
Soap UI - Getting started
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
 
Open Source Hardware for Dummies
Open Source Hardware for DummiesOpen Source Hardware for Dummies
Open Source Hardware for Dummies
 
JCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec JenkinsJCertif 2012 : Integration continue avec Jenkins
JCertif 2012 : Integration continue avec Jenkins
 
Integration continue et déploiement automatisé
Integration continue et déploiement automatiséIntegration continue et déploiement automatisé
Integration continue et déploiement automatisé
 
What is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache SparkWhat is Distributed Computing, Why we use Apache Spark
What is Distributed Computing, Why we use Apache Spark
 
[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel[PFE] Master en ingénierie du logiciel
[PFE] Master en ingénierie du logiciel
 
Tp1 - WS avec JAXWS
Tp1 - WS avec JAXWSTp1 - WS avec JAXWS
Tp1 - WS avec JAXWS
 
Deep learning
Deep learningDeep learning
Deep learning
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
 
Jenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous DeliveryJenkins - From Continuous Integration to Continuous Delivery
Jenkins - From Continuous Integration to Continuous Delivery
 
Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)Continuous Integration (Jenkins/Hudson)
Continuous Integration (Jenkins/Hudson)
 
Ingénierie du test 0.9
Ingénierie du test 0.9Ingénierie du test 0.9
Ingénierie du test 0.9
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
 
Et si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produitEt si on maîtrisait vraiment notre produit
Et si on maîtrisait vraiment notre produit
 
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
 

Similar to Jenkins - perdre du temps pour en gagner

Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
Cellenza
 

Similar to Jenkins - perdre du temps pour en gagner (20)

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
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
REX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous DeliveryREX sur l'outilage Continuous Delivery
REX sur l'outilage Continuous Delivery
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
Maven
MavenMaven
Maven
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
 
SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system20080923 04 - Selenium web application testing system
20080923 04 - Selenium web application testing system
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
Devoxx java script-1280-720
Devoxx java script-1280-720Devoxx java script-1280-720
Devoxx java script-1280-720
 
The DevOps Wonder @ PHPTour Lyon 2014
The DevOps Wonder @ PHPTour Lyon 2014The DevOps Wonder @ PHPTour Lyon 2014
The DevOps Wonder @ PHPTour Lyon 2014
 
Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1Au coeur du framework .net 4.5.1
Au coeur du framework .net 4.5.1
 

More from Geeks Anonymes

More from Geeks Anonymes (20)

Programmer sous Unreal Engine
Programmer sous Unreal EngineProgrammer sous Unreal Engine
Programmer sous Unreal Engine
 
Implémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexesImplémentation efficace et durable de processus métiers complexes
Implémentation efficace et durable de processus métiers complexes
 
Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)Managing Open Source Licenses (Geeks Anonymes)
Managing Open Source Licenses (Geeks Anonymes)
 
Reprendre le contrôle de ses données
Reprendre le contrôle de ses donnéesReprendre le contrôle de ses données
Reprendre le contrôle de ses données
 
Geeks Anonymes - Le langage Go
Geeks Anonymes - Le langage GoGeeks Anonymes - Le langage Go
Geeks Anonymes - Le langage Go
 
Le rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testingLe rôle du testeur et le Blackbox testing
Le rôle du testeur et le Blackbox testing
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 Vulnérabilités au cœur des applications Web, menaces et contre-mesures Vulnérabilités au cœur des applications Web, menaces et contre-mesures
Vulnérabilités au cœur des applications Web, menaces et contre-mesures
 
191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles191121 philippe teuwen cryptographie et attaques materielles
191121 philippe teuwen cryptographie et attaques materielles
 
"Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité "Surfez couverts !" - Conseils de Cyber securité
"Surfez couverts !" - Conseils de Cyber securité
 
Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...Introduction au développement mobile - développer une application iOS et Andr...
Introduction au développement mobile - développer une application iOS et Andr...
 
Le langage rust
Le langage rustLe langage rust
Le langage rust
 
Test your code
Test your codeTest your code
Test your code
 
Intelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelleIntelligence artificielle et propriété intellectuelle
Intelligence artificielle et propriété intellectuelle
 
Pour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu videoPour une histoire plophonique du jeu video
Pour une histoire plophonique du jeu video
 
Become Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open SourceBecome Rick and famous, thanks to Open Source
Become Rick and famous, thanks to Open Source
 
Reconnaissance vocale et création artistique
Reconnaissance vocale et création artistiqueReconnaissance vocale et création artistique
Reconnaissance vocale et création artistique
 
Natural Language Processing
Natural Language ProcessingNatural Language Processing
Natural Language Processing
 
Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur Sécurité, GDPR : vos données ont de la valeur
Sécurité, GDPR : vos données ont de la valeur
 
Modern sql
Modern sqlModern sql
Modern sql
 

Jenkins - perdre du temps pour en gagner