DevOps, par où commencer ?
Le DevOps vise à gérer le cycle de vie d’une application à travers l’automatisation des processus et l’étroite collaboration entre les équipes de développement et les équipes des opérations. Le DevOps est avant tout une culture.
Dans un contexte changeant où les exigences évoluent rapidement, les entreprises ont tout intérêt à intégrer ces nouvelles pratiques dans leurs développements. Les bénéfices sont multiples : replacer l’humain au cœur des différents processus, réduire les cycles de livraison et créer de la valeur pour vos utilisateurs plus rapidement, améliorer la qualité des développements et accroitre sa réactivité lors de détections de bugs, réduire les coûts des projets de développement, etc.
Pourtant, la mise en œuvre d’une démarche DevOps n’est pas anodine. Bien que son objectif soit de simplifier le cycle de vie d’une solution logicielle, elle apporte des changements profonds dans la culture et l’organisation d’une société.
Ainsi, lorsque l’on décide d’implémenter le DevOps à ses développements, démarrer par évaluer l’existant est nécessaire. Cela permet de comprendre sa situation actuelle et de déterminer le chemin qu’il faut prendre pour arriver à son objectif : ce qu’il reste à parcourir et les différentes étapes pour y arriver. Cette étape d’audit est primordiale afin de prendre conscience des efforts qui seront demandés à la société mais surtout aux différents acteurs de ce changement. Un regard extérieur peut vous permettre d’y voir plus clair et de générer une roadmap détaillée et pragmatique.
Dans cet article, nous verrons :
- 5 points clés pour réussir sa démarche DevOps
- Le cadre CALMS
- DevOps : surmonter les difficultés
- DevOps à grande échelle
5 points clés pour réussir sa démarche DevOps
Être familier de la méthode agile
Le DevOps est l’application des méthodes agiles à l’ensemble du cycle de vie d’une application, il est donc nécessaire d’être sensibilisé à l’agilité, quelque soit la méthode choisie.
Savoir investir et s’investir
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.
C’est en effet un élément très important de l’approche, puisque le DevOps permet et requiert de casser les silos entre ces différentes équipes. L’idéal étant d’arriver à une collaboration transversale basée sur des objectifs communs.
D’ailleurs, les échecs à l’acceptation de DevOps dans les entreprises tiennent souvent à une sous-estimation de l’investissement nécessaire. Cet investissement est à la fois celui des équipes, mais aussi financier. Des compétences supplémentaires sont en effet souvent nécessaires pour mener à bien le projet DevOps.
Adopter la démarche DevOps de manière progressive
Il faut avant tout se fixer des objectifs raisonnables qui seront ainsi atteignables et qui permettront d’aller au bout de la démarche. On conseille de commencer par des projets de petites tailles pour se familiariser avec ce nouveau processus ou un projet qui n’a pas encore débuté. Au sein de ce projet, on s’attachera d’abord à ce qui peut être le plus impactant pour les équipes afin d’assurer leur collaboration.
Nous l’avons déjà souligné : accéder à une démarche DevOps demande un changement de culture. Ce changement impose de la prudence. Selon le contexte, la motivation et les objectifs, le niveau d’acceptation par les équipes n’est pas toujours le même. En conséquence, ceux qui ont la charge de faire évoluer la culture de l’entreprise pour l’amener vers une démarche DevOps doivent donc être en mesure d’ajuster leur niveau de prudence. Avancer prudemment est également un gage d’acceptation de cette nouvelle culture.
Mettre en place les bons outils
S’équiper en conséquence permet de pouvoir profiter pleinement des avantages de la démarche DevOps. Aujourd’hui, des outils très bien pensés existent sur le marché mais tous ne s’adaptent pas à votre besoin ou ne s’intègrent pas aux outils déjà mis en place.
L’évaluation et la sélection de ces outils doit donc se faire avec soin.
Savoir faire preuve d’adaptation
Les pratiques DevOps et les règles de leur mise en œuvre sont de plus en plus définies. Cependant, pour être efficace, il est nécessaire de savoir faire preuve d’adaptation. Cette notion d’adaptation fait aussi partie d’une bonne démarche DevOps. Chercher à appliquer des pratiques et à imposer des outils en ne se préoccupant pas des habitudes, ni même des convictions, est souvent une erreur. Être capable de tenir compte de l’existant prend davantage de temps, mais donne bien plus de chance de succès.
Mesurer vos performances
Les bénéfices d’une démarche DevOps sont facilement observables. Ils doivent être également mesurables.
Comme expliqué dans cet article, les indicateurs de performances (KPIs) adaptés à une démarche DevOps peuvent être divisés en 4 familles :
– indicateurs de satisfaction client / utilisateur
– indicateurs de productivité
– indicateurs de qualité
– indicateurs de satisfaction collaborateur.
Le modèle CALMS pour évaluer sa maturité DevOps
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.
DevOps : surmonter les difficultés
Comme évoqué plus haut, mettre en place une démarche DevOps peut être complexe et il ne s’agit pas d’improviser. Pour mettre en place sereinement une démarche DevOps nous vous proposons ce guide, qui identifie les principaux obstacles mais donne surtout les bonnes pratiques pour les anticiper et les surmonter.
Voici les barrières détaillées dans ce guide. Ce sont celles rencontrées le plus fréquemment lors des différentes missions que nous avons pu effectuer :
– Le DevOps représente une petite révolution, il ne faut pas sous-estimer les changements que cela implique ;
– C’est tout ou rien : à faire les choses à moitié on risque de ne pas profiter pleinement du potentiel du DevOps ;
– Attention à ne pas multiplier les outils ;
– Le DevOps c’est l’affaire de toute la société : il faut s’assurer d’impliquer toutes les parties prenantes.
Méthode DevOps, comment l’intégrer à grande échelle ?
S’il est compliqué de ré-imaginer des architectures pour optimiser le système d’information, faire évoluer les mentalités est peut-être un obstacle plus grand encore.
Ce qui n’est déjà pas simple pour une startup, l’est encore moins pour une grosse structure dans laquelle les habitudes sont bien ancrées et depuis longtemps, mais c’est possible.
Mettre en œuvre la méthode DevOps « à l’échelle » est un véritable challenge. Il y a souvent deux chemins envisagés : celui qui favorise les initiatives DevOps distribuées, mais avec une gouvernance globale oubliée et celui qui met en place une équipe DevOps centralisée, garante d’un support transverse, mais avec un risque de goulot d’étranglement. Le meilleur chemin est sans doute entre les deux…
selon Micaël, expert DevOps chez SoftFluent
Bien se préparer en amont de la mise en place de la méthode DevOps
Dans le cadre d’une mise à l’échelle, plus encore que dans le contexte d’une startup, partager un langage et des objectifs devient très stratégique. Cet enjeu, qui peut prendre du temps, est un gage de réussite à la mise en œuvre du DevOps à l’échelle. C’est pendant cette première étape que chacun est invité à lire, se documenter, faire évoluer sa mentalité et son comportement, dans le cadre d’une vision renouvelée qui doit obligatoirement être portée par la direction.
Mettre en place une gestion des pipelines
La mise en place d’une gestion des pipelines est devenue la norme pour découper les projets par étape et devient encore plus essentielle à mesure que le nombre d’outils que vous utilisez augmente. Le pipeline de build est un ensemble de tâches pour notamment charger les sources du projet, restaurer les dépendances, générer le projet, exécuter les tests unitaires et, enfin, produire une version qui pourra être déployée dans l’environnement d’exécution. Une fois le pipeline créé et configuré, vous pouvez l’utiliser pour déployer, configurer et tester un serveur DNS et ses enregistrements d’hôte associés. Ce processus simule la première partie d’un pipeline qui sera utilisée dans un environnement de développement dans le cadre d’une méthode DevOps.
Un pipeline CI/CD automatisé vous permet de mettre à jour les logiciels avec plus de rapidité et de fiabilité, garantissant que tout le code est testé et qu’une version actualisée du code est disponible à tout moment. Lors de la mise en oeuvre de pipelines, il est important de s’interroger sur leur déclenchement. Même s’il faut automatiser le plus possible, il faut aussi donner la liberté aux développeurs de tester, dans une mesure raisonnable, le code de leur branche de fonctionnalité en passant par l’exécution d’un pipeline de build.
Standardiser les 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.
Au-delà de la standardisation, il est important d’avoir un outillage dont on a le moins possible à se préoccuper en termes de maintenance et d’évolution. Azure DevOps, comme plateforme hébergée en mode SaaS répond pleinement à cet objectif.
Intégrer l’automatisation
En automatisant 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.
comme l’explique Micaël
Accélérer la transformation culturelle
Les principaux obstacles à l’adoption de la méthode DevOps 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 la méthode DevOps à l’échelle de l’entreprise.
La méthode 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 la méthode DevOps.
Il faut embarquer les équipes sur un projet commun, montrer l’exemple, commencer par de petits projets qui génèreront de petits succès encourageants, favoriser les équipes plus petites pour qu’elles trouvent les solutions et se les approprient, encourager l’apprentissage…
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. 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.
Vous l’aurez compris, les pratiques DevOps sont non seulement à prendre en considération mais aussi et surtout doivent être mises en application.
Alors que de plus en plus d’entreprises progressent dans leur transformation digitale, elles ont besoin de méthodologies comme l’agilité et le DevOps pour gérer la complexité accrue. Les outils et l’automatisation peuvent améliorer les performances organisationnelles pour atteindre les objectifs suivants :
- Améliorer le délai de mise en production, créer de la valeur, réduire les coûts informatiques et mieux répondre aux besoins métiers. En proposant une expérience client différenciée et optimisée, non seulement vous fidélisez vos clients mais vous avez également le potentiel de séduire de nouveaux clients.
- Adopter un cercle vertueux. Les mises à jour fréquentes préviennent des petites erreurs, les équipes IT, ingénierie et qualité sont motivées pour travailler ensemble dans la même direction et sont donc plus efficaces. Les méthodes DevOps accroissent l’efficacité, minimisent les risques et concentrent les ressources sur des activités à plus forte valeur ajoutée.
- S’assurer du maintien de la qualité en permanence. L’automatisation et la pratique de tests menée en continu permet une mise à disposition des logiciels plus rapide, plus efficace et plus fiable avec une qualité de service en temps réel ! Un avantage concurrentiel particulièrement appréciable dans un contexte ultra compétitif, qui impose un rythme d’évolution des applications effréné.
Comme pour n’importe quelle résistance au changement, une approche pédagogique permet de présenter les bénéfices d’une telle démarche et de convaincre de l’intérêt dans sa mise en place dont les avantages sont incontestables.
Cet aspect pédagogique peut être porté par un ou plusieurs ambassadeurs au sein de l’entreprise mais peut également être délégué à un intervenant extérieur.
Un expert DevOps qui a pu suivre de nombreuses équipes dans divers contextes pourra vous proposer les meilleures solutions par rapport à votre problématique et apporter un regard externe objectif et factuel plus à même d’écarter les réticences souvent basées sur de l’émotionnel.