Author
xebia-france
View
387
Download
1
Embed Size (px)
Introduire le Continuous Delivery dans votre entreprise
Par Benoit Moussaud (@bmoussaud) & Jean-Louis Rigau (@jlrigau)
Agenda
2
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
Continuous Delivery ?
1
Dé!nitionContinuous Delivery ?
« 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
Les composantsContinuous Delivery ?
5
0. Agile projects 1. Continuous Integration
• Automated testing • Automated packaging • Automated distribution • Software Library (DSL) • Clear reports • Fewer coding errors • Auditability
Development Test Acceptance Production
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
App B V 3.3
App B V 3.2
App B V 3.1
App B V 3.0
Development Test
Acceptance Production
2. Application Release Automation • Automated end to end deploy < 10 min. • Roll back in < 10 mn • Clear reports • Cheaper deployments • Fewer deployment errors • Auditability
App A V 2.0
App A V 1.2
App A V 1.1
App A V 1.0
Improve Time to marketContinuous Delivery ?
6
Réduction du risqueContinuous Delivery ?
7
Qualité ++Continuous Delivery ?
8
La FormuleContinuous Delivery
higher quality + automation (test + provisioning +deployment )
= cost reduction + acceleration
9
Modèle de maturitéContinuous Delivery ?
10
Automatisation en pratiqueContinuous Delivery ?
11
Development Test Acceptance Production
App B V 3.3
App B V 3.2
App B V 3.1
App B V 3.0
Development Test
Acceptance Production
App A V 2.0
App A V 1.2
App A V 1.1
App A V 1.0
Agile projects
Continuous Integration
Application Release Automation
Provisioning
DeployitApplication Deployment for DevOps
2
Deployment PackageDeployit
✓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
EnvironnementDeployit
✓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
Le déploiementDeployit
• 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
Un même package déployé sur di"érents environmentsDeployit
16
System AdministratorDeveloper
Les dictionnairesDeployit
•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
Les fonctionnalitésDeployit
• 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
ArchitectureDeployit
19
Solution transverse & sécuriséeDeployit
20
Deployit
Auto!owpas de
scripts à maintenir
Architecture sans agent
Plugins Procédures de
déploiement out of the box
Basé sur un modèle
DeployitPourquoi est-il di"érent ?
21
Mise en oeuvre
accélérée
DeployitPlugins et points d’extension
22
• 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 Bundled Plugins Community PluginsIBM WAS 6, 7, 8 et 8.5 Command Plugin Test Application PluginIBM WebSphere MQ File Plugin Lock PluginIBM WebSphere Process Server Web Server Plugin Change Management PluginOracle Weblogic Server 9, 10, 11g, 12c
Database Plugin Apache mod_jkOracle Service Bus 10 et 11 Notification Plugin Scheduler / SLA PluginJBoss Application Server 4, 5, 6 ,7 Release Authorization Plugin Generic Load Balancer PluginApache Tomcat Server Maven Plugin DataPower PluginIIS / Biztalk Bamboo Plugin RPM PluginBigIP F5 Load Balancer Puppet Plugin Personal Credentials Plugin
Jenkins Plugin
REXMise en place du processus de déploiement continusur le projet SParkà la SGCIB
3
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.
REXSPark in a glance
24
REXDeployment pipeline
25
One Click Deployment
Continuous Deployment Job
Versioning
Build Execute tests
Package
Archive Automatic
Deployment
DEV
HOTFIX
One Click Deployment
UAT
Release Job
Tag
Increment version PRD
develop
hotfix 1
Developer
dev
3 run
Developer
2 test
Business Analyst
REXRelease strategy
26
Weeks
Delivery pace
Sprint N Sprint N+1 Sprint N+2
DEV DEV DEV
ReviewD
emo
Fix
#1 #2 #3 #4 #5 #6
Review
Dem
o
Fix
Review
Dem
o
Fix
2 weeks 2 weeks 2 weeks
REXDeployment statistics
27
Since April 2012 Per month Per day
8
177
3010
5
78
13
224
2
31
531
6
128
2177
DEV UAT HOTFIX PRD Overall
8 per day!
3010 deployments in 1,5 years
Activity automation maturityREX
28
Activity 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#6 Run functional non-reg. tests In progress /Auto All build Manual All release#7 Run user interface non-reg. tests 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
#10 Run smoke tests Auto All deployment Manual All release#11 Verify code quality Auto All build None#12 Deploy to homologation env. Push Button On demand Manual On demand#13 Acceptance tests Manual On demand Manual On demand#14 Deploy to pre-prod env. Push Button On demand Manual On demand#15 Prepare rollout & rollback planning 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#19 Feedback on issues Auto Real time Manual All release
SPark ‘Worst’ case
REXSatisfaction survey (April 2013)
29
68%75% 86%
Global Performance User communication
87%86% 87%
Dev Availability Enhancements Help desk
Sent to 680 users
68 answers
Bene!ts and pain pointsREX
30
Time to marketRisk decreaseQuality improvementE#ciencyNon-event releaseEnable CM/RM simpli!cation
Environment provisionningProximity with OpsNew usages of IC tools
Bene"ts
Pain points
Be able to deliver in production features independently one from each other
REXNext steps
31
YOUFOR watching
THANK
Merci!