La culture DevOps un nouveau mouvement
De nos jours, tout évolue de plus en plus vite. Les applications existantes doivent constamment être adaptées, à un rythme toujours plus accru. Des complications apparaissent en outre souvent entre les développeurs et les équipes opérationnelles. L’approche DevOps permet heureusement de pallier ces problèmes. Mais en quoi consiste-t-elle au juste ? Et à quel point est-elle importante pour votre entreprise ?
Comment l’approche DevOps est-elle née ?
Plus qu’une méthodologie pour le développement de logiciels, DevOps est une culture, qui est nécessaire pour pouvoir répondre aux besoins actuels des entreprises dans le cadre du développement de logiciels, de sites web, d’applications, etc.
Dans le modèle en cascade traditionnel, les exigences posées pour un logiciel étaient claires et soigneusement définies à l’avance. La définition du produit même était également stable. Les développeurs se chargeaient du codage du logiciel, et les équipes opérationnelles devaient ensuite le mettre en œuvre sur les systèmes de l’entreprise ou le web.
Mais le monde de l’informatique évolue de plus en plus vite. Les exigences changent sans cesse, et le développement des logiciels doit lui aussi être de plus en plus rapide. Les logiciels et les applications web doivent non seulement pouvoir être mis sur le marché plus rapidement, mais ils doivent aussi pouvoir être constamment adaptés. De nouvelles fonctions doivent pouvoir être ajoutées sans aucune difficulté, et les bugs découverts doivent pouvoir être corrigés. Tout cela a conduit au modèle de développement agile.
L’équipe de développeurs n’est cependant pas la seule à devoir réagir de manière rapide et efficace ; l’équipe opérationnelle, qui doit déployer et surveiller les nouvelles applications, doit elle aussi pouvoir le faire. Tout cela mène à une approche DevOps. Nombreux sont ceux qui associent ce terme à une collaboration plus étroite entre les développeurs, c’est-à-dire les concepteurs d’un produit, et les ‘ops’, c’est-à-dire l’équipe opérationnelle qui se charge de la publication, du déploiement, de l’exploitation et de la surveillance du logiciel.
Mais DevOps, c’est bien plus que cela – c’est un état d’esprit, une approche commune d’un problème. Une approche qui va au-delà de ce qui est de nature exclusivement technique ; une approche au sein de laquelle tous les niveaux de l’entreprise sont impliqués, y compris les départements chargés des finances et du marketing, et pour laquelle la communication est d’une importance vitale.
Tous (du développeur à l’administrateur systèmes, en passant par les personnes qui gèrent le réseau et les analystes d’affaires) font à présent partie de la même équipe. Et tous œuvrent dans un but commun : la réussite de l’entièreté du projet, et pas uniquement de leur partie.
Quels sont les principes de l’approche DevOps ?
Les silos traditionnels entre les développeurs, les testeurs, les responsables de la publication et les administrateurs systèmes sont abandonnés. Durant tout le processus de développement et de déploiement, tous collaborent plus étroitement, ce qui leur permet de mieux comprendre leurs questions et défis respectifs.
Les développeurs, par exemple, réfléchissent davantage à des aspects tels que les opérations, les sources, la disponibilité et la fiabilité. Ils peuvent p. ex. installer des interrupteurs qui permettent aux équipes ops d’activer/désactiver des fonctions, supprimer certaines options en cas de pic de trafic, etc. Les équipes ops assistent les développeurs en permettant de réaliser et surveiller des tests rapides, etc.
L’approche Devops requiert de ce fait des personnes possédant des compétences multidisciplinaires – des personnes qui connaissent bien tant l’infrastructure que la configuration, mais qui peuvent tout aussi bien réaliser des tests et déboguer des logiciels. Les devops jettent des ponts, tout en ayant un pied dans chaque domaine. Ils sont, comme le dit si bien Stephen Nelson-Smith, des « ambassadeurs, des pacificateurs, des facilitateurs et de communicateurs ».
Lorsque toute l’équipe de projet est agile, du code pour p. ex. une nouvelle fonctionnalité ou la correction d’un bug peut être rapidement mis en production – ou annulé si nécessaire. Plus l’écart entre les versions successives est réduit, plus l’impact d’une éventuelle défaillance peut être minimisé : il s’agit de l’approche « fail fast, fail cheap ». Grâce à elle, les entreprises peuvent régulièrement innover – ce qui est surtout important pour les entreprises en ligne. Il paraît d’ailleurs qu’Amazon met en œuvre ou modifie du nouveau code toutes les 2 secondes !
L’approche DevOps a un impact sur l’entièreté du cycle de livraison d’un projet, dont :
- Un délai de commercialisation plus rapide
- Un taux d’échec plus faible pour les nouvelles versions
- Un délai de production plus court entre les correctifs
- Un délai de rétablissement plus court (en cas de plantage d’une nouvelle version)
En quoi consiste DevOps ?
Le logo de DevOps est le symbole de l’infini, ou plutôt : une activité continue. DevOps, c’est en effet :
- Un développement constant
- Des tests constants
- Une intégration constante
- Une mise en œuvre constante
- Une surveillance constante
Dans le cycle de vie de DevOps, on passe de la phase de projet à la phase de surveillance, et à chaque fois un nouveau cycle redémarre dès que le précédent est terminé. La partie en bleu correspond à la phase de développement, tandis que la partie en jaune correspond à la partie opérationnelle, mais en raison de leur interaction constante, les deux parties finissent par se confondre.
Pour la DevOps Agile Skills Association, 6 principes régissent le développement d’une stratégie DevOps :
- Travaillez selon une approche axée sur le client, avec de courtes périodes de retours donnés par de véritables clients et utilisateurs finaux.
- Évitez le modèle en cascade où chaque département travaille séparément, sans avoir une vue d’ensemble, et préférez une entreprise où chacun partage un état d’esprit technique pour créer un produit qui fonctionne comme il se doit.
- Organisez vos équipes de façon verticale, de façon à ce qu’elles puissent être responsables « from concept to grave».
- Misez sur des profils polyvalents, qui travaillent en équipes autonomes, au sein desquelles ils peuvent se développer sur le plan personnel.
- Apportez constamment des améliorations sur le plan de la rapidité, des coûts et du produit/service même.
- Automatisez tout ce qui peut être automatisé, y compris l’infrastructure, en créant p. ex. des plateformes cloud de nouvelle génération, basées sur des conteneurs (infrastructure as code).
Quels sont les avantages de l’approche DevOps ?
Sur le plan humain, le changement de mentalité constitue bien entendu le principal avantage. L’approche DevOps permet une plus grande empathie entre les membres des équipes, et met un terme aux silos de type « us and them », où les personnes sont méfiantes, voire parfois effrayées les unes par rapport aux autres.
Ce que l’approche DevOps apporte concrètement sur le plan professionnel est clairement expliqué dans le rapport intitulé « Puppet's State of DevOps ». Ce rapport annuel compare des entreprises qui adoptent des pratiques DevOps (entreprises à haut rendement) à des entreprises qui ne le font pas au niveau de la mise en œuvre du produit, de la loyauté du personnel, de la sécurité, etc. Le rapport de 2016 révèle notamment ceci :
- Rendement informatique : les entreprises à haut rendement déploient 200 fois plus souvent, avec des délais de production 2.555 fois plus courts. Leurs délais de rétablissement sont 24 fois plus courts et elles enregistrent 3 fois moins d’échecs lors de modifications.
- Loyauté du personnel : les employés des entreprises à haut rendement ont 2,2 fois plus tendance à considérer leur entreprise comme étant un bon employeur.
- Utilisation du temps : Les entreprises à haut rendement passent 22 % moins de temps à s’occuper d’imprévus ou à devoir recommencer un travail. Elles peuvent ainsi consacrer 29 % de temps en plus à de nouvelles tâches, comme l’élaboration de nouvelles fonctionnalités.
- Sécurité : 50 % moins de temps pour résoudre des problèmes de sécurité, du fait que l’information sur les objectifs en matière de sécurité est mieux intégrée dans le travail quotidien.
L’approche DevOps est-elle adaptée à tout le monde ?
DevOps est une excellente approche pour les entreprises (en ligne) qui innovent sans cesse. Pour elles, le délai de commercialisation est nettement raccourci, ce qui constitue un sérieux avantage financier.
Mais si votre entreprise n’est pas dans ce cas, l’approche DevOps améliorera bien sûr la cohésion entre vos employés, mais il y a de fortes chances que votre entreprise survive même sans adopter cette culture. Si la seule application créée en interne ne sert qu’à noter les présences lors de réunions ou à planifier les jours de congé, il est inutile de la mettre à jour quotidiennement !
Sources
Un grand merci à Dorien Marinus pour son article très complet - Combell.com