78
Les Pipelines Jenkins dans la vraie vie Jean-Philippe Briend

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

Embed Size (px)

Citation preview

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

Les Pipelines Jenkinsdans la vraie vie

Jean-Philippe Briend

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

About me

Jean-Philippe Briend

@jpbriend Java expert,Pèlerin DevOps,Automation addict

DevOps,

Continuous Delivery,

Software Craftmanship

[email protected]

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

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

Développeur ?

Exploitation ?

Testeur ?

Chef de projet ?

Vous

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

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

Qui ?

Pour jouer ?

Utilisé dans la vraie vie ?

Jenkins 2 et Pipeline

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

Personne n’est parfait !

Bonne nouvelle !

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

Qui utilise Jenkins ?

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

Comment livrer plus rapidement du meilleur code ?

ProdDev

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

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

pour automatiser

Il nous faut

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

un pipeline

Il nous faut

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

Un pipeline linéaire typique

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

Les jobs Jenkins Pipeline !

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

Type de job Pipeline

Page 16: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 17: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Progression et historique

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

“Ce qui est bien mais pas top”

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

Pipeline optimisé

Page 20: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 21: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Pipeline Stage View

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

On a fini ?

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

Commit

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

Lancer le process

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

Vérifier la qualité

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

et releaser !!!

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

attends attends attends…

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

Composant unique

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

ou microservice

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

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

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

ayant des dépendances

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

Les nouvelles fonctionnalitésfournies par de nouvelles interfacesnécessitent des versions minimum

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

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

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

???

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

Assembly build

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

Release pipeline

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

Release Pipeline

Page 40: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 41: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Encore une étape manuelle ???

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

Quelle version ?

Mauvais build = régression

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

Et si on utilisait un trigger automatique depuis le job amont ?

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

Utilisez la commande build

Page 45: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 46: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Mais il nous faut le numéro de build de

chaque composant

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

On pourrait trouver qqchose dans

Jenkins…

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

Inspecter la version déployée ?

Page 49: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 50: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

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
Page 52: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

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

Read / Write manifest ?

Page 54: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 55: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Où stocker ce manifest ?

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

Jenkins Build workspace ?SCM ?Jenkins Build artifact ?External file system ?Artifact repository ?

Page 57: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 58: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Fini ?

Page 59: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 60: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

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

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

Mise à jour du manifest asynchrone par rapport au build

de Release

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

63

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

manifest-update

Page 65: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 66: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

release-build

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

Exécuter le déploiement

Page 68: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 69: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Tout redéployer ?

Comparer à ce qui tourne

Page 70: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 71: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Comparer au manifest

Page 72: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 73: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

manifest

updates

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

Demo

Page 75: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie
Page 76: [Codeur en seine] Les Pipelines Jenkins dans la vraie vie

Pipelines ≠ linéaires

Assembler de multiples composants

Pattern fan-in

Déclencher des jobs downstream

Suivre avec des manifests

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