View
111
Download
0
Category
Preview:
Citation preview
Les Pipelines Jenkinsdans 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ésfournies par de nouvelles interfacesné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 2016mobile-deposit-api=1.0.0-21mobile-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
Recommended