O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

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

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

  • Entre para ver os comentários

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

×