Evaluation d'une chaîne CI CD
Faisant suite à une acquisition, et dans le cadre d’une réorganisation, la DSI souhaite évaluer l’outillage existant et proposer un plan de modernisation.
Résumé
La pratique de l’Intégration Continue/Déploiement continu (Continuous Integration/Continuous Deployment) est un puissant indicateur de la maturité du Système d’Information de l’entreprise. Son placement au carrefour de l’équipe de développement et de l’équipe de run permet une évaluation sur trois axes majeurs: l’automatisation, la sécurité, la gouvernance.
Introduction à la CI/CD
Par CI/CD on identifie une série d’outils et une pratique qui consiste à automatiser les phases de construction logicielle (qui peut par ailleurs être autre chose qu’un logiciel, par exemple l’infrastructure), sa livraison (Continuous Delivery) et son déploiement (Continuous Deployment). Ces trois étapes sont :
- automatisées (ne sont pas déclenchées manuellement, mais suite à une action telle que la publication d’une nouvelle version du code) et
- réalisées en continu (tout au long du cycle de vie du produit, c’est à dire pour chaque version, même les évoultions mineures).
Enjeux de la CI/CD
L’automatisation du processus de développement permet d’éxécuter, à chaque étape du cycle de vie du produit, des opérations aussi répétitives que nécessaires, telles que l’exécution de tests, le(s) scan(s) de sécurité et l’analyse de qualité du code. L’équipe est alertée en cas d’échec et peut intervenir immédiatement avec les nécessaires remédiations. L’exécution systématique et fréquente de ces taches nous rassure sur la qualité et la conformité du produit et permet en même temps de livrer notre produit dans un environnement supérieur en toute confiance.
Cette pratique est fréquente et commune dans projets de grande complexité, pour lesquels les taches annexes indiquées ci-dessus peuvent être excessivement lourdes et couteuses, et dans projets jeunes qui adoptent les bonnes pratiques de développement dès le début. L’implémentation d’une pratique CI/CD sur un projet de développement existant est toujours envisageable et fortement recommandée, bien que les rapports couts/bénéfices doivent être étudiés attentivement. Egalement, la rationalisation de différents outillages CI/CD comme dans le cas d’une fusion/acquisition doit tenir compte des enjeux métier, technologiques et organisationnels sans oublier qu’il s’agit essentiellement d’un investissement sur le moyen et long terme.
L’automatisation des tests fonctionnels et techniques, de sécurité et l’analyse de qualité du code impliquent un référentiel de normes et exigences qui doit être nécessairement travaillé en amont et qui doit investir un budget adéquat. Le curseur doit être placé opportunément, tout en sachant que une démarche iterative et une révision des objectifs peuvent être inscrites dans la durée. Ces référentiels, de tests techniques et utilisateurs, de normes de sécurité (y compris RGPD) et d’exigences de normes et d’architecture sont également des indicateurs de ce que la direction attend de l’IT, et devraient être partagés avec les lignes ‘business’, dépassant le simple périmètre des opérations.
Une opération de fusion/acquisition qui demande à revoir et réorganiser son usine de développement peut être l’opportunité pour introduire dans l’entreprise (ou renforcer) certains éléments d’agilité et une culture de l’automatisation (même du Devops) à profit du business.
Audit d’une chaine CI/CD
Pour des fins d’audit, nous évaluons les fonctionnalités apportées dans le cadre du cycle de vie de développement, ainsi que l’outillage même et son intégration avec le SI.
Audit fonctionnel
La chaine CI/CD que nous évaluons consiste de plusieurs outils, installés dans le datacenter et en mode SaaS, dont gitlab assure l’orchestration :
- un entrepôt de code : git, intégré dans gitlab CE , hébergé on premise
- un outil de scan de sécurité à distance : checkmarx , en mode SaaS
- un outil de vérification de qualité du code : Sonar
- un gestionnaire de tickets : jira , en mode SaaS
- une solution de gestion de documents collaborative : confluence , en mode SaaS également
Les tests unitaires et fonctionnels sont inclus dans l’application et supportés par l’outil de gestion maven, qui gère les dépendances et le cycle de vie du projet.
Chaque élément de cette liste apporte des fonctionnalités et répond à des exigences bien précises, à la fois métier, techniques et de sécurité. Sur cette base, nous pouvons attribuer une note, qui servira de base pour un échange avec le client au niveau de la DSI.
Audit technique
L’implémentation et la configuration des outils fait également l’objet d’une analyse sur plusieurs axes :
- l’éventuelle obsolescence
- la configuration de sécurité
- la résilience et l’excellence opérationnelle
- les couts
- la gouvernance
Ces éléments sont remontés à la direction des opérations et au CISO uniquement, car le budget associé relève des opérations.
Étapes suivantes
Nous proposons au client deux différents scénarios, le premier pour une fusion des deux environnements CI/CD, le deuxième pour une migration en full SaaS. Ce deuxième scénario ne sera pas retenu, mais ça aura été un exercice intéressant, notamment pour évaluer et comparer les couts d’une solution (multi)SaaS et servira de base pour une discussion ultérieure.
Conclusions
Cet audit a pu répondre à une question urgente et contingente de notre client, et d’autre part a mi en évidence certaines possibilités de modernisation et de transformation. Nous avons axé les propositions de chantier sur des horizons court/moyen terme, ce qui a permis de prioriser dans un échange très constructif, qui a inclus toutes les business units.
A propos
Ambrate est une société de conseil indépendante basée à Paris, France et qui réalise des missions de conseil et audit en management, innovation et nouvelles technologies. Contactez-nous.