SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Introduire le Continuous Delivery dans
votre entreprise
Par Benoit Moussaud (@bmoussaud) & Jean-Louis Rigau (@jlrigau)
Agenda
1

Continuous Delivery ?

2

Deployit
Application deployment for DevOps

3

REX du projet SPark à la SGCIB
Mise en place du processus de déploiement continu

2
Continuous
Delivery ?
1
Continuous Delivery ?
Dé!nition
« Stratégie de livraison de logiciels visant à passer vos besoins métier jusqu’en
production aussi rapidement et e"cacement que possible. »
Pipeline de livraison automatisé:
1. Code géré en con#guration
2. Compilation et packaging centralisés et automatisés
3. Tests automatisés et intégrés au processus
4. Applications déployées automatiquement de bout en bout
5. Environnements créés et détruits à la volée / en mode ‘Push Button’
6. Reporting clair, précis et continu

4
Continuous Delivery ?
Les composants
0. Agile projects

1. Continuous Integration

• 
• 
• 
• 
• 
• 
• 

Automated testing
Automated packaging
Automated distribution
Software Library (DSL)
Clear reports
Fewer coding errors
Auditability

2. Application Release Automation
• 
• 
• 
• 
• 
• 

Automated end to end deploy < 10 min.
Roll back in < 10 mn
Clear reports
Cheaper deployments
Fewer deployment errors
Auditability

3. Provisioning
• 
• 
• 
• 
• 
• 
• 
• 

Build / teardown environments < 15 min.
Standardized environments
Reproducible environment configuration
Policy controlled creation and scaling
Fewer errors
Clear reports
Less environment errors
Auditability

Development

Test

Acceptance

Production

App A
V 2.0

App A
V 1.2

App A
V 1.1

App A
V 1.0

Development

Test

Acceptance

Production

App B
V 3.3

App B
V 3.2

App B
V 3.1

App B
V 3.0

5
Continuous Delivery ?
Improve Time to market

6
Continuous Delivery ?
Réduction du risque

7
Continuous Delivery ?
Qualité ++

8
Continuous Delivery
La Formule

higher quality + automation

(test + provisioning +deployment )

= cost reduction + acceleration

9
Continuous Delivery ?
Modèle de maturité

10
Continuous Delivery ?
Automatisation en pratique
Agile projects
Continuous Integration
Application Release Automation

Provisioning
Development

Test

Acceptance

Production

App A
V 2.0

App A
V 1.2

App A
V 1.1

App A
V 1.0

Development

Test

Acceptance

Production

App B
V 3.3

App B
V 3.2

App B
V 3.1

App B
V 3.0

11
Deployit
Application
Deployment for
DevOps

2
Deployit
Deployment Package
✓Un par version d’application
✓Complet, il contient l’ensemble des ressources nécessaires
• archives (WAR, EAR, JAR…)
• .exe, .dll, application pool
• contenu statique (html, javascript, images, video)
• scripts de bases de données et datasources
• !chiers de con!guration
✓Structure adaptable aux modes opératoires existants
✓Indépendant de l’environnement

13
Deployit
Environnement
✓Machine ou ensemble de machines sur lesquelles sont installés des middleware
• Serveurs d’application, Serveurs Web
• Base de données
• Portail, ESB,
• ....
✓Classiquement
• Développement (simple)
• Test
• Recette
• Production (complexe)

14
Deployit
Le déploiement
• Associer un package (version X de l’application Y) sur un environnement Z
• Chaque élément du package (deployable) est associé à un ou plusieurs
containers de l’environnementpour devenir un ‘deployed’

• Chaque ‘deployed’ est con#gurable.

15
Deployit
Un même package déployé sur di"érents environments

Developer

System Administrator

16
Deployit
Les dictionnaires
•Permettent de centraliser et gérer les paramètres de con#guration en
fonction de l’environnement cible

•Valeur par défaut des propriétés (ex: #le.DeployedFile.targetDir)
•Valeur des placeholders (ex:{{DB_USERNAME}}, {{ULR_BACKEND}})
•Association
•Plusieurs par environnement
•Partageables entre plusieurs environnements

17
Deployit
Les fonctionnalités
• Implémente l’UDM
• Référentiels (Applications, Environnement, Infrastructure)
• Point central de con#guration
• Moteur de calcul automatique des plans de déploiements (AutoFlow)
• Automate de déploiement

18
Deployit
Architecture

19
Deployit
Solution transverse & sécurisée

20
Deployit
Pourquoi est-il di"érent ?
Plugins
Procédures de
déploiement out
of the box

Auto!ow
pas de
scripts à
maintenir

Deployit

Basé sur un
modèle

Architecture
sans agent
Mise en
oeuvre
accélérée
21
Deployit
Plugins et points d’extension
• Apportent le savoir-faire de déploiement
•Travaillent de concert
• Extensibles et paramétrables par con#guration (XML)
•‘Generic Plugin’ : pour modéliser un déploiement (package & container)
Licensed Plugin
IBM WAS 6, 7, 8 et 8.5
IBM WebSphere MQ
IBM WebSphere Process Server
Oracle Weblogic Server 9, 10, 11g,
Oracle Service Bus 10 et 11
12c
JBoss Application Server 4, 5, 6 ,7
Apache Tomcat Server
IIS / Biztalk
BigIP F5 Load Balancer

Bundled Plugins
Command Plugin
File Plugin
Web Server Plugin
Database Plugin
Notification Plugin
Release Authorization Plugin
Maven Plugin
Bamboo Plugin
Puppet Plugin
Jenkins Plugin

Community Plugins
Test Application Plugin
Lock Plugin
Change Management Plugin
Apache mod_jk
Scheduler / SLA Plugin
Generic Load Balancer Plugin
DataPower Plugin
RPM Plugin
Personal Credentials Plugin
22
REX

Mise en place du processus
de déploiement continu
sur le projet SPark
à la SGCIB

3
REX
SPark in a glance

SPark is an application, used worldwide, that
provides a uni!ed process for multi-asset structured
products creation.
SPark is a repository and a Work"ow.
Used by more than 700 users. Sales, Pricers,
Structurers, traders, middle o#ces, etc.
Developments started in October 2011.
SPark is in production since June 2012.

24
REX
Deployment pipeline
hotfix

dev

develop

1

Versioning
Build

DEV

Execute tests
Developer

Package

HOTFIX

Archive
Continuous Deployment Job

2

test

UAT
One Click
Deployment

Business
Analyst

3

Automatic
Deployment

run

Tag

PRD

Increment version
Developer

Release Job

One Click
Deployment

25
REX
Release strategy

#1

#2

#3

#4

#5

DEV

Review

Demo

DEV

Sprint N+2
#6

DEV

Fix
Review

Demo

Weeks

Sprint N+1

Fix
Review

Delivery pace

2 weeks

2 weeks

Demo

Sprint N

Fix

2 weeks

26
REX
Deployment statistics
3010

2177
531

224
78

8 per day!

177

128
31

13

8

6

5

2
Since April 2012

DEV

Per month

UAT

HOTFIX

Per day

PRD

Overall

3010 deployments in 1,5 years
27
REX
Activity automation maturity
SPark

‘Worst’ case

Action Mode

Frequency

Action Mode

Frequency

#1 Build a package

Auto

All build

Manual

All release

#2 Deploy on development env.

Auto

All build

Manual

On demand

#3 Historize package

Auto

All build

Manual

All release

#4 Run unitary tests

Auto

All build

None

#5 Run integration tests

Auto

All build

Manual

All release

In progress /Auto

All build

Manual

All release

In study /Auto

All build

Manual

All release

#8 Run performance tests

No - To Do

All build

Manual

All release

#9 Run security tests

No - To Do

All build

Manual

All release

Auto
Auto

All deployment
All build

Manual
None

All release

Push Button

On demand

Manual

On demand

Manual

On demand

Manual

On demand

Push Button

On demand

Manual

On demand

Auto

All deployment

Manual

All prod release

#16 Deploy to prod env.

Push Button

On demand

Manual

On demand

#17 Setup environment

Manual

On demand

Manual

On demand

#18 Refresh database

Manual

On demand

Manual

On demand

Auto

Real time

Manual

All release

Activity

#6 Run functional non-reg. tests
#7 Run user interface non-reg. tests

#10 Run smoke tests
#11 Verify code quality
#12 Deploy to homologation env.
#13 Acceptance tests
#14 Deploy to pre-prod env.
#15 Prepare rollout & rollback planning

#19 Feedback on issues

28
REX
Satisfaction survey (April 2013)
Sent to 680
users

75%

68%

86%

Global

Performance

User
communication
68 answers

86%

87%

87%

Dev Availability

Enhancements

Help desk
29
REX
Bene!ts and pain points
Time to market
Risk decrease
Quality improvement
E#ciency
Non-event release
Enable CM/RM simpli!cation
Bene"ts

Environment provisionning
Proximity with Ops
New usages of IC tools
Pain points
30
REX
Next steps
Be able to deliver in
production
features
independently one
from each other

31
THANK
YOU

FOR watching

Merci!

Más contenido relacionado

La actualidad más candente

French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0
XebiaLabs
 

La actualidad más candente (20)

Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft Azure dev Ops pour le Cloud... et réciproquement…Microsoft Azure dev Ops pour le Cloud... et réciproquement…
Microsoft Azure dev Ops pour le Cloud... et réciproquement…
 
Microsoft DevOps Day 2015 02122015 - Introduction
Microsoft DevOps Day 2015 02122015 - IntroductionMicrosoft DevOps Day 2015 02122015 - Introduction
Microsoft DevOps Day 2015 02122015 - Introduction
 
DevOps vu par les Ops
DevOps vu par les OpsDevOps vu par les Ops
DevOps vu par les Ops
 
DevOps : mission [im]possible ?
DevOps : mission [im]possible ?DevOps : mission [im]possible ?
DevOps : mission [im]possible ?
 
Azure DevOps Tests Plan
Azure DevOps Tests PlanAzure DevOps Tests Plan
Azure DevOps Tests Plan
 
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
Journée DevOps : Les piliers du déploiement applicatif avec XL Deploy de Xebi...
 
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !Devoxx 17 - Orchestration de conteneurs : le choix des armes !
Devoxx 17 - Orchestration de conteneurs : le choix des armes !
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle
 
Intégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ciIntégration de SonarQube dans GitLab ci
Intégration de SonarQube dans GitLab ci
 
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
DevOps - Retour d'expérience - MarsJug du 29 Juin 2011
 
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft AzureTIAD 2016 : Accenture Devops Platform dans Microsoft Azure
TIAD 2016 : Accenture Devops Platform dans Microsoft Azure
 
20110125 04 - Présentation Squash
20110125 04 - Présentation Squash20110125 04 - Présentation Squash
20110125 04 - Présentation Squash
 
DODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez CroesusDODMTL 2019 - Agile et DevOps chez Croesus
DODMTL 2019 - Agile et DevOps chez Croesus
 
REX Devops Docker
REX Devops DockerREX Devops Docker
REX Devops Docker
 
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 [devops REX 2016] Les impacts techniques et organisationnels liés à devops [devops REX 2016] Les impacts techniques et organisationnels liés à devops
[devops REX 2016] Les impacts techniques et organisationnels liés à devops
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0French Webinar: XL Deploy 4.0
French Webinar: XL Deploy 4.0
 
20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
Webinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuellesWebinar: Passez progressivement de releases manuelles
Webinar: Passez progressivement de releases manuelles
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications
 

Similar a Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-Louis Rigau et Benoit Moussaud

La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
PimpMySharePoint
 
Présentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptxPrésentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptx
ZALIMAZA
 
TFS 2010 And Agility
TFS 2010 And AgilityTFS 2010 And Agility
TFS 2010 And Agility
Dominic Danis
 

Similar a Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-Louis Rigau et Benoit Moussaud (20)

Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
8 Rex : Mise en place de DevOps sur Azure
8   Rex : Mise en place de DevOps sur Azure8   Rex : Mise en place de DevOps sur Azure
8 Rex : Mise en place de DevOps sur Azure
 
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
Devoteam REX OpenShift DevOps - Red Hat Roadshow Paris - avril 2018
 
Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017Être productif avec JHipster - Devoxx France 2017
Être productif avec JHipster - Devoxx France 2017
 
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
qualimétrie logiciel -  Entreprise Software Analytic - nov 2015qualimétrie logiciel -  Entreprise Software Analytic - nov 2015
qualimétrie logiciel - Entreprise Software Analytic - nov 2015
 
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
La gouvernance, ou comment rapprocher les équipes de développement et d'infra...
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Mohamed.marouan
Mohamed.marouanMohamed.marouan
Mohamed.marouan
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Présentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptxPrésentation DEVOPS_PO.pptx
Présentation DEVOPS_PO.pptx
 
Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?Docker, Pierre angulaire du continuous delivery ?
Docker, Pierre angulaire du continuous delivery ?
 
Processus d’intégration continue et outils
Processus d’intégration continue et outilsProcessus d’intégration continue et outils
Processus d’intégration continue et outils
 
Présentation DEVOPS.pptx
Présentation DEVOPS.pptxPrésentation DEVOPS.pptx
Présentation DEVOPS.pptx
 
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 ...
 
TFS 2010 And Agility
TFS 2010 And AgilityTFS 2010 And Agility
TFS 2010 And Agility
 
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
20131210 - Rex Bouygues Telecom - Integration et inspection continue avec RTC...
 
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetiteGab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
Gab17 lyon-rex build dev ops sur une infra iaas-paas multisite-by-matthieupetite
 
Devops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.comDevops chez Voyages-Sncf.com
Devops chez Voyages-Sncf.com
 

Más de Publicis Sapient Engineering

Más de Publicis Sapient Engineering (20)

XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humainXebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
XebiCon'18 - L'algorithme de reconnaissance de formes par le cerveau humain
 
Xebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to CloudXebicon'18 - IoT: From Edge to Cloud
Xebicon'18 - IoT: From Edge to Cloud
 
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveurXebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
Xebicon'18 - Spark in jail : conteneurisez vos traitements data sans serveur
 
XebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern InfrastructureXebiCon'18 - Modern Infrastructure
XebiCon'18 - Modern Infrastructure
 
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
XebiCon'18 - La Web App d'aujourd'hui et de demain : état de l'art et bleedin...
 
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
XebiCon'18 - Des notebook pour le monitoring avec Zeppelin
 
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
XebiCon'18 - Event Sourcing et RGPD, incompatibles ?
 
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
XebiCon'18 - Deno, le nouveau NodeJS qui inverse la tendance ?
 
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 

Open XKE - Introduire le Continuous Delivery dans votre entreprise par Jean-Louis Rigau et Benoit Moussaud

  • 1. Introduire le Continuous Delivery dans votre entreprise Par Benoit Moussaud (@bmoussaud) & Jean-Louis Rigau (@jlrigau)
  • 2. Agenda 1 Continuous Delivery ? 2 Deployit Application deployment for DevOps 3 REX du projet SPark à la SGCIB Mise en place du processus de déploiement continu 2
  • 4. Continuous Delivery ? Dé!nition « Stratégie de livraison de logiciels visant à passer vos besoins métier jusqu’en production aussi rapidement et e"cacement que possible. » Pipeline de livraison automatisé: 1. Code géré en con#guration 2. Compilation et packaging centralisés et automatisés 3. Tests automatisés et intégrés au processus 4. Applications déployées automatiquement de bout en bout 5. Environnements créés et détruits à la volée / en mode ‘Push Button’ 6. Reporting clair, précis et continu 4
  • 5. Continuous Delivery ? Les composants 0. Agile projects 1. Continuous Integration •  •  •  •  •  •  •  Automated testing Automated packaging Automated distribution Software Library (DSL) Clear reports Fewer coding errors Auditability 2. Application Release Automation •  •  •  •  •  •  Automated end to end deploy < 10 min. Roll back in < 10 mn Clear reports Cheaper deployments Fewer deployment errors Auditability 3. Provisioning •  •  •  •  •  •  •  •  Build / teardown environments < 15 min. Standardized environments Reproducible environment configuration Policy controlled creation and scaling Fewer errors Clear reports Less environment errors Auditability Development Test Acceptance Production App A V 2.0 App A V 1.2 App A V 1.1 App A V 1.0 Development Test Acceptance Production App B V 3.3 App B V 3.2 App B V 3.1 App B V 3.0 5
  • 6. Continuous Delivery ? Improve Time to market 6
  • 9. Continuous Delivery La Formule higher quality + automation (test + provisioning +deployment ) = cost reduction + acceleration 9
  • 10. Continuous Delivery ? Modèle de maturité 10
  • 11. Continuous Delivery ? Automatisation en pratique Agile projects Continuous Integration Application Release Automation Provisioning Development Test Acceptance Production App A V 2.0 App A V 1.2 App A V 1.1 App A V 1.0 Development Test Acceptance Production App B V 3.3 App B V 3.2 App B V 3.1 App B V 3.0 11
  • 13. Deployit Deployment Package ✓Un par version d’application ✓Complet, il contient l’ensemble des ressources nécessaires • archives (WAR, EAR, JAR…) • .exe, .dll, application pool • contenu statique (html, javascript, images, video) • scripts de bases de données et datasources • !chiers de con!guration ✓Structure adaptable aux modes opératoires existants ✓Indépendant de l’environnement 13
  • 14. Deployit Environnement ✓Machine ou ensemble de machines sur lesquelles sont installés des middleware • Serveurs d’application, Serveurs Web • Base de données • Portail, ESB, • .... ✓Classiquement • Développement (simple) • Test • Recette • Production (complexe) 14
  • 15. Deployit Le déploiement • Associer un package (version X de l’application Y) sur un environnement Z • Chaque élément du package (deployable) est associé à un ou plusieurs containers de l’environnementpour devenir un ‘deployed’ • Chaque ‘deployed’ est con#gurable. 15
  • 16. Deployit Un même package déployé sur di"érents environments Developer System Administrator 16
  • 17. Deployit Les dictionnaires •Permettent de centraliser et gérer les paramètres de con#guration en fonction de l’environnement cible •Valeur par défaut des propriétés (ex: #le.DeployedFile.targetDir) •Valeur des placeholders (ex:{{DB_USERNAME}}, {{ULR_BACKEND}}) •Association •Plusieurs par environnement •Partageables entre plusieurs environnements 17
  • 18. Deployit Les fonctionnalités • Implémente l’UDM • Référentiels (Applications, Environnement, Infrastructure) • Point central de con#guration • Moteur de calcul automatique des plans de déploiements (AutoFlow) • Automate de déploiement 18
  • 21. Deployit Pourquoi est-il di"érent ? Plugins Procédures de déploiement out of the box Auto!ow pas de scripts à maintenir Deployit Basé sur un modèle Architecture sans agent Mise en oeuvre accélérée 21
  • 22. Deployit Plugins et points d’extension • Apportent le savoir-faire de déploiement •Travaillent de concert • Extensibles et paramétrables par con#guration (XML) •‘Generic Plugin’ : pour modéliser un déploiement (package & container) Licensed Plugin IBM WAS 6, 7, 8 et 8.5 IBM WebSphere MQ IBM WebSphere Process Server Oracle Weblogic Server 9, 10, 11g, Oracle Service Bus 10 et 11 12c JBoss Application Server 4, 5, 6 ,7 Apache Tomcat Server IIS / Biztalk BigIP F5 Load Balancer Bundled Plugins Command Plugin File Plugin Web Server Plugin Database Plugin Notification Plugin Release Authorization Plugin Maven Plugin Bamboo Plugin Puppet Plugin Jenkins Plugin Community Plugins Test Application Plugin Lock Plugin Change Management Plugin Apache mod_jk Scheduler / SLA Plugin Generic Load Balancer Plugin DataPower Plugin RPM Plugin Personal Credentials Plugin 22
  • 23. REX Mise en place du processus de déploiement continu sur le projet SPark à la SGCIB 3
  • 24. REX SPark in a glance SPark is an application, used worldwide, that provides a uni!ed process for multi-asset structured products creation. SPark is a repository and a Work"ow. Used by more than 700 users. Sales, Pricers, Structurers, traders, middle o#ces, etc. Developments started in October 2011. SPark is in production since June 2012. 24
  • 25. REX Deployment pipeline hotfix dev develop 1 Versioning Build DEV Execute tests Developer Package HOTFIX Archive Continuous Deployment Job 2 test UAT One Click Deployment Business Analyst 3 Automatic Deployment run Tag PRD Increment version Developer Release Job One Click Deployment 25
  • 26. REX Release strategy #1 #2 #3 #4 #5 DEV Review Demo DEV Sprint N+2 #6 DEV Fix Review Demo Weeks Sprint N+1 Fix Review Delivery pace 2 weeks 2 weeks Demo Sprint N Fix 2 weeks 26
  • 27. REX Deployment statistics 3010 2177 531 224 78 8 per day! 177 128 31 13 8 6 5 2 Since April 2012 DEV Per month UAT HOTFIX Per day PRD Overall 3010 deployments in 1,5 years 27
  • 28. REX Activity automation maturity SPark ‘Worst’ case Action Mode Frequency Action Mode Frequency #1 Build a package Auto All build Manual All release #2 Deploy on development env. Auto All build Manual On demand #3 Historize package Auto All build Manual All release #4 Run unitary tests Auto All build None #5 Run integration tests Auto All build Manual All release In progress /Auto All build Manual All release In study /Auto All build Manual All release #8 Run performance tests No - To Do All build Manual All release #9 Run security tests No - To Do All build Manual All release Auto Auto All deployment All build Manual None All release Push Button On demand Manual On demand Manual On demand Manual On demand Push Button On demand Manual On demand Auto All deployment Manual All prod release #16 Deploy to prod env. Push Button On demand Manual On demand #17 Setup environment Manual On demand Manual On demand #18 Refresh database Manual On demand Manual On demand Auto Real time Manual All release Activity #6 Run functional non-reg. tests #7 Run user interface non-reg. tests #10 Run smoke tests #11 Verify code quality #12 Deploy to homologation env. #13 Acceptance tests #14 Deploy to pre-prod env. #15 Prepare rollout & rollback planning #19 Feedback on issues 28
  • 29. REX Satisfaction survey (April 2013) Sent to 680 users 75% 68% 86% Global Performance User communication 68 answers 86% 87% 87% Dev Availability Enhancements Help desk 29
  • 30. REX Bene!ts and pain points Time to market Risk decrease Quality improvement E#ciency Non-event release Enable CM/RM simpli!cation Bene"ts Environment provisionning Proximity with Ops New usages of IC tools Pain points 30
  • 31. REX Next steps Be able to deliver in production features independently one from each other 31