🧑‍🔧

Comment mettre en place le DevSecOps dans son entreprise ?

Do not index
Do not index
Primary Keyword
Lié à Analyse sémantique (Articles liés) 1
Lié à Analyse sémantique (Articles liés)
Statut rédaction
A améliorer
Lié à Analyse sémantique (Articles liés) 2
Le DevOps permet de gérer le cycle de vie des applications à travers l’automatisation des processus et l’étroite collaboration entre les équipes de développement et les équipes des opérations.
Etant avant tout une culture, mettre en place DevOps sur ses projets peut sembler très complexe au premier abord.
Dans cet article, nous vous exposons les étapes à suivre pour assurer le succès de votre démarche.

1. Obtenir le soutien de la direction et de ses équipes

Le spectre d’action d’une approche DevOps est large dans une Direction des Services d’Informations. À tous les niveaux, il y a une conduite du changement à opérer pour obtenir un processus DevOps efficient qui va permettre de réduire les temps de livraison et d’améliorer la qualité de service.
Le niveau d’implication qu’impose la compréhension et la mise en œuvre d’une démarche DevOps ne doit pas être sous-estimé. Cette mise en œuvre, pour les changements qu’elle apporte au sein de l’entreprise, demande toujours du temps. Elle doit donc faire l’objet d’un vrai projet d’entreprise, supporté et soutenu par la direction et les responsables d’équipe.
On parle des équipes de développement et des opérations, mais pas seulement. Il s’agit de se tourner également vers les équipes métier, qui ont beaucoup à gagner de ce changement.
De ce fait, la direction doit concevoir l’organisation la plus adaptée et soutenir les équipes dans la transition vers ce mode de fonctionnement.
Le facteur clé du succès vient toujours de là. On obtient le résultat des moyens qu’on s’est donné.
Il ne faut pas oublier qu’une démarche DevOps ouvre la communication de bout en bout, du développeur vers l’utilisateur final (le client) avec la prise en compte de l’aspect fonctionnement du logiciel (disponibilité, charge, engagement de qualité, etc …).

2. Evaluer sa maturité

L’approche CALMS agit comme cadre pour un DevOps réussi. Pour cela, le modèle original CAMS amène les entreprises à évaluer leur maturité sur quatre aspects essentiels du DevOps : Culture, Automation, Measurement, Sharing. Par la suite, il évoluera en CALMS pour intégrer une autre dimension: Lean. Une volonté d’amélioration continue qui a toute sa place en DevOps.
Ainsi, en évaluant sa situation à un instant T, il permet par la suite de mieux comprendre le chemin qu’il reste à parcourir et, au regard de ce qui a été expliqué plus haut, de se fixer des objectifs raisonnables et atteignables.
Pour mieux comprendre son intérêt et comment l’utiliser, nous vous proposons cet article dédié à l’implémentation du DevOps avec CALMS.

3. Fixer des objectifs SMART

DevOps a su s’imposer dans les entreprises pour ses vertus business. Comme pour tout investissement, la mise en place d’objectifs SMART est à faire en amont afin de pouvoir valider le ROI de la démarche ainsi que les KPI de mesure.
Ces objectifs doivent être Spécifiques, Mesurables, Atteignables, Réalisables et Temporellement finis. De cette façon, vous pourrez adapter et prioriser les actions à mettre en place en fonction de vos enjeux business (time to market, stabilité, sécurité…).
Les objectifs sont généralement classés dans ces 4 grandes catégories :
  • Satisfaction client / utilisateur
  • Productivité
  • Qualité
  • Satisfaction collaborateur
Afin de permettre à vos Ops et à vos développeurs de travailler ensemble, il est imporant de leur fixer des objectifs communs. Cela crée un cercle vertueux où les réussites des uns sont les réussites des autres, et où tout le monde a intérêt à collaborer. Il faut alors fixer des objectifs avec 2 mesures, une venant des objectifs “naturels” des développeurs, et l’une venant du monde des Ops.
Prenons un exemple, si vous fixez un objectif orienté Ops, du type “la plateforme doit être disponible à 99,9%”, vous pouvez être certain que vos Ops vont partir en croisade contre les développeurs, ce qui impactera votre capacité à mettre en production rapidement.
Au contraire si vous fixez un objectif de delivery, vous obtiendrez le processus inverse avec une obsession de la livraison chez les développeurs qui rendra la vie de vos Ops infernale.
Voici un exemple d’objectif SMART : 1 mise en production par semaine avec 0 downtime de l’application

4. Instaurer une culture DevSecOps forte dans l'entreprise

Les principaux obstacles à l’adoption de DevSecOps ne sont pas tant d’ordre technique qu’opérationnel. Les organisations en silos, le manque de coopération et de communication entre les équipes, le manque de transparence du management constituent les principaux freins à l’adoption de DevOps à l’échelle de l’entreprise.
La démarche DevOps fait peur parce qu’elle s’accompagne d’une grande phase de changements culturels et organisationnels liés aux processus existants et nécessite des compétences pointues. Pour une mise en œuvre à grande échelle, DevOps exige un changement radical de l’état d’esprit dans l’ensemble de l’entreprise. Instaurer une dynamique d’équipe est un facteur déterminant pour l’adoption de DevOps.
Embarquer les équipes sur des projets commun, commencer par de petits projets qui génèreront de petits succès encourageants et favoriser l’apprentissage est bon moyen de garantir une culture DevOps forte dans l’entreprise.
Le principal défi du DevOps est celui de la conduite du changement. Cela est d’autant plus vrai lorsqu’il s’agit de le déployer à l’échelle. De nombreux obstacles peuvent s’y opposer : des locaux mal conçus ou mal aménagés, des services ou des sites éloignés, parfois dans des pays différents… Tout cela contribue à séparer les équipes.
Vous l’aurez compris, les pratiques DevOps sont non seulement à prendre en considération mais aussi et surtout doivent être mises en application.

Faciliter et cadrer la collaboration entre les équipes

Le premier point important à mettre en place, c’est la communication. Pour mettre en place une démarche d’amélioration continue il faut prévoir des discussions où chacun expose ses points bloquants pour avancer sur le projet.
La conception d’une nouvelle feature ou de l’ajout d’une nouvelle technologie doit faire l’objet d’une concertation en amont entre développeurs et Ops.
Pour le faire proprement, ce workshop doit être pris en compte dans les sprints des 2 équipes sous la forme d’un ticket estimé. Sinon vous avez toutes les chances que ce soit fait à la va vite entre 2 features, et vous le paierez après.
Il est important d’en finir avec les demandes “informelles”. Demander à un collègue de lui donner un coup de main autour de la machine à café c’est bien, mais cela génère de la charge non prévu et peut donc impacter tous les cycles de livraison des projets.

Sensibiliser les équipes de Dev et Ops

Chaque équipe doit connaître l’impact du travail de son équipe sur le business et les utilisateurs. Si l’on reprend le premier exemple du t-shirt et des soldes, un site e-commerce peut perdre jusqu’à 30 000 euros sur une matinée de soldes si le site ne répond plus. En ayant cette information, les Devs valoriseront mieux le travail des équipes opérationnelles.
En interne, pour une bonne partie de ses tâches, une équipe Ops a des “clients”.
Il est important de sensibiliser les équipes à la culture du service client :
  • Comprendre les problèmes des développeurs
  • Adapter les solutions à leurs besoins
  • Prendre en compte leurs feedbacks
Cela nécessite une vraie dose d’humilité, et c’est un changement d’état d’esprit qui sera très difficile à mettre en place dans bon nombre d’entreprises où la culture DevOps n’est pas encore bien implémentée. Il ne faut pas non plus tomber dans un mode de communication dictatorial et malsain où les développeurs se servent de cette étiquette de “client” pour dominer l’équipe Ops. Mais développer une culture du service et de la satisfaction client dans votre équipe Ops vous permettra d’améliorer la qualité, la vitesse de vos livraisons, et la communication entre vos Ops et vos développeurs.

Automatiser au maximum

Dans la culture DevOps, si vous automatisez vous gagnerez en efficacité et en rapidité. L’enjeu est également de réduire l’intervention humaine sur les tâches répétitives pour limiter les risques d’erreurs et, surtout, de permettre aux développeurs de se focaliser sur des tâches à plus haute valeur ajoutée.
Des outils d’automatisation permettent de déployer des processus répétables, afin de décharger les collaborateurs de tâches récurrentes et d’aller plus vite.
En automatisant ce qui cause le plus de douleurs, non seulement vous gagnerez en efficacité mais surtout vous rassurerez l’équipe. La peur liée à l’automatisation se transforme alors en source de motivation.
L’objectif de l’automatisation est de créer à la fois de la confiance et de l’indépendance. Avec l’automatisation, chacun devient serein, des métiers jusqu’au développeur. On peut même aller, avec du temps et de l’investissement, jusqu’à un niveau d’accessibilité à l’automatisation qui autorise n’importe quelle partie prenante à déclencher un déploiement en production.

Standardiser et utiliser les bons outils

La standardisation des outils permet de réduire la complexité et de gagner en sérénité. Des solutions à la fois technologiques et pratiques existent notamment pour le contrôle de version, la gestion de configuration, l’intégration continue, le déploiement et le suivi. Azure DevOps, en l’occurrence, est une solution intégrée qui donne accès à cet ensemble d’outils dédiés aux métiers du DevOps.
Il faut alors identifier les meilleures solutions à mettre en œuvre. Des événements et des outils peuvent contribuer à une belle installation du DevOps au sein de l’entreprise.
Au-delà de la standardisation, il est important d’avoir un outillage dont on a le moins possible à se préoccuper en terme de maintenance et d’évolution. Azure DevOps, comme plateforme hébergée en mode SaaS répond pleinement à cet objectif.