Cet article a été initialement publié sur DevOps.com. Il a été mis à jour et modifié.
Tout comme les termes « blockchain », « big data » et « disruption numérique », le terme « DevOps » est un autre mot à la mode actuellement utilisé par les services informatiques des grandes organisations.
De nombreuses entreprises reconnaissent à juste titre la nécessité d'un cycle de vie du développement logiciel plus précis, étroitement lié aux objectifs commerciaux, qui permette une collaboration plus claire entre les équipes de développement et les équipes opérationnelles. Le DevOps est par essence un développement « agile », prêt à répondre aux besoins des entreprises modernes en constante évolution, en croissance et en innovation rapide.Pour les experts en sécurité, il s'agit d'une initiative remarquable. La sécurité peut être intégrée au processus à un stade beaucoup plus précoce, ce qui permet de réduire les coûts liés à la correction des bogues et d'éviter des catastrophes potentielles à l'avenir.
Le problème est que très peu d'entreprises parviennent réellement à mettre en œuvre le DevOps. Sans un soutien, une formation et une compréhension adéquats à l'échelle de l'entreprise, tout peut rapidement revenir à la case départ. Comme vous le savez, il s'agit d'un projet qui ne souffre d'aucune contradiction.
Alors, quel est le problème ? C'est une question intéressante. Il existe plusieurs approches DevOps qui, selon moi, facilitent considérablement la transition. Un programme efficace ne se limite pas à quelques nouveaux outils sophistiqués, à des titres ronflants et à des réunions d'équipe. Bien que cela ne soit pas toujours facile, prendre le temps de corriger les stratégies qui ont échoué (ou de les mettre en œuvre correctement dès le départ) réduit considérablement les difficultés à long terme. En fin de compte, cela permet d'obtenir des logiciels de meilleure qualité et plus sûrs.
Analysons cela :
Veuillez détacher le cordon de votre tablier « Agile ».
Il existe une idée fausse selon laquelle les organisations doivent choisir entre l'agilité et DevOps, s'engager dans l'une ou l'autre voie et ne jamais revenir en arrière.
L'important est que le processus de développement fonctionne le mieux possible lorsqu'il est considéré et mis en œuvre comme un tout. DevOps n'est pas une réinvention du développement agile. Il s'agit plutôt d'une extension du développement agile. Si l'on se concentre uniquement sur le processus, on risque de s'éloigner de l'agilité, soit en adoptant une approche identique, soit en adoptant une approche complètement différente.
Agile soutient le principe des équipes interfonctionnelles, qui rassemble dès le départ les concepteurs, les testeurs et les développeurs, et garantit une communication ouverte tout au long du projet. L'objectif est de mettre fin au cloisonnement des livraisons et de réduire les doublons, deux avantages du processus DevOps.Cependant, DevOps va plus loin en combinant les systèmes, la sécurité et les opérations pour fournir aux clients un logiciel complet et fonctionnel, avec pour objectif final de fournir un ensemble de compétences robustes et de bout en bout.
Dans le cadre de la transition inévitable vers des processus centrés sur le DevOps, le risque de développement cloisonné pourrait à nouveau augmenter. Souvent, les équipes agiles d'origine collaborent, mais personne n'est certain de la manière dont la sécurité et les opérations supplémentaires doivent être intégrées, ni de ce qu'il convient de faire, ni des objectifs globaux, alors que ces éléments sont déjà bien implantés dans les machines.
DevOps ne peut fonctionner sans objectifs clairement définis, une intégration interdépartementale et une communication directe avec toutes les parties prenantes. Bien qu'il y ait une période d'ajustement qui nécessite une gestion prudente du changement, mettre tout le monde d'accord sur les avantages offerts par DevOps ne représente que la moitié du chemin.
DevOps met également l'accent sur les meilleures pratiques en matière de sécurité dans le cadre du processus, explique clairement les étapes à suivre et comble le fossé entre l'équipe de sécurité et tous les autres (ce qui est très appréciable). Comme mentionné précédemment, il reste encore beaucoup à faire pour que les développeurs puissent coder de manière sécurisée dès le départ, mais la mise en œuvre réussie de la méthodologie DevOps constitue une excellente base pour développer les compétences en matière de sécurité au sein de l'équipe de développement.
L'automatisation n'est pas la solution à tout (et n'est pas non plus la solution la plus sûre).
Une autre caractéristique de la méthodologie DevOps est l'automatisation partielle du processus de développement logiciel. Les principes d'intégration continue et de livraison continue (CI/CD) sont à la base de ce concept et, comme vous pouvez l'imaginer, dépendent fortement des outils. Les outils d'
s sont remarquables, vraiment remarquables. Ils permettent de gérer de manière relativement transparente les éléments du référentiel de code, des tests, de la maintenance et du stockage, ce qui accélère considérablement le processus de livraison des logiciels.
Cependant, il est certain que les robots pourraient un jour nous priver de tous nos emplois et nous emprisonner, mais cela ne s'est pas encore produit. Une dépendance excessive aux outils et à l'automatisation augmente considérablement le risque d'erreurs. Les analyses et les tests ne permettent pas de tout détecter, et il arrive que le code ne soit pas vérifié, ce qui entraîne des problèmes de qualité (et bien sûr de sécurité). . Il suffit d'une seule porte dérobée pour qu'un pirate informatique puisse exploiter et voler des données. Négliger le facteur humain dans le contrôle qualité et la gestion de la sécurité peut avoir des conséquences désastreuses.
Le « Happy Medium » consiste à trouver un équilibre entre les personnes et les outils. Les outils doivent jouer le rôle d'assistants permettant à une équipe fiable d'atteindre les objectifs du projet. Il est nécessaire de procéder comme suit :
- Veuillez prévoir suffisamment de temps pour vous familiariser avec la chaîne d'outils DevOps choisie.
- Se concentrer sur une collaboration efficace (et sur la manière dont les outils peuvent la soutenir)
- Que ce soit basé sur les compétences/connaissances ou sur les outils, nous nous occupons de toutes les lacunes du processus.
En résumé, il ne suffit pas de se contenter d'améliorer ses outils et d'espérer obtenir les meilleurs résultats possibles.
DevOps n'est pas un simple mot à la mode, c'est une culture. Votre entreprise progresse-t-elle dans ce domaine ?
La gestion du changement est difficile, même dans les meilleures conditions. La peur de l'inconnu peut empêcher même les membres les plus compétents de l'équipe de perfectionner leurs compétences et d'élargir leurs horizons.
Il ne suffit pas de déclarer « Passons au DevOps » et de déplacer les bureaux de l'équipe opérationnelle pour que le processus fonctionne comme par magie. Beaucoup de personnes seront déconcertées et les membres de l'équipe qui travaillent depuis longtemps dans l'entreprise seront mécontents. Il est essentiel de communiquer vos attentes et de « progresser ». Le DevOps est à la fois une méthodologie de développement et un mouvement culturel. L'équipe doit adopter une approche transversale et collaborative.
Quelle est la nature d'une culture DevOps de qualité ?
- Non seulement les dirigeants, mais également les individus ont la possibilité de mettre à profit leurs connaissances spécialisées dans le cadre des processus.
- Communication ouverte, sincère et respectueuse entre les équipes
- Chaque individu est responsable de l'objectif global consistant à intégrer la qualité et la sécurité dans le processus de développement.
- Tous les membres de l'équipe partagent la même compréhension de la définition, de la feuille de route, ainsi que des méthodes, du contenu et des raisons des rôles individuels de DevOps dans le contexte commercial.
Depuis de nombreuses années, j'insiste sur l'importance de créer une culture de sécurité positive au sein des équipes de développement, et DevOps ne fait pas exception.
Pour mettre en œuvre les meilleures pratiques en matière de sécurité, confirmer la réduction des vulnérabilités détectées et sensibiliser l'équipe à l'importance de la protection des données, il est essentiel de disposer des outils, des connaissances et du soutien appropriés. DevOps nécessite la mise en place d'une base culturelle permettant d'apporter des changements positifs. En d'autres termes, il est nécessaire que chacun comprenne son rôle, sa valeur, ses attentes, les objectifs globaux du projet et les étapes du processus.
Vous avez maîtrisé cela ? Excellent. Alors, changez de cap, renforcez encore davantage la sécurité et faites de DevSecOps le plan ultime pour l'excellence logicielle.