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.

20151013 - DevOps et qualification continue

231 views

Published on

Contrôler l'externalisation de ses développements

Published in: Software
  • Be the first to comment

  • Be the first to like this

20151013 - DevOps et qualification continue

  1. 1. DevOps et qualification continue Contrôler l’externalisation de ses développements 1Club Qualité Logicielle – Contrôler l’externalisation de ses développements Le 13 octobre 2015
  2. 2. PLAN  Objectif de la présentation  Contexte  Description d’un système de contrôle continu  Architecture  Apports  Exemple d’implémentation  Architecture  Organisation  Rôles des différents acteurs  Gains  Évolutions 2Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  3. 3. OBJECTIF DE LA PRÉSENTATION 3Club Qualité Logicielle – Contrôler l’externalisation de ses développements • Présenter les systèmes de contrôle continu – permettant de :  Faciliter la mise en œuvre des tests à chaque étape du cycle de production logiciel  Détecter les défauts le plus tôt possible  S’intégrer dans un processus de développement agile – et proposant :  La mise à disposition d'une usine de développement mutualisée entre les différents prestataires de service • Détailler la mise en œuvre d’une solution de ce type sur un cas concret
  4. 4. CONTEXTE 4Club Qualité Logicielle – Contrôler l’externalisation de ses développements • L’externalisation des développements présente des risques, notamment : – La dépendance vis-à-vis du prestataire, comme par exemple des délais trop longs ou une détérioration du service, – Un manque d'information et de transparence, – Une vulnérabilité par rapport à la réversibilité. • Il y a un enjeu important à la mise en place des processus de contrôle afin de garantir – Le respect de l’état de l’art des développements effectués – L’adéquation entre l’environnement utilisé pendant les tests des développements et l’environnement cible de production – Une réversibilité des travaux sous-traités – La détection des problèmes au plus tôt dans le cycle de développement
  5. 5. ARCHITECTURE D’UN SYSTÈME DE CONTRÔLE CONTINU 5Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  6. 6. Brique N°1 – Usine logicielle - Partage des mêmes outils entre les différents acteurs - Standardisation des processus de build - Livraison régulière des sources et analyses qualité au fil de l’eau Brique N°2 – Provisionnement - Provisionnement d’environnements standardisés en libre service - Isolation des environnements applicatifs par sous-traitant - Création dynamique de nouveaux environnements en fonction des projets Brique N°3 – Déploiement - Industrialisation des déploiements middlewares et applicatifs - Utilisation de templates OS banalisés - Automatisation du déploiement des « configurations système» - Déploiement des patches de sécurité - Déploiement de services applicatifs complets Brique N°4 – Orchestration - Modélisation et gestion du pipeline de déploiement - Pilotage du passage entre les différentes phases automatiquement ou manuellement ARCHITECTURE FONCTIONNELLE Intégration continue Qualification continue ... Livraison continue Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  7. 7. BRIQUE N°1 – USINE LOGICIELLE Club Qualité Logicielle – Contrôler l’externalisation de ses développements • Objectif : – Construire un binaire de manière fiable et reproductible • Services offerts : – Gestion centralisée des sources – Processus de build normalisé – Analyse qualimétrie – Exécution des tests unitaires – Exécution de certains tests d’intégration – Dépôt des binaires dans le référentiel d’entreprise • Logiciels disponibles – De nombreuses solutions existent sur la marché, en fonction des technologies supportées. – Jenkins, Hudson, Bamboo, TeamCity, Team foundation Server…
  8. 8. BRIQUE N°1 – USINE LOGICIELLE : Illustration 8Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  9. 9. BRIQUE N°2 - PROVISIONNEMENT 9 • Objectif : – Automatiser le déploiement applicatif dans son environnement d'exécution similaire à celui de production afin de permettre d’accélérer les cycles de qualification (nécessite une virtualisation des environnements) • Services offerts : – Provisionnement en libre service de serveurs ou de « bundles » de serveurs – Création des configurations matérielles souhaitées – Mise à disposition d’un catalogue de templates – Gestion de quotas de ressources – Inventaire du parc de serveurs déployés – Reporting avancé sur l’utilisation des ressources – Gestion des réseaux virtuels • Logiciels disponibles – Exemples : Cloudstack, Cloudify, BMC, Cloudforms, ManageIQ… Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  10. 10. BRIQUE N°2 – PROVISIONNEMENT : Illustration Exemple : Architecture de la solution Cloudforms Management Engine Club Qualité Logicielle – Contrôler l’externalisation de ses développements Source : Redhat
  11. 11. BRIQUE N°3 - DÉPLOIEMENT 11Club Qualité Logicielle – Contrôler l’externalisation de ses développements • Objectif : – Déployer des packages et des configurations logicielles automatiquement de manière idempotente (capacité à mettre à niveau un serveur quelque soit son état initial) • Services offerts : – Déploiement de tous les types d’applications (prise en charge de l'existant sans modification) – Base de données des configurations déployées (CMDB) – Description de l'état souhaité d'un serveur par l'écriture de « recettes » – Isolation complète des environnements – Reporting avancé sur les configurations déployées – Orchestration des déploiements dans le cadre d’un service applicatif complet (plusieurs serveurs) • Logiciels disponibles – Exemples : Puppet, Ansible, Chef, Salt…
  12. 12. BRIQUE N°3 – DEPLOIEMENT : Illustration 12 Principe de fonctionnement de Puppet Club Qualité Logicielle – Contrôler l’externalisation de ses développements Les différents concepts Puppet  Node : Machine physique ou virtuelle à configurer  Master : Serveur Puppet regroupant l'ensemble des configurations à appliquer  Catalog : Document décrivant l'état final d'un « Node »  Resource : Unité décrivant un aspect du système tel qu'un service ou un package  Class : bloc de code Puppet définissant les « resources » à configurer  ENC : External Node Classifier, application qui définie les « class » à appliquer pour chaque « Node » Source : PuppetLabs
  13. 13. BRIQUE N°3 – DÉPLOIEMENT : Illustration 13 Tableau de bord Puppet de suivi des déploiements Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  14. 14. 14 BRIQUE N°4 : ORCHESTRATION Club Qualité Logicielle – Contrôler l’externalisation de ses développements • Objectif – Automatiser le passage entre chaque étape du cycle de production logicielle (déclenchement automatique ou approbation manuelle) • Services offerts – Modélisation des différentes étapes du pipeline – Déclenchement automatique ou à la demande des étapes suivantes – Reporting détaillé des tests – Exécution en parallèle quand c’est possible • Logiciels disponibles – GoCD, Plugin pipeline de Jenkins, ...
  15. 15. BRIQUE N°4 - ORCHESTRATION, MODÈLE DE PIPELINE 15Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  16. 16. 16 BRIQUE N°4 - ORCHESTRATION : Illustration Club Qualité Logicielle – Contrôler l’externalisation de ses développements GoCD Jenkins Pipeline plugin
  17. 17. Club Qualité Logicielle – Contrôler l’externalisation de ses développements LES APPORTS DE LA SOLUTION DANS LA MISE EN ŒUVRE DES TESTS 17 Tests fonctionnels automatisés Qualimétrie Test unitaires Contrôles lors du commit Tests non fonctionnels automatisés Sondes applicatives
  18. 18. EXEMPLE D’IMPLÉMENTATION 18Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  19. 19. CONTEXTE 19 • Un grand compte public délégant dans le cadre de prestations sous-traitées – Les développements des applications en maintenance à une TMA ; – Les développements des nouvelles applications à des équipes projet dédiées ; – La recette et l'intégration à une équipe de TRA ; – L'exploitation à un infogérant, • Souhaite renforcer la maîtrise de la sous-traitance – En imposant l'utilisation de sa propre usine de développement dans les appels d'offres ; – En fournissant une infrastructure industrialisée pour la mise en œuvre des tests. Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  20. 20. Brique N°1 – Usine logicielle - Subversion - Jenkins - SonarQube - OWASP Zap - Artifactory Brique N°2 – Provisionnement - Redhat Cloudforms - phpIPAM - Redhat identity manager Brique N°3 – Déploiement - Puppet Master - PuppetDB - Foreman - Puppet forge server - Puppet Agent Brique N°4 – Orchestration - Jenkins pipeline plugin BRIQUES MISES EN PLACE 20Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  21. 21. ARCHITECTURE Responsabilité Intégrateurs Responsabilité Infogérant Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  22. 22. FONCTIONNEMENT 22Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  23. 23. RÔLES DES DIFFÉRENTS ACTEURS 23 Développeurs Intégrateurs Assurance qualité MOA Exploitants M.C.O. de l'usine de développement A, R R Configuration des règles de contrôle qualimétrie C A,R C M.C.O. des outils de provisionning et de déploiement A,R Développement des modules de déploiement système I I A,R Développement des modules de déploiement middleware C R A,R Développement des modules de déploiement applicatif A,R I R I Ajout d'un nouvel OS C R I I A,R Ajout d'un nouveau middleware C R A,R Exécution des tests automatisés A,R Exécution de la recette manuelle R A,R Déploiement en production I C C A R Club Qualité Logicielle – Contrôler l’externalisation de ses développements TMA TRA Infogérant
  24. 24. LES GAINS 24Club Qualité Logicielle – Contrôler l’externalisation de ses développements Avant Après Apports du système de contrôle de l'externalisation Chaque sous-traitant gère sa plateforme d'intégration continue La plateforme d'intégration continue est mise à disposition de l'ensemble des sous-traitants  Visibilité totale de l'avancement des travaux  Possibilité de mise en œuvre des contrôles qualimétrie  Les coûts de réversibilité sont fortement réduits Les phases d' installation et intégration sont longues car les environnements des sous-traitants ne sont pas conformes à la cible Dès les premières phases de test, les environnements sont identiques à la cible  Réduction importante des charges d'installation et d'intégration Les installations sont effectuées manuellement à partir de documents d'installation La majorité des applications est installée automatiquement  Les installations sont reproduites sans erreurs d'un environnement à l'autre  Les délais d'installation sont fortement réduits (interruptions de service minimes) Les tests ne sont exécutés qu'après livraison à l'équipe de recette Un nombre important de tests automatisés sont joués avant livraison  Phases d'acceptation réduite  Tests de non régression joués systématiquement car automatisés  Les tests « techniques » sont ajoutés au périmètre de non régression Chaque sous-traitant construisait son propre environnement de test Les environnements sont construits dynamiquement à la demande  La durée des phases d'initialisation est fortement réduite pour chaque nouveau sous-traitant de TMA
  25. 25. ÉVOLUTIONS PRÉVUES 25 • Fonctionnelles – La gestion des changements dans les bases de données n’est pas prise en compte (chantier 2016) • Organisationnelles – L'industrialisation du déploiement des middlewares doit faire partie du périmètre de l’infogérant, cela nécessite une mise à niveau de ses compétences • Techniques – Certains composants (BD Oracle, SAP BO) sont complexes à configurer et leur durée d’installation peut être longue. Cela empêche leur redéploiement systématique. Ils sont considérés comme des services à disposition des applications. Une étude est prévue pour les intégrer au processus standard de déploiement • Financières – R.O.I à formaliser Club Qualité Logicielle – Contrôler l’externalisation de ses développements
  26. 26. QUESTIONS ? 26Club Qualité Logicielle – Contrôler l’externalisation de ses développements

×