Engie Digital - Retour d'Expérience sur la mise en place d'une plateforme d'intégration, de qualification et de déploiement continu autour ...
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Engie Digital - Retour d’Expérience sur la mise en place d’une
plateforme d’intégration, de qualification et de déploiement
continu autour d’outils et principes Agile et DevOps.
Auteurs : Maxime Herbelot, Henix
Jean-Hervé Laveau, Engie DigitalSommaire
• [Chapitre 1] Contexte Engie vers la transformation « digitale »
I. Contexte général du groupe Engie
II. Engie Digital et la transformation numérique
• [Chapitre 2] Mise en œuvre de la plateforme de qualification continue Engie Digital
I. Enjeux, Prérequis méthodologiques et techniques
II. Méthodologie Engie Digital pour le suivi des projets applicatifs
III. Les briques techniques de la plateforme
• [Chapitre 3] Retour d’expérience Engie Digital
I. Bilan d’étape
II. Avantages et Limites
III. Perspectives
JFTL 2018 - DevOps & Qualification continue 11/01/2018 2CONTEXTE ENGIE VERS LA
Chapitre 1
TRANSFORMATION « DIGITALE »
JFTL 2018 - DevOps & Qualification continue 11/01/2018 3Le contexte général du groupe ENGIE
• Un grand groupe international :
153090 employés
Présent dans 70 pays
CA d’environ 66,6 M €
• 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…
JFTL 2018 - DevOps & Qualification continue 11/01/2018 4Le 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
JFTL 2018 - DevOps & Qualification continue 11/01/2018 5MISE EN ŒUVRE DE LA PLATEFORME
Chapitre 2
DE QUALIFICATION CONTINUE ENGIE
DIGITAL
JFTL 2018 - DevOps & Qualification continue 11/01/2018 6ENJEUX, PRÉREQUIS
Chapitre 2.1
MÉTHODOLOGIQUES ET
TECHNIQUES
JFTL 2018 - DevOps & Qualification continue 11/01/2018 7INTÉGRATION DANS L’ENVIRONNEMENT ENGIE DIGITAL
JFTL 2018 - DevOps & Qualification continue 11/01/2018 8PARADIGMES
• 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
JFTL 2018 - DevOps & Qualification continue 11/01/2018 9PARADIGMES
• 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
Sources Binaire
versionné
Build / Packaging Deploiement App +
Dépôt de Dépôt de Env
sources binaires
JFTL 2018 - DevOps & Qualification continue 11/01/2018 10PARADIGMES
• 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
JFTL 2018 - DevOps & Qualification continue 11/01/2018 11MÉTHODOLOGIE ENGIE DIGITAL
Chapitre 2.2
POUR LE SUIVI DES PROJETS
APPLICATIFS
JFTL 2018 - DevOps & Qualification continue 11/01/2018 12GESTION DU PORTFOLIO DE PROJETS : METHODE SAFE
SCALE AGILE FRAMEWORK
BACKLOG, IMAGINE, QUALIFY, SHAPE, MAKE, PROPULSE, MEASURE, FREEZE/CLOSE
JFTL 2018 - DevOps & Qualification continue 11/01/2018 13GESTION 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
JFTL 2018 - DevOps & Qualification continue 11/01/2018 14GESTION DE PROJET : SPRINTS
JFTL 2018 - DevOps & Qualification continue 11/01/2018 15LES BRIQUES TECHNIQUES DE
Chapitre 3
LA PLATEFORME
JFTL 2018 - DevOps & Qualification continue 11/01/2018 16BESOINS IDENTIFIÉS
Code: Release,
• Infrastructure:
Plan: Define: Communicate: Continuous Deploy,
• Network : VPC, Subnets • Features • UX Design • Into Team
Automate Continuous
• IAM • Sprints • Architecture • Into Project
• Modules Releases• Security • Share with
Configuration:
• Security : Security groups • Infrastructure
• Application platforms • Apps Releases • Infrastructure Company
• Deployment • Modules
• IoT • Releases
• API management • Features : Epic, Stories, Tasks
• Applications
• Data Analytics Functions • Test, UAT, Prod
• UX Deployments
Continuous Build:
• Build Apps
• Package modules DEV/OPS Coordinate:
• Release & Deployments
Continuous Configure: • Incidents
• Infrastructure • Customers needs
• Apps
Structure & Describe Tests: Continuous Assessment for Versioned Binaries Measure & Monitor:
• Scenarios / Plans Code Quality: Centralization: • Infrastructure performance
• Campaigns • Complexity & Technical • Produced Apps & • Application performance
debt Modules packages
Continuous Test: • Best coding practices • Input OSS & Alert on:
• Unit Tests modules • Security issues
• Integration / Regression tests Code Security • Performance issues
Code Performance
JFTL 2018 - DevOps & Qualification continue 11/01/2018 17OUTILS SÉLECTIONNÉS POUR LE MONTAGE DE LA PLATEFORME
Code: Release,
• Infrastructure:
Plan: Define: Communicate: Continuous Deploy,
• Network : VPC, Subnets • Features • UX Design • Into Team
Automate Continuous
• IAM • Sprints • Architecture • Into Project
• Modules Releases• Security • Share with
Configuration:
• Security : Security groups • Infrastructure
• Application platforms • Apps Releases • Infrastructure Company
• Deployment • Modules
• IoT • Releases
• API management • Features : Epic, Stories, Tasks
• Applications
• Data Analytics Functions • Test, UAT, Prod
• UX Deployments
Continuous Build:
• Build Apps
• Package modules DEV/OPS Coordinate:
• Release & Deployments
Continuous Configure: • Incidents
• Infrastructure • Customers needs
• Apps
Structure & Describe Tests: Continuous Assessment for Versioned Binaries Measure & Monitor:
• Scenarios / Plans Code Quality: Centralization: • Infrastructure performance
• Campaigns • Complexity & Technical • Produced Apps & • Application performance
debt Modules packages
Continuous Test: • Best coding practices • Input OSS & Alert on:
• Unit Tests modules • Security issues
• Integration / Regression tests Code Security • Performance issues
Code Performance
JFTL 2018 - DevOps & Qualification continue 11/01/2018 18PIPELINE D’INTÉGRATION ET DE LIVRAISON/DÉPLOIEMENT CONTINU
Squash TM
Portfolio
Management for Jira
SonarQube
Github Test Automation
Confluence
Jira
Artifactory
Cloudbees/Jenkins pipeline Cloudbees/Jenkins pipeline
Jenkins, Terraform, Packer
Dev UAT PreProd Production
JFTL 2018 - DevOps & Qualification continue 11/01/2018 19TEST EN CONTINU
Tests
• Tests en local sur unitaires
l’environnement A
de
Tests
développement d’acceptation
• Analyse A
qualimétrique Analyse
• Approche BDD qualimétrique
considérée A
comme tests CI
d’acceptation
Archive Sanity tests
déployable
A
• Automatisation
Automatisé CD Manuel
complète des Tests de Déploiement
smoke tests et des Tests de Tests Perf A production
tests de non déploiement
A fonctionnels A
régression
Ad hoc / Tests
Smoke tests Tests de Monkey d’exploitabilité
non reg tests A A
A A
Tests de
POC scope Tests bout en
interface A bout A Déploiement
Pré-production
A Complexe à automatiser
A Facile à automatiser
JFTL 2018 - DevOps & Qualification continue 11/01/2018 20LES TECHNOS SOUS-JACENTES : GESTION DE L’INFRASTRUCTURE AVEC
TERRAFORM
JFTL 2018 - DevOps & Qualification continue 11/01/2018 21LES TECHNOS SOUS-JACENTES : GESTION DES BUILDS AVEC DOCKER &
MESOS
JFTL 2018 - DevOps & Qualification continue 11/01/2018 22LES TECHNOS SOUS-JACENTES : CONSTRUCTION DES INSTANCES AVEC
PACKER
JFTL 2018 - DevOps & Qualification continue 11/01/2018 23LES TECHNOS SOUS-JACENTES : DESCRIPTION DU WORKFLOW - JENKINSFILE
GIT FLOW
+
GITHUB HOOK
+
GITHUB ORGANIZATION FOLDER PLUGIN
JFTL 2018 - DevOps & Qualification continue 11/01/2018 24RETOUR D’EXPÉRIENCE ENGIE
Chapitre 3
DIGITAL
JFTL 2018 - DevOps & Qualification continue 11/01/2018 25BILAN D’ÉTAPE
Chapitre 3.1
JFTL 2018 - DevOps & Qualification continue 11/01/2018 26Plateforme TOOLING Engie Digital (Décembre 2017)
268 repos de code
regroupés dans 35 14 applications en production
organisations GitHub 25 en développement Tooling : Équipe de 5
(Java, C++, PHP, JS,
personnes
Python, HCL, Shell,
TypeScript …)
7 outils dédiés au développement
Logiciel
92 projets
qui tournent 7/7 – 24/24
onboardés
555 utilisateurs
intégrés à la plateforme
JFTL 2018 - DevOps & Qualification continue 11/01/2018 27AVANTAGES ET LIMITES
Chapitre 3.2
JFTL 2018 - DevOps & Qualification continue 11/01/2018 28REX
(1/2)
Points Négatifs Points positifs
Plateforme et process non encore Une unique PQC mise à disposition de
complètement scalables 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 Installation automatique de la majorité des
œuvre 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
JFTL 2018 - DevOps & Qualification continue 11/01/2018 29LES POINTS DE VIGILANCE LORS DE LA MISE EN ŒUVRE DE LA PLATEFORME
Rôles et responsabilités
• Définir les frontières de responsabilité entre tous les intervenants (difficulté
de contractualisation).
Outillage
• 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...).
Conduite du changement
• Ne pas sous estimer la charge d’accompagnement et de conduite du
changement.
JFTL 2018 - DevOps & Qualification continue 11/01/2018 30PERSPECTIVES
Chapitre 3.3
JFTL 2018 - DevOps & Qualification continue 11/01/2018 31ROADMAP 2018
JFTL 2018 - DevOps & Qualification continue 11/01/2018 32JFTL 2018 - DevOps & Qualification continue 11/01/2018 33
Vous pouvez aussi lire