[Codeur en seine] Les Pipelines Jenkins dans la vraie vie
-
Upload
jean-philippe-briend -
Category
Software
-
view
76 -
download
0
Transcript of [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
![Page 1: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/1.jpg)
Les Pipelines Jenkinsdans la vraie vie
Jean-Philippe Briend
![Page 2: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/2.jpg)
About me
Jean-Philippe Briend
@jpbriend Java expert,Pèlerin DevOps,Automation addict
DevOps,
Continuous Delivery,
Software Craftmanship
![Page 3: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/3.jpg)
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.
![Page 4: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/4.jpg)
Développeur ?
Exploitation ?
Testeur ?
Chef de projet ?
Vous
![Page 5: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/5.jpg)
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
![Page 6: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/6.jpg)
Qui ?
Pour jouer ?
Utilisé dans la vraie vie ?
Jenkins 2 et Pipeline
![Page 7: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/7.jpg)
Personne n’est parfait !
Bonne nouvelle !
![Page 8: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/8.jpg)
Qui utilise Jenkins ?
![Page 9: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/9.jpg)
Comment livrer plus rapidement du meilleur code ?
ProdDev
![Page 10: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/10.jpg)
Un processus • qui s’assure de la qualité• s’exécute de façon fiable• produit de la valeur rapidement
Il nous faut
![Page 11: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/11.jpg)
pour automatiser
Il nous faut
![Page 12: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/12.jpg)
un pipeline
Il nous faut
![Page 13: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/13.jpg)
Un pipeline linéaire typique
![Page 14: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/14.jpg)
Les jobs Jenkins Pipeline !
![Page 15: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/15.jpg)
Type de job Pipeline
![Page 16: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/16.jpg)
![Page 17: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/17.jpg)
Progression et historique
![Page 18: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/18.jpg)
“Ce qui est bien mais pas top”
![Page 19: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/19.jpg)
Pipeline optimisé
![Page 20: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/20.jpg)
![Page 21: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/21.jpg)
Pipeline Stage View
![Page 22: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/22.jpg)
On a fini ?
![Page 23: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/23.jpg)
Commit
![Page 24: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/24.jpg)
Lancer le process
![Page 25: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/25.jpg)
Vérifier la qualité
![Page 26: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/26.jpg)
et releaser !!!
![Page 27: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/27.jpg)
attends attends attends…
![Page 28: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/28.jpg)
Composant unique
![Page 29: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/29.jpg)
ou microservice
![Page 30: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/30.jpg)
Les tests sont complets
C’est releasable de façon indépendante
Ne casse pas la compatibilité ascendante
Uniquement valable si
![Page 31: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/31.jpg)
Un système est composé d’une multitude d’applications/composants
Sauf que
![Page 32: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/32.jpg)
ayant des dépendances
![Page 33: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/33.jpg)
Les nouvelles fonctionnalitésfournies par de nouvelles interfacesnécessitent des versions minimum
![Page 34: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/34.jpg)
Tests de chaine ?
Quid des tests de performance ou tests fonctionnels ?
Mais aussi
![Page 35: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/35.jpg)
Et les cas des systems embarqués ?
Il faut fournir une image complète contenant tous les composants
![Page 36: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/36.jpg)
???
![Page 37: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/37.jpg)
Assembly build
![Page 38: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/38.jpg)
Release pipeline
![Page 39: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/39.jpg)
Release Pipeline
![Page 40: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/40.jpg)
![Page 41: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/41.jpg)
Encore une étape manuelle ???
![Page 42: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/42.jpg)
Quelle version ?
Mauvais build = régression
![Page 43: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/43.jpg)
Et si on utilisait un trigger automatique depuis le job amont ?
![Page 44: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/44.jpg)
Utilisez la commande build
![Page 45: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/45.jpg)
![Page 46: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/46.jpg)
Mais il nous faut le numéro de build de
chaque composant
![Page 47: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/47.jpg)
On pourrait trouver qqchose dans
Jenkins…
![Page 48: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/48.jpg)
Inspecter la version déployée ?
![Page 49: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/49.jpg)
![Page 50: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/50.jpg)
n. cargo-list for use of Customs officers; list of passengers in aircraft or of trucks etc. in goods train
Oxford English Dictionary
Manifest
![Page 51: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/51.jpg)
![Page 52: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/52.jpg)
Que met-on dans un manifest ?la liste des composants et leur version
#Tue Mar 01 23:11:41 GMT 2016mobile-deposit-api=1.0.0-21mobile-deposit-ui=1.0.0-4
![Page 53: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/53.jpg)
Read / Write manifest ?
![Page 54: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/54.jpg)
![Page 55: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/55.jpg)
Où stocker ce manifest ?
![Page 56: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/56.jpg)
Jenkins Build workspace ?SCM ?Jenkins Build artifact ?External file system ?Artifact repository ?
![Page 57: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/57.jpg)
![Page 58: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/58.jpg)
Fini ?
![Page 59: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/59.jpg)
![Page 60: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/60.jpg)
Jenkins sait mettre les jobs en attente
Gestion de la concurrence des stages Pipeline
La Concurrency Rule saute les builds
![Page 61: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/61.jpg)
Ca va marcher avec les SCMs
Utiliser les builds paramétrés
Etapes supplémentaires ?
![Page 62: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/62.jpg)
Mise à jour du manifest asynchrone par rapport au build
de Release
![Page 63: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/63.jpg)
63
![Page 64: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/64.jpg)
manifest-update
![Page 65: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/65.jpg)
![Page 66: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/66.jpg)
release-build
![Page 67: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/67.jpg)
Exécuter le déploiement
![Page 68: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/68.jpg)
![Page 69: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/69.jpg)
Tout redéployer ?
Comparer à ce qui tourne
![Page 70: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/70.jpg)
![Page 71: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/71.jpg)
Comparer au manifest
![Page 72: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/72.jpg)
![Page 73: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/73.jpg)
manifest
updates
![Page 74: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/74.jpg)
Demo
![Page 75: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/75.jpg)
![Page 76: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/76.jpg)
Pipelines ≠ linéaires
Assembler de multiples composants
Pattern fan-in
Déclencher des jobs downstream
Suivre avec des manifests
![Page 77: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/77.jpg)
https://github.com/jpbriend/mobile-deposit*
Branches qcon
Sources
![Page 78: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie](https://reader034.fdocument.pub/reader034/viewer/2022042619/5883ebcc1a28ab34428b524f/html5/thumbnails/78.jpg)