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 personnes ont déjà pris conscience (à juste titre) de la nécessité d'accélérer le cycle de vie du développement logiciel, d'adopter un processus plus précis, étroitement lié aux objectifs commerciaux, afin de clarifier les flux de travail et la collaboration entre les équipes de développement et d'exploitation. Le DevOps est essentiellement un développement « agile », dans lequel tous les développeurs évoluent et sont prêts à répondre aux besoins d'innovation et de déploiement rapide des entreprises modernes. Pour les professionnels de la sécurité, il s'agit d'une initiative remarquable : nous pouvons intégrer la sécurité plus tôt dans le processus, ce qui réduit le coût de la correction des erreurs et évite des catastrophes potentielles.
Le problème est que peu d'entreprises parviennent réellement à mettre en œuvre avec succès le DevOps. Sans le soutien, la formation et la compréhension appropriés de l'ensemble de l'entreprise, cela peut rapidement devenir un projet coûteux et inefficace... Vous savez, l'un de ces projets dont on préfère ne pas parler.
Alors, quel est le problème ? Il s'agit d'une discussion intéressante, et je suis convaincu qu'il existe plusieurs approches pour mettre en œuvre DevOps qui faciliteront le processus. Une planification efficace ne se résume pas à de nouveaux outils sophistiqués, à des titres prestigieux et à des réunions d'équipe. Cela n'est pas toujours facile, mais à long terme, il est préférable de consacrer du temps à corriger une stratégie inefficace (ou à la mettre en œuvre correctement dès le départ). En fin de compte, cela permettra d'obtenir des logiciels de meilleure qualité et plus sécurisés.
Permettez-nous de décomposer cela :
Veuillez relâcher le cordon du tablier « Agile ».
Il existe une idée fausse selon laquelle les organisations doivent choisir entre l'agilité et DevOps, s'engager dans une voie ou dans l'autre, sans jamais revenir en arrière.
Le problème est que le processus de développement fonctionne le mieux lorsqu'il est envisagé et mis en œuvre comme un tout. DevOps n' est pas une refonte du développement agile ; il s'agit plutôt d'une extension du développement agile. Lorsque les gens s'attendent à ce que le processus change, les rouages ont tendance à se désolidariser, soit en devenant complètement agiles, soit en s'éloignant complètement de l'agilité.
L'agilité soutient le principe des équipes interfonctionnelles, réunissant dès le début les concepteurs, les testeurs et les développeurs, et s'engageant à maintenir des canaux de communication ouverts tout au long du projet. L'objectif est de mettre fin aux livraisons isolées et de réduire les doublons, deux avantages du processus DevOps. Cependant, DevOps va plus loin en intégrant les systèmes, la sécurité et les opérations afin d'offrir un ensemble de compétences de bout en bout, avec pour objectif final de fournir aux clients un logiciel pleinement fonctionnel.
Dans le cadre de la transition inévitable vers un processus davantage axé sur DevOps, le risque d'un développement isolé peut réapparaître. Il est généralement possible de faire collaborer l'équipe agile initiale, tandis que les nouveaux membres des équipes de sécurité et d'exploitation continuent de trouver leur place dans le système informatique. Cependant, personne ne sait exactement comment les inclure, quelles tâches leur attribuer et quels sont leurs objectifs généraux.
Sans objectifs clairs, une intégration interfonctionnelle et une communication directe avec toutes les parties prenantes, DevOps ne peut fonctionner. Bien sûr, il y aura une période d'ajustement qui nécessitera une gestion minutieuse du changement, mais parvenir à un consensus sur les améliorations apportées par les fonctionnalités DevOps représente la moitié du chemin vers la réussite.
Heureusement, DevOps accorde également une importance croissante aux meilleures pratiques en matière de sécurité, en les intégrant dans ses processus, en démystifiant cette étape et en comblant le fossé entre les équipes de sécurité et les autres. Comme je l'ai mentionné précédemment, nous avons encore un long chemin à parcourir pour doter les développeurs de compétences en matière de codage sécurisé dès le début, mais la mise en œuvre réussie de l'approche DevOps constitue une excellente base pour développer les compétences en matière de sécurité au sein des équipes de développement.
L'automatisation n'est pas la solution à tout (et n'est pas non plus la plus sûre).
Dans une certaine mesure, une autre caractéristique de l'approche DevOps est l'automatisation du processus de développement logiciel. Le principe de l'intégration continue et de la livraison continue (CI/CD) est la pierre angulaire de ce concept et, comme vous pouvez le deviner, il repose fortement sur les outils. Les outils d'
s sont remarquables, c'est certain. Ils peuvent apporter une vitesse sans précédent au processus de livraison de logiciels, en gérant de manière relativement transparente les éléments de stockage, de test, de maintenance et de référentiel de code.
Cependant, même si un jour les robots pourraient nous priver de tous nos emplois et nous emprisonner, ce n'est certainement pas encore le cas. Une dépendance excessive aux outils et à l'automatisation ouvre la porte à des erreurs. Les analyses et les tests peuvent ne pas détecter tout, le code peut ne pas être vérifié, ce qui pose d'énormes problèmes de qualité (sans parler de sécurité). Il suffit d'une seule porte dérobée pour qu'un attaquant puisse exploiter et voler des données, et renoncer à l'intervention humaine dans les contrôles de qualité et de sécurité peut avoir des conséquences désastreuses.
Le « point d'équilibre » est un outil permettant d'assurer l'équilibre entre les personnes. Cet outil doit servir d'assistant à votre équipe de confiance afin d'atteindre les objectifs du projet. Vous devez :
- Veuillez prévoir suffisamment de temps pour permettre aux personnes concernées de se familiariser avec la chaîne d'outils DevOps sélectionnée.
- Se concentrer sur une collaboration efficace (et sur la manière dont les outils peuvent la faciliter)
- Combler toutes les lacunes dans le processus, qu'elles soient liées aux compétences/connaissances ou aux outils.
En résumé, il ne suffit pas de se dire « reprenez courage » et d'espérer obtenir le meilleur résultat possible.
DevOps n'est pas un mot à la mode, mais une culture. Êtes-vous en train de vous développer ?
Même dans les meilleures conditions, la gestion du changement peut s'avérer difficile. La crainte de l'inconnu peut empêcher même les membres les plus talentueux de l'équipe de développer leurs compétences et d'élargir leurs horizons.
Vous voyez, il ne suffit pas de dire « Passons au DevOps » et de demander à l'équipe opérationnelle de déménager ses bureaux pour que le processus fonctionne comme par magie. Beaucoup de gens seront déconcertés et les membres de l'équipe en poste depuis longtemps seront mécontents. Une communication claire est essentielle, tout comme le fait de « montrer l'exemple ». Le DevOps est à la fois une méthode de développement et un mouvement culturel que l'équipe doit vivre et respirer dans un esprit de collaboration interfonctionnelle.
À quoi ressemble une excellente culture DevOps ?
- Les individus ont le droit d'apporter leur expertise au processus, et pas seulement les dirigeants.
- Communication ouverte, honnête et respectueuse entre les équipes
- Chaque individu est responsable de l'intégration de la qualité et de la sécurité dans l'objectif global du processus de développement.
- Tout le monde s'accorde sur la définition du DevOps dans l'entreprise, la feuille de route et le rôle, le contenu et les raisons de chacun.
Depuis plusieurs années, j'insiste sur l'importance de développer une culture de sécurité proactive au sein des équipes de développement, et DevOps ne fait pas exception.
Les outils, les connaissances et le soutien appropriés sont essentiels pour mettre en œuvre les meilleures pratiques en matière de sécurité, réduire le nombre de vulnérabilités détectées et sensibiliser les équipes à l'importance de la protection des données. Avec DevOps, il est nécessaire de créer une culture propice au changement positif : veiller à ce que chacun comprenne son rôle, sa valeur et ses attentes, ainsi que les objectifs généraux du projet et les étapes du processus.
Avez-vous acquis ces connaissances ? C'est remarquable. Maintenant, concentrons-nous sur l'amélioration de la sécurité et faisons de DevSecOps le plan ultime pour créer des logiciels d'excellence.