Qu’est ce que le Devops ?

Avant les années 2000, les développements logiciels se faisaient principalement en cascade (waterfall) avec une livraison de version après une phase plus ou moins longue de développement. S’en suivait une seconde période souvent tout aussi longue durant laquelle le service qualité pouvait prendre plusieurs mois avant d’accepter une livraison. On utilise à ce titre souvent le jargon livraison Big Bang, le logiciel apparaissant de rien. 

C’est dans ce climat que le terme DevOps est apparu en 2009 grâce aux travaux de Patrick Debois. L’objectif DevOps est de définir un nouveau paradigme pour remplacer les premières structures cloisonnées du début de l’informatique. Des structures devenues petit à petit inopérables avec l’accroissement de la demande en produits informatiques.

DevOps est devenu l’une des pratiques les plus sollicitées après la révolution des cycles de distribution logiciels depuis les années 2010. DevOps a permis entre autres aux équipes de développement de réaliser l’intégralité de leur mission de manière stable malgré les impacts récurrents et la complexité du métier.

Dans cet article, nous allons revenir sur les fondements de la philosophie DevOps et introduire ce domaine vaste qu’est la culture DevOps.

À quoi peut répondre le DevOps dans une entreprise ?

L’objectif principal auquel souhaite répondre l’organisation DevOps est de garantir une livraison de meilleure qualité des logiciels. Ceci nécessite également de répondre à la demande en hausse du marché envers les logiciels de plus en plus sophistiqués en termes de contenu et de fonctionnalités.

Pour ce faire, les équipes doivent travailler de pair et construire un plan de livraison en continu à l’aide de l’automatisation de certaines tâches et en instaurant les processus nécessaires au bon déroulement des missions.

Les grands principes de l’organisation DevOps.

Avant toute chose, il est important de préciser qu’il y a plusieurs définitions du DevOps, car la pratique est vaste et n’est pas institutionnalisée. En général, on peut considérer les pratiques DevOps comme une boîte à outils récupérant plusieurs approches ayant fait leur preuve dans l’industrie depuis la moitié du XXe siècle.

DevOps se base sur un cycle de vie standard d’un produit souvent appelé pipeline de distribution continue. Ce cycle prend en compte plusieurs aspects dont les parties essentielles sont : la planification, le développement, l’intégration, le déploiement, l’opération et l’apprentissage. Dans certains modèles d’autres piliers sont ajoutés comme par exemple les tests continus, la sécurité et la conformité.

Le DevOps a pour objectif d’améliorer les relations entre les équipes de développement et les acteurs qui dirigent la phase opérationnelle. La vision commune est d’apporter davantage au client. 

On remarque assez rapidement lors de la lecture autour des structures qu’il s’agit avant tout d’un maillon essentiel à mettre en place dans la culture d’entreprise. Par conséquent, c’est une pratique qui emploie fortement les interactions sociales et dont le relationnel doit être pris en compte pour fonctionner. En définitive, le responsable DevOps doit amener au changement des habitudes et la philosophie de son entreprise afin d’optimiser et d’améliorer le cycle de production. 

C’est une part essentielle et très complexe nécessitant un temps long et une écoute bienveillante de tous les acteurs. Le DevOps vient souvent en opposition avec les anciennes pratiques établies et encourage davantage les erreurs pour mieux les éviter. Un parallèle est à faire avec les méthodes Agile auxquelles on incorpore une plus grande attention à la collaboration entre les silos. Évidemment, l’effort à mettre en place doit être justifié par des résultats. 

Quels sont les avantages ?

Les programmes DevOps ont déjà présenté leur avantage dans l’industrie. Les objectifs d’une structure DevOps sont souvent multiples, dont les aspects tangibles sont principalement: une augmentation significative de  la fréquence de déploiement des logiciels, l’accélération de la livraison commerciale d’un projet informatique et la réduction du taux d’échec à la suite de la vente. 

Par ailleurs, les principes DevOps mettent en avant une productivité et une performance accrue des équipes ce qui se conclut par une commercialisation plus rapide, une réponse au marché et à la concurrence plus flexible et un maintien de la stabilité et conformité produit.

Dans le secteur de l’informatique, des processus et des pratiques émergent par l’exploitation DevOps. Parmi les plus sollicités, on retrouve l’intégration et la livraison en continu (CI/CD), la gestion du suivi de version, le développement Agile et la supervision en temps réel. Ceci a déjà permis à plusieurs grandes sociétés d’accroître la qualité des livrables et réduire le temps de développement des fonctionnalités. 

Le cycle du DevOps dans un projet Informatique.

Le cycle de transformation Devops peut varier indépendamment des acteurs en fonction de l’état actuel de l’entreprise avant le début du cycle (niveaux d’automatisation, ressources humaines…).

Avant de revenir sur le cycle DevOps, nous allons nuancer notre propos en revenant sur le cycle historique Waterfall. Ce cycle est à contre-courant des méthodes modernes dites Agiles. Ce qui n’en fait pas une approche à jeter dans toutes les situations. Le développement en cascade à plusieurs avantages notamment avec une mise en place rapide, mais également une gestion des livrables clairs et précis. Dans le cadre de projet simple, ceci peut avoir son avantage avec des milestones bien définis et compréhensibles pour une courte période de production. Les ressources dans ce cas peuvent être facilement allouées tandis que les processus et résultats attendus peuvent être facilement documentés. 

Dans d’autres situations, notamment pour des projets de grande ampleur, le développement en cascade est moins efficace et  a permis l’émergence des pratiques Agiles pour répondre à plusieurs inconvénients. Par exemple, le manque de place à la réflexion et aux révisions lors de la phase de développement. Mais également une situation qui tend à augmenter à la fois les risques et les incertitudes, tout en accentuant la difficulté des gros projets aux architectures imbriqués et complexes. Cette situation ne rend pas le développement flexible, car les mesures de réussites et la visibilité en cours de production sont rendues difficilement mesurables. Finalement, l’ensemble de ces incertitudes a été parfois la cause de livraison instable et de retard. C’est dans ce contexte qu’émergent les pratiques Agiles et le cycle de production DevOps très souvent relié.

Finalité en trois points du cycle DevOps.

Le cycle DevOps vient généraliser les pratiques Agile dans l’ensemble des tâches de production informatique. Il existe trois phases essentielles qui peuvent être automatisées dans ce cycle pour n’importe quel projet informatique. 

Intégrer le contenu en contenu (Continuous Integration ou CI).

L’intégration continu ou Continuous Integration, qui a donné CI en abrégé, consiste à intégrer rapidement du code à la version livré du projet. Puisque la CI est une démarche automatisable, elle permet de gagner un temps non-négligeable en fin de production et lors de la livraison.

Il existe plusieurs étapes à automatiser en CI. La première concerne les tests automatisés composés de quatre grands groupes:

Les tests unitaires permettant de valider les méthodes et fractions de code lors du développement.

Les tests d’intégration pour valider la correspondance entre les composants qui représente le corps du projet.

Les tests d’interface utilisateur mettant en évidence la conformité des interfaces avec les attendus des utilisateurs finaux.

Important: Dans une démarche DevOps, au mieux, chaque commit doit venir avec son lot de test pour automatiser les tests petit à petit.

Livrer le contenu au fur et à mesure (Continuous Delivery ou CD):

L’objectif ici est d’offrir une livraison régulière du produit avec la meilleure qualité logiciel et également d’automatiser la mise en production. En d’autres termes, avoir un processus fluide de mise en production du logiciel.

À chaque fois qu’un changement lié à la pratique DevOps est démarré au sein d’une entreprise et qu’une automatisation des processus est en cours, il faut penser à construire ou à modifier le cycle de livraison impacté par ce changement. La livraison en contenu peut prendre différentes formes et n’a pas à être totalement automatisée, certaines tâches peuvent être réalisées manuellement, et même dans la plupart des cas, il en va ainsi pour différentes raisons (technicité, coûts, choix…).

CI et CD sont reliés dans leur mise en œuvre, mais sont bien deux processus dissociés. La CI est primordiale et devient rapidement nécessaire pour ensuite mettre en œuvre un bon CD. Pour ce faire, il faut impérativement une bonne collaboration de la part des développeurs et de l’équipe opérationnelle. 

Livraison et mise en ligne continue (Continuous deployment):

Sous-étape majeure à l’intérieur du CD, elle est très souvent confondue puisqu’elle est le cœur de la stratégie de livraison. Elle permet d’automatiser les mises en production des versions afin de n’assurer aucune date de mise en production à risque pour les équipes et de rester concentré sur la conception de nouvelles fonctionnalités.

Quels sont les pré-requis pour aborder DevOps.

Nous avons vu les avantages que propose une organisation DevOps et à quoi ressemble un cycle de production en suivant ces principes. Avant de pouvoir mettre en place les stratégies de transformation nécessaire pour une politique DevOps, certains prérequis sont nécessaires pour valider la transition. 

Le premier est simple, pour mettre en place  une structure DevOps et une culture d’entreprise DevOps, l’équipe organisationnelle doit pouvoir proposer des outils facilitateurs. Dans le cadre de l’industrie informatique, ceci comprend, des outils de suivi de gestion de projet, des référentiels de code source collaboratif, des systèmes de tests automatisée, une plateforme CI/CD opérationnelle, des outils de configuration, des outils de surveillance et des outils de retour d’information. Cette liste non-exhaustive mais déjà bien enrichie témoigne de l’importance de l’environnement de travail pour atteindre les objectifs DevOps. Il est possible d’intégrer ces outils durant la phase de transition, mais il est clair qu’ils deviendront vite indispensables au quotidien. 

Par ailleurs, même si la mise en place des principes DevOps demande des moyens et des ressources matériels, rien n’est possible sans le remaniement de la culture organisationnelle de l’entreprise. Les principaux changements vis-à-vis des approches classiques sont : la collaboration accrue avec plus de visibilité et d’alignement dans les objectifs, l’évolution de la portée de chacun et la distribution des responsabilités, l’usage d’un cycle de création plus court et un apprentissage itératif en continu. À cette fin, les choix à prendre peuvent se baser sur les propositions de différents framework d’intégration DevOps ou sur les acquis des structures. 

Enfin, il faut s’assurer de la faisabilité et de la formation des acteurs au sein de l’entreprise. Le DevOps doit faire en sorte que chaque groupe de métier au sein du cycle de production suit une trame commune malgré des conflits dans les objectifs de chacun. Ici aussi plusieurs frameworks peuvent aider à mettre en place les actions à mener. 

Finalement, à titre de conclusion, le travail DevOps est sur le long terme, l’instauration de nouveaux processus, leur validation et l’optimisation peut prendre du temps. C’est pourquoi, cette transition doit être menée au plus vite en gardant à l’esprit une vision longue terme tout en gardant les échéances court terme des impératifs d’entreprise. 

Photo Maxime Macé

Maxime Macé

Simple passionné de thématiques diverses et variées. J’apprécie enrichir mes connaissances dans les disciplines techniques comme l’informatique, les sciences et l’ingénierie, mais aussi dans les domaines merveilleux de la philosophie, l’art et la littérature.

Prenons contact

Vous souhaitez me contacter suite à la lecture de cet article ? Merci de renseigner votre adresse électronique et je vous recontacterai dans les plus brefs délais.

CV Ingénieur développeur informatique

CV Étudiant PhD Artificial Intelligence

Portfolio Artist designer