Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

20171122 01 - REX : Intégration et déploiement continu chez Engie

745 views

Published on

REX : Intégration et déploiement continu chez Engie

Published in: Software
  • Be the first to comment

20171122 01 - REX : Intégration et déploiement continu chez Engie

  1. 1. Intégration et déploiement continu chez ENGIE Outils et principes DevOps dans la mise en œuvre d’une plateforme de qualification continue Auteurs :Maxime Herbelot, Henix Jean-Hervé Laveau, Engie Digital
  2. 2. JFTL 2016 2DevOps & Qualification continue 22/11/2017 Sommaire • [Contexte] La CI/CD chez Engie Digital • [Chapitre 1] Démarche de mise en place d’une plateforme de Qualification Continue • [Chapitre 2] Paradigmes posés pour la construction de la plateforme • [Chapitre 3] Définition du workflow Projet • [Chapitre 4] Les briques techniques de la plateforme • [Chapitre 5] Bilan d’étape • [Chapitre 6] Perspectives
  3. 3. JFTL 2016 LA CI/CD CHEZ ENGIE DIGITAL Contexte 3DevOps & Qualification continue 22/11/2017
  4. 4. JFTL 2016 Le contexte ENGIE • Un grand groupe international :  153090 employés  Présent dans 70 pays  CA d’environ 66,6 Md € • Présent dans de nombreux domaines :  Production d’énergie (électricité, gaz naturel, énergies renouvelables …)  Services énergétiques (installation, maintenance, smart city, mobilité verte …) • Organisé en :  24 Business Units : 11 géographiques, 8 en France, 5 globales  Nombreuses Business Entities / Filiales: Altiservice Engie, Engie Axima, Engie Cofely, Engie Ecova, Engie Electrabel, Engie Endel, Engie Fabricom, Engie Global Markets, Engie Home Services, GBS/Engie IT (Information & Technologies), Engie Lab, Engie MtoM, Engie Réseaux, Solairedirect, Tractebel Engie… 4DevOps & Qualification continue 22/11/2017
  5. 5. JFTL 2016 Le contexte ENGIE DIGITAL • Quelques dates :  Avril 2015 : GDF Suez devient Engie  Mai 2016 : Isabelle Kocher est nommée PDG d’Engie  Été 2016 : Vision du futur d’Engie - Dé carboné, décentralisé et numérique  Octobre 2016 : Création d’Engie Digital • Engie Digital en quelques mots :  Est un assistant pour la transformation numérique d’Engie  Aide les BU à imaginer, définir, créer et produire des applications numériques dont elles sont propriétaires  Se base sur un socle technique commun faisant appel à des partenaires privilégiés : AWS, C3, Kony & Thales  L’objectif est qu’à terme l’ensemble des développements Engie soient agiles et déployés dans le cloud  Engie Digital construit un backbone AWS pour héberger les développements numériques de BU 5DevOps & Qualification continue 22/11/2017
  6. 6. JFTL 2016 METTRE EN PLACE UNE PLATEFORME DE QUALIFICATION CONTINUE DANS L’ENVIRONNEMENT ENGIE DIGITAL Chapitre1 6DevOps & Qualification continue 22/11/2017
  7. 7. JFTL 2016 INTRODUCTION – L’ENVIRONNEMENT ENGIE DIGITAL 7DevOps & Qualification continue 22/11/2017
  8. 8. JFTL 2016 PARADIGMES POSÉS POUR LA CONSTRUCTION DE LA PLATEFORME Chapitre2 8DevOps & Qualification continue 22/11/2017
  9. 9. JFTL 2016 PARADIGMES 9DevOps & Qualification continue • Tous les composants d’une application doivent être versionnés : – Versionnement du code & des binaires applicatifs – Versionnement du code de déploiement – Versionnement des scripts de base de données – Versionnement des images des conteneurs de build et de déploiement – Versionnement des environnements de déploiement • Convention over configuration : – Objectifs : ● Réduire au minimum les configurations à réaliser pour les développeurs au niveau des outils ● Gérer la complexité organisationnelle d’Engie ● Pouvoir réutiliser les artifacts générés par d’autres projets – Moyens : ● Conventions de nommage des artifacts des projets ● Mise à disposition de templates de création projet ● Mise à disposition de templates de pipelines et d’une librairie partagée de code 22/11/2017
  10. 10. JFTL 2016 PARADIGMES 10DevOps & Qualification continue • Immutabilité des environnements de build & de déploiement – Immutabilité des instances de build & de déploiement des applications – Immutabilité des instances déployées sur les environnements • Isomorphisme des environnements – Isomorphisme des environnements de DEV, UAT et PROD sur lesquels sont déployés les applications • Pattern de déploiement générique Dépôt de binaires Binaire versionné App + Env Build / Packaging Deploiement Dépôt de sources Sources 22/11/2017
  11. 11. JFTL 2016 PARADIGMES 11DevOps & Qualification continue • Infrastructure As Code – Les déploiements sur les différents environnements doivent être complètement automatisés et ne doivent différer que sur les valeurs de leurs paramètres – L’infrastructure doit être entièrement codée. Pas d’action via la console – L’infrastructure As Code doit permettre de gérer : ● L’initialisation ● La reprise sur incident ● La mise à jour de la plateforme & des applications du tooling 22/11/2017
  12. 12. JFTL 2016 DÉFINITION DU WORKFLOW : GESTION DU PORTFOLIO DE PROJETSChapitre3 12DevOps & Qualification continue 22/11/2017
  13. 13. JFTL 2015 DevOps & Qualification continue 13 GESTION DU PORTFOLIO DE PROJETS : METHODE SAFE SCALE AGILE FRAMEWORK BACKLOG, IMAGINE, QUALIFY, SHAPE, MAKE, PROPULSE, MEASURE, FREEZE/CLOSE 22/11/2017
  14. 14. JFTL 2015 DevOps & Qualification continue 14 GESTION DE PROJET : RAFFINAGE BACKLOG & ESTIMATION Étape d’analyse : • Les stories sont créées dans des epics • Les stories sont raffinées et expliquées par le rapporteur de la story ou par une personne ayant une connaissance du sujet ➢ Quand Ok  Envoyé à To Estimate • Séance de Poker planning. Les stories sont : ➢ Expliquées à l’équipe ➢ Estimées en terme de complexité ➢ Si Ok,  Mettre à To Do • Sprint planning. Les stories sont inclues dans les sprints en fonction de : ➢ Leur priorité ➢ La capacité de l’équipe 22/11/2017
  15. 15. JFTL 2015 DevOps & Qualification continue 15 GESTION DE PROJET : SPRINTS 22/11/2017
  16. 16. JFTL 2016 LES BRIQUES TECHNIQUES DE LA PLATEFORMEChapitre4 16DevOps & Qualification continue 22/11/2017
  17. 17. JFTL 2015 DevOps & Qualification continue 17 BESOINS IDENTIFIÉS DEV/OPS Structure & Describe Tests: • Scenarios / Plans • Campaigns Continuous Test: • Unit Tests • Integration / Regression tests Continuous Assessment for Code Quality: • Complexity & Technical debt • Best coding practices Code Security Code Performance Versioned Binaries Centralization: • Produced Apps & Modules packages • Input OSS & modules Measure & Monitor: • Infrastructure performance • Application performance Alert on: • Security issues • Performance issues Release, Continuous Deploy, Automate Continuous Configuration: • Infrastructure • Modules • Releases • Applications • Test, UAT, Prod Deployments Coordinate: • Release & Deployments • Incidents • Customers needs Code: • Infrastructure: • Network : VPC, Subnets • IAM • Security : Security groups • Application platforms • IoT • API management • Data Analytics Functions • UX Continuous Build: • Build Apps • Package modules Continuous Configure: • Infrastructure • Apps Plan: • Features • Sprints • Modules Releases • Apps Releases Communicate: • Into Team • Into Project • Share with Company Define: • UX Design • Architecture • Security • Infrastructure • Deployment • Features : Epic, Stories, Tasks 22/11/2017
  18. 18. JFTL 2015 DevOps & Qualification continue 18 OUTILS SÉLECTIONNÉS POUR LE MONTAGE DE LA PLATEFORME DEV/OPS Structure & Describe Tests: • Scenarios / Plans • Campaigns Continuous Test: • Unit Tests • Integration / Regression tests Continuous Assessment for Code Quality: • Complexity & Technical debt • Best coding practices Code Security Code Performance Versioned Binaries Centralization: • Produced Apps & Modules packages • Input OSS & modules Measure & Monitor: • Infrastructure performance • Application performance Alert on: • Security issues • Performance issues Release, Continuous Deploy, Automate Continuous Configuration: • Infrastructure • Modules • Releases • Applications • Test, UAT, Prod Deployments Coordinate: • Release & Deployments • Incidents • Customers needs Code: • Infrastructure: • Network : VPC, Subnets • IAM • Security : Security groups • Application platforms • IoT • API management • Data Analytics Functions • UX Continuous Build: • Build Apps • Package modules Continuous Configure: • Infrastructure • Apps Plan: • Features • Sprints • Modules Releases • Apps Releases Communicate: • Into Team • Into Project • Share with Company Define: • UX Design • Architecture • Security • Infrastructure • Deployment • Features : Epic, Stories, Tasks 22/11/2017
  19. 19. JFTL 2015 DevOps & Qualification continue 19 PIPELINE D’INTÉGRATION ET DE LIVRAISON/DÉPLOIEMENT CONTINU Squash TM Github Artifactory SonarQube Cloudbees/Jenkins pipeline Jira Confluence Portfolio Management for Jira Jenkins, Terraform, Packer Cloudbees/Jenkins pipeline ProductionPreProdDev UAT Test Automation 22/11/2017
  20. 20. JFTL 2016 LES TECHNOS SOUS-JACENTES : GESTION DE L’INFRASTRUCTURE AVEC TERRAFORM 20DevOps & Qualification continue 22/11/2017
  21. 21. JFTL 2016 LES TECHNOS SOUS-JACENTES : GESTION DES BUILDS AVEC DOCKER & MESOS 21DevOps & Qualification continue 22/11/2017
  22. 22. JFTL 2016 LES TECHNOS SOUS-JACENTES : CONSTRUCTION DES INSTANCES AVEC PACKER 22DevOps & Qualification continue 22/11/2017
  23. 23. JFTL 2016 LES TECHNOS SOUS-JACENTES : DESCRIPTION DU WORKFLOW - JENKINSFILE 23DevOps & Qualification continue GIT FLOW + GITHUB HOOK + GITHUB ORGANIZATION FOLDER PLUGIN 22/11/2017
  24. 24. JFTL 2016 BILAN D’ÉTAPE Chapitre5 24DevOps & Qualification continue 22/11/2017
  25. 25. JFTL 2016 La plateforme de TOOLING Engie Digital (Novembre 2017) 25DevOps & Qualification continue Tooling : Équipe de 5 personnes 82 projets onboardés 7 outils dédiés au développement Logiciel qui tournent 7/7 – 24/24 268 repos de code regroupés dans 35 organisations GitHub (Java, C++, PHP, JS, Python, HCL, Shell, TypeScript …) 14 applications en production 25 en développement 500 utilisateurs intégrés à la plateforme 22/11/2017
  26. 26. JFTL 2016 REX 26DevOps & Qualification continue Points Négatifs Points positifs (1/2) Plateforme et process non encore complètement scalables Une unique PQC mise à disposition de l'ensemble des BU/BE d’ENGIE Diversité des technologies projet Dès les premières phases de test, les environnements sont identiques à la cible.  Évangélisation complexe à mettre en œuvre Installation automatique de la majorité des applications Agilité & DevOps vs sécurité Plateformes de build et de test partagées par tous les prestataires. Point sécurité sur le déploiement continu Exécution de tests automatisés avant la livraison 22/11/2017
  27. 27. JFTL 2016 LES POINTS DE VIGILANCE LORS DE LA MISE EN ŒUVRE DE LA PLATEFORME 27DevOps & Qualification continue • Définir les frontières de responsabilité entre tous les intervenants (difficulté de contractualisation). Rôles et responsabilités • Définir les bonnes pratiques de développement et de déploiement : c’est une boite à outils qu’il faut maitriser afin de créer des applications maintenables. • Rationaliser et normaliser les architectures de déploiement et les middlewares utilisés. • Suivre et mesurer l’usage de la plateforme par les différents intervenants (La plateforme devient un logiciel critique et sa maintenance doit être prise en compte (upgrade des différents composants...). Outillage • Ne pas sous estimer la charge d’accompagnement et de conduite du changement. Conduite du changement 22/11/2017
  28. 28. JFTL 2016 PERSPECTIVES Chapitre6 28DevOps & Qualification continue 22/11/2017
  29. 29. JFTL 2016 LES PERSPECTIVES 29DevOps & Qualification continue • Ouverture vers l’inner source • Avoir une vraie PAAS • Extension du catalogue de services Fonctionnelles • Délimiter clairement les frontières de compétences et de responsabilités de chacun (BU-BE/Engie IT/Engie Digital/sous-traitants) • Diffusion des connaissances & bonnes pratiques vers les utilisateurs de la plateforme pour industrialiser le déploiement des applications • Arriver à passer de l’agilité au DevOps Organisationnelles • Mise en place d’un déploiement continu jusqu’en production • Déploiement continu sur Azure • Généraliser le testing en continuTechniques 22/11/2017
  30. 30. JFTL 2015 DevOps & Qualification continue 3022/11/2017

×