Top Banner
Les Pipelines Jenkins dans la vraie vie Jean-Philippe Briend
75

Realworld cd pipelines

Apr 16, 2017

Download

Engineering

TREEPTIK
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Realworld cd pipelines

Les Pipelines Jenkinsdans la vraie vie

Jean-Philippe Briend

Page 2: Realworld cd pipelines

About me

Jean-Philippe Briend

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

DevOps,

Continuous Delivery,

Software Craftmanship

[email protected]

Page 3: Realworld cd pipelines

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: Realworld cd pipelines

Développeur ?

Exploitation ?

Testeur ?

Chef de projet ?

Vous

Page 5: Realworld cd pipelines

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: Realworld cd pipelines

Personne n’est parfait !

Bonne nouvelle !

Page 7: Realworld cd pipelines

Qui utilise Jenkins ?

Page 8: Realworld cd pipelines

Comment livrer plus rapidement du meilleur code ?

ProdDev

Page 9: Realworld cd pipelines

Un processus • qui s’assure de la qualité• s’execute de façon fiable• produit de la valeur rapidement

Il nous faut

Page 10: Realworld cd pipelines

pour automatiser

Il nous faut

Page 11: Realworld cd pipelines

un pipeline

Il nous faut

Page 12: Realworld cd pipelines

Un pipeline linéaire typique

Page 13: Realworld cd pipelines

Les jobs Jenkins Pipeline !

Page 14: Realworld cd pipelines

Type de job Pipeline

Page 15: Realworld cd pipelines
Page 16: Realworld cd pipelines

Progression et historique

Page 17: Realworld cd pipelines

“Ce qui est bien mais pas top”

Page 18: Realworld cd pipelines

Pipeline optimisé

Page 19: Realworld cd pipelines
Page 20: Realworld cd pipelines

Pipeline Stage View

Page 21: Realworld cd pipelines

On a fini ?

Page 22: Realworld cd pipelines

Commit

Page 23: Realworld cd pipelines

Lancer le process

Page 24: Realworld cd pipelines

Vérifier la qualité

Page 25: Realworld cd pipelines

et releaser !!!

Page 26: Realworld cd pipelines

attends attends attends…

Page 27: Realworld cd pipelines

Composant unique

Page 28: Realworld cd pipelines

ou microservice

Page 29: Realworld cd pipelines

Les tests sont complets

C’est releasable de façon indépendante

Ne casse pas la compatibilité ascendante

Uniquement valable si

Page 30: Realworld cd pipelines

Un système est composé d’une multitude d’applications/composants

Sauf que

Page 31: Realworld cd pipelines

ayant des dépendances

Page 32: Realworld cd pipelines

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

Page 33: Realworld cd pipelines

Tests de chaine ?

Quid des tests de performance ou tests fonctionnels ?

Mais aussi

Page 34: Realworld cd pipelines

Et les cas des systems embarqués ?

Il faut fournir une image complete contenant tous les composants

Page 35: Realworld cd pipelines

???

Page 36: Realworld cd pipelines

Assembly build

Page 37: Realworld cd pipelines

Release pipeline

Page 38: Realworld cd pipelines

Release Pipeline

Page 39: Realworld cd pipelines
Page 40: Realworld cd pipelines

Encore une étape manuelle ???

Page 41: Realworld cd pipelines

Quelle version ?

Mauvais build = régression

Page 42: Realworld cd pipelines

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

Page 43: Realworld cd pipelines

Utilisez la commande build

Page 44: Realworld cd pipelines
Page 45: Realworld cd pipelines

Mais il nous faut le numéro de build de

chaque composant

Page 46: Realworld cd pipelines

On pourrait trouver qqchose dans

Jenkins…

Page 47: Realworld cd pipelines

Inspecter la version déployée ?

Page 48: Realworld cd pipelines
Page 49: Realworld cd pipelines

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 50: Realworld cd pipelines
Page 51: Realworld cd pipelines

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 52: Realworld cd pipelines

Read / Write manifest ?

Page 53: Realworld cd pipelines
Page 54: Realworld cd pipelines

Où stocker ce manifest ?

Page 55: Realworld cd pipelines

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

Page 56: Realworld cd pipelines
Page 57: Realworld cd pipelines

Fini ?

Page 58: Realworld cd pipelines
Page 59: Realworld cd pipelines

Jenkins sait mettre les jobs en attente

Gestion de la concurrence des stages Pipeline

La Concurrency Rule saute les builds

Page 60: Realworld cd pipelines

Ca va marcher avec les SCMs

Utiliser les builds paramétrés

Etapes supplémentaires ?

Page 61: Realworld cd pipelines

Mise à jour du manifest asynchrone par rapport au build

de Release

Page 62: Realworld cd pipelines

62

Page 63: Realworld cd pipelines

manifest-update

Page 64: Realworld cd pipelines
Page 65: Realworld cd pipelines

release-build

Page 66: Realworld cd pipelines

Exécuter le déploiement

Page 67: Realworld cd pipelines
Page 68: Realworld cd pipelines

Tout redéployer ?

Comparer à ce qui tourne

Page 69: Realworld cd pipelines
Page 70: Realworld cd pipelines

Comparer au manifest

Page 71: Realworld cd pipelines
Page 72: Realworld cd pipelines

manifest

updates

Page 73: Realworld cd pipelines
Page 74: Realworld cd pipelines

Pipelines ≠ linéaires

Assembler de multiples composants

Pattern fan-in

Déclencher des jobs downstream

Suivre avec des manifests

Page 75: Realworld cd pipelines