DevOps en pratique Philippe Bauquel, bauquel.p@fr.ibm.com, +33 6 87 74 95 63
Nous sommes dans l ère de l interaction entre les systèmes Systems of Engagement Systems of Record 1.2 Milliards de consommateurs auront des Smartphones CRM DB HR ERP 60,000 cyber attaques par jour Cloud-based Services 200 Milliards de systèmes physiques avec une intelligence IT 2.7 ZB contenu numérique généré en 2012 Internet of Things
La maîtrise de la livraison des applications est lié à la performance d une entreprise 54 % des entreprises pensent que la maîtrise de la livraison des applications est liée à leur performance business Mais seulement 25 % maîtrise aujourd hui ce domaine 69 % Surpasse ceux qui ne maîtrise pas la livraison des applications Source: The Software Edge: How effective software development drives competitive advantage, IBM Institute of Business Value, March 2013 3
Les challenges liés à cette transformation Lignes métier La prise en compte d un changement dans les applications ou les services est trop longue Production L augmentation de la fréquence des mises en exploitation affecte la stabilité et le niveau de conformité des systèmes >70% des développeurs alloués à la maintenance applicative Systems of Interaction Systems of Engagement Systems of Record CRM HR >80% rollbacks après mise en exploitation 4-6 Weeks pour mettre en exploitation des changements applicatifs Continuous client experience Cloud-based Services DB ERP Partner value chain >50% projets multipartenaires n atteignent pas leurs objectifs Développement & test Les différences de rythme de développement entre les applications front office et back office retardent l interprétation des retours des utilisateurs Fournisseurs Les livraisons dans le contexte de changements rapides sont difficiles
L approche DevOps: appliquer les principes «Lean» aux développements et livraisons des logiciels pour récupérer en continu les retours des utilisateurs 1 Ligne métier 2 Client 1.Mettre rapidement les évolutions en production 2.Amenez les clients à les utiliser 3.Récupérer rapidement les retours pour s adapter 3 Eliminer toute tâche qui n est pas nécessaire à la compréhension de la demande des clients L adoption de l approche DevOps consiste à gérer les changements, obtenir des retours et livrer des évolutions dans un cycle
DevOps - les géants du Web: System of Engagement Ces entreprises ont réinventé la manière de faire de l'informatique, ce qui leur a permis de construire des systèmes qui paraissaient impossible auparavant. Google s'est lancé dans la numérisation de tous les livres papiers, et travaille sur les voitures qui se conduisent toutes seules ; Facebook propose un espace illimité pour stocker ses photos ; Amazon a donné corps aux liseuses numériques, etc. Envergure : volume de données & nombre d utilisateurs FaceBook : 1 milliards d utilisateurs Gmail : 400 million d utilisateurs Amazon : 120 million d utilisateurs Méthode : Processus de développement Agile du développement à la production. Adoption des grands principes du «Lean» Remise en cause des frontières entre les études et la production. Certain on poussé le modèle jusqu à imposer le «you build it, you run it»! Ces acteurs majeurs de la nouvelle économie affichent un «time to market» très court en favorisant un flux continu de changements en production sans interruption de services
DevOps Les entreprises traditionnelles: System of Record DevOps est une approche qui vise à mieux aligner le système d information sur les besoins de l entreprise tout en réduisant le «time to market» Les enseignements des Géants du Web appliqués aux entreprises traditionnelles : System of Record System of Engagement Automatisez les activités manuelles (permettant la livraison Continue) telles que la propagation et l orchestration des changements, la traçabilité, les rapports d'avancement, etc. Utilisez un ensemble de pratiques fondées sur la pensée Lean pour maximiser la valeur et éliminer toutes activités qui ne bénéficient pas directement au client. Créez un mécanisme de «feedback» avec les environnements «clients» favorisant l'apprentissage Continu Adoptez une démarche d optimisation continue en mettant en œuvre des indicateurs pour une meilleure visibilité dans l'organisation de la chaîne de valeur
Ecosystem La vision IBM de DevOps: cycle de vie continu Livraison de logiciels continue pour saisir les opportunités de marché et intégrer plus rapidement les retours d expérience Clients Lignes «métier» Cycle de vie DevOps Développement Production Pratiques Développement Collaboratif Continuous Innovation, Feedback and Improvements Test continu Plan and Measure Develop and Test Release and Deploy Monitor and Optimize DevOps Foundation Best Practices Release & déploiement continu Planification des besoins «métier» continue Monitoring continu OSLC Open Lifecycle and Service Management Integration Platform Retours clients et optimisation continus
Adoption progressive de l approche DevOps Les pratiques généralement déployées Pratiques Développement Collaboratif Intégration continue Build automatique Test continu Release & déploiement continu Gestions des changements Gestion des sources Release & Déploiement continu Gestion des tests Planification des besoins «métier» continue Déploiement Automatique Provisioning environnement Test continu Gesiton des tests Monitoring continu Retours clients et optimisation continus Vitualisaiton De services Tests automatique La plupart des organisations se sont déjà dotées d une plateforme d intégration continue. Une trajectoire «naturelle» vers l approche DevOps consiste d abord à adopter les pratiques de «release & déploiement continu» et de «test continu»
Automatisation des déploiements applicatifs Release & déploiement continu Objectifs : Automatiser les déploiements applicatifs et gérer les retours arrières Maîtriser la gestion des composants et des environnements depuis le développement jusqu à la production Contrôler la conformité et la traçabilité des actifs déployés dans les environnements d exécution Gains : UrbanCode SmartCloud Orchestrator Couches App. Config Application Mid. Config. Middleware OS Config OS Hardware Fréquence des changements Réduire le «time to market» Mise en œuvre de processus de déploiement stables, répétables et auditables Supprimer les opérations manuelles Réduire les coûts : Supprimer le développement et la maintenance de scripts spécifiques Maîtriser le contenu des environnements Favoriser la collaboration entre les équipes «étude», «domaine technique» et «production»
Automatisation des déploiements applicatifs UrbanCode Deploy Release & déploiement continu Modélisation des applications complexes Gestion de configuration des environnements Définition graphique des processus technique de déploiement Inventaire des déploiements Promotion et comparaison des versions d application Rapport d audit Application Blueprint Artéfacts versionnés Deploy or Rollback Deploy or Rollback Deploy or Rollback Execute Against Execute Against Execute Against Développement Test Production
Automatisation des déploiements applicatifs UrbanCode Deploy Release & déploiement continu Composant : Unité de déploiement (Service, base de données, etc..) Matière à déployer Processus de déploiement Application Regroupement de composants Environnements Serveurs cibles (cloud, virtuel, physique) Configuration spécifique Processus Coordination des déploiements Défini l ordre de déploiement des composants Modèle de déploiement Application Web Component Business Component DB Component Processus UAT WEB v2 BIZ BIZ v2 DB DB v2 PROD WEB v1 BIZ BIZ v1 DB DB v1 Configurations
Automatisation des déploiements applicatifs UrbanCode Deploy Release & déploiement continu Construction des processus techniques de déploiement depuis une interface «web». Actions «prêtes» à l emploi supportant les solutions IBM, Oracle Microsoft, HP, BMC, Open Source, etc.. Architecture «plug-in» permet d ajouter de nouvelles «actions» pour supporter des nouvelles technologies
Automatisation des déploiements applicatifs UrbanCode Deploy : 2 niveaux de processus Release & déploiement continu Déploiement applicatif Le processus de déploiement de l application permet de coordonner les déploiements de composant Déploiement en parallèle ou en séquence
Automatisation des déploiements applicatifs Vue d ensemble de la chaîne de déploiement Release & déploiement continu SCM Build DML Deploy Dev Int Prd TFS / SVN / Jenkins / RTC / CodeStation udeploy Environnements d exécution urelease Les processus de fabrication est gérés par les outils de développement La matière installable est stockée dans le référentiel «CodeStation» de UrbanCode Le déploiement est effectué par UrbanCode Deploy La vision d ensemble des déploiements applicatifs est orchestrée par UrbanCode Release
Automatisation des déploiements applicatifs UrbanCode Release Release & déploiement continu Solution collaborative de gestion des releases Coordonne le déploiement de plusieurs applications sur des environnements cibles variés Vision centralisée et en temps réel de l avancement des releases Allocation des environnements
Automatisation des déploiements applicatifs UrbanCode Release Release & déploiement continu Planification des déploiements de release (version majeure, train de maintenance, etc..) Mise à jour automatique des informations de la release dans le calendrier Suivi de l état d avancement de la release : Actions en cours et à venir, approbation, etc.. Reporting en temps réel
Automatisation des déploiements applicatifs UrbanCode Release Release & déploiement continu Le tableau de bord «pipeline» présente l état d avancement des applications / composants dans le modèle de promotion Déploiement en cours et à venir (pending), erreur de déploiement, identification des incohérences, etc.. Améliore la collaboration entre toutes les parties prenantes «études», «domaine technique» et «production» au travers d un tableau de bord commun
Processus de test continu Bénéfice de cette approche coûts, délais, risques Test continu Requirements Big Bang Accélère les phases de test Réduit les risques liés à une intégration tardive Réduit les coûts Améliore la qualité Unit Test Sys Tests Sys Tests Sys Tests UAT OAT Performance 19
La virtualisation de composants externes comme facteur de fluidité GreenHat Test continu Virtualisation du composant Trop coûteux ou trop compliqué de tester avec des composants externes? 20
La virtualisation des services comme facteur de fluidité GreenHat Test continu Service Virtuel Service Réel Test d intégration incrémental A chaque acceptation d une demande de modification ou de création d un nouveau service, l architecture définie les spécifications et les interfaces du service Le ou les composants virtuels du service sont créés, documentés et publiés dès les premières étapes de développement du service Chaque équipe peut tester ses applications au plus tôt Indépendamment de la disponibilité du service réel Sans avoir à développer, maintenir et déployer des bouchons On contrôle donc parfaitement l introduction des services, des applications et des systèmes dans le cycle de développement.
Industrialisation des déploiements et virtualisation des tests Un chemin concret vers DevOps La solution RTW de virtualisation et de tests s intègre nativement dans la suite IBM DevOps et permet d automatiser : La configuration des environnements Les déploiements de composants réels et virtuels dans les environnements d exécution Les tests de non régression sur les services et les composants du système IBM UrbanCode Deploy RTW plugin RTVS plugin Dev Validation Integration Rational Test Workbench Databases Mainframe applications Virtualized services Third-party Services 22
Mise en œuvre d une démarche devops dans les organisations traditionnelles Préparation d un projet pilote 1. Construire une équipe «DevOps» pour aider à la mise en place des pratiques DevOps Constituée de développeurs, testeurs, release manager, personnes en charge des infrastructures, de la production etc.. Pour adhérer et partager la culture et les objectifs devops Pour améliorer la coordination entre les parties prenantes 2. Identifier un pilote permettant de démontrer rapidement les apports d une approche DevOps Constituée de personnes motivées Fréquence de modification et de livraison élevée Complexité modérée des applications (ex: WebMethod & Application Web) Applications visibles (impact métier important) 3. Auditer le processus de livraison Rechercher des problèmes, des goulots d étranglement Identification des opérations manuelles (ou lente) Identification des coûts (mise en œuvre des environnements, etc..) Produire des indicateurs factuels (nb de livraison, nb moyen d erreur de livraison, % des retours arrières, durée moyenne d un déploiement, etc.. )
Mise en œuvre d une démarche devops dans les organisations traditionnelles Mise en œuvre du projet pilote 4. Mise en œuvre du System De Livraison Continue MVP : Minimum viable process => Keep it simple! Construction et validation itérative de la solution cible Itération 1 : Automatisation des déploiements Itération 2 : Automatisation des tests de services Itération 3 : Identifier et virtualiser les points d adhérence entre l application et le reste du SI Faire au plus tôt les tests d intégration Itération 4 : Sécurisé le processus de déploiement : Définir et contrôler les règles de promotion d environnement à environnement 5. Exécuter la nouvelle solution avec le pilote Validation les processus avec le pilote Comparer les résultats sur la base des indicateurs factuels identifiés à l étrape 3 6. Rétrospective Organiser des revues périodiques Identifier les difficultés et définir les plans d actions associés Adapter la solution
La suite d outils IBM pour DevOps Une adoption incrémentale pilotée par les choix d améliorations de l entreprise Rational Focal Point Rational Requirements Composer Line of Business IBM UrbanCode Release IBM UrbanCode Deploy SmartCloud Orchestrator IBM Pure Application System IBM UrbanCode Build Rational Team Concert Rational Quality Manager Rational Test Workbench Rational Test Virtualization Server SmartCloud Application Performance Management
IBM Rational software IBM Rational Software Delivery Platform Process and portfolio management Change and release management Quality management Architecture management Rational trial downloads developerworks Rational IBM Rational TV Jazz Copyright IBM Corporation 2013. All rights reserved. The information contained in these materials is provided for informational purposes only, and is provided AS IS without warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, these materials. Nothing contained in these materials is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software. References in these materials to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in these materials may change at any time at IBM s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. IBM, the IBM logo, the on-demand business logo, Rational, the Rational logo, and other IBM products and services are trademarks of the International Business Machines Corporation, in the United States, other countries or both. Other company, product, or service names may be trademarks or service marks of others.