Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduire le Continuous Delivery dans votre en...

Introduire le Continuous Delivery dans votre entreprise @ Open XKE

Cette session a pour vocation de sensibiliser les participants aux concepts clés du Continuous Delivery en entreprise, les bénéfices à en attendre, les pré-requis, les différentes briques à mettre en place et de démontrer une solution complète et intégrée couvrant Intégration Continue, Déploiement Automatique et Provisioning d'Infrastructure, s'appuyant sur Deployit.

Il sera illustré par un retour d’expérience sur la mise en place d'un processus de Continuous Delivery sur le projet SPark au sein de le SGCIB.

Jean-Louis Rigau

November 04, 2013
Tweet

More Decks by Jean-Louis Rigau

Other Decks in Programming

Transcript

  1. 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
  2. Dé!nition Continuous 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
  3. Les composants Continuous 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
  4. La Formule Continuous Delivery higher quality + automation (test +

    provisioning +deployment ) = cost reduction + acceleration 9
  5. Automatisation en pratique Continuous 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
  6. Deployment Package Deployit ✓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
  7. Environnement Deployit ✓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
  8. Le déploiement Deployit • 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
  9. Les dictionnaires Deployit •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
  10. Les fonctionnalités Deployit • 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
  11. Deployit Auto!ow pas de scripts à maintenir Architecture sans agent

    Plugins Procédures de déploiement out of the box Basé sur un modèle Deployit Pourquoi est-il di"érent ? 21 Mise en oeuvre accélérée
  12. Deployit Plugins 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 Plugins IBM WAS 6, 7, 8 et 8.5 Command Plugin Test Application Plugin IBM WebSphere MQ File Plugin Lock Plugin IBM WebSphere Process Server Web Server Plugin Change Management Plugin Oracle Weblogic Server 9, 10, 11g, 12c Database Plugin Apache mod_jk Oracle Service Bus 10 et 11 Notification Plugin Scheduler / SLA Plugin JBoss Application Server 4, 5, 6 ,7 Release Authorization Plugin Generic Load Balancer Plugin Apache Tomcat Server Maven Plugin DataPower Plugin IIS / Biztalk Bamboo Plugin RPM Plugin BigIP F5 Load Balancer Puppet Plugin Personal Credentials Plugin Jenkins Plugin
  13. 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. REX SPark in a glance 24
  14. REX Deployment 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
  15. REX Release strategy 26 Weeks Delivery pace Sprint N Sprint

    N+1 Sprint N+2 DEV DEV DEV Review Demo Fix #1 #2 #3 #4 #5 #6 Review Demo Fix Review Demo Fix 2 weeks 2 weeks 2 weeks
  16. REX Deployment 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
  17. Activity automation maturity REX 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
  18. REX Satisfaction 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
  19. Bene!ts and pain points REX 30 Time to market Risk

    decrease Quality improvement E#ciency Non-event release Enable CM/RM simpli!cation Environment provisionning Proximity with Ops New usages of IC tools Bene"ts Pain points