DevOps dans le cloud

Le cloud computing est souvent mis en place pour des raisons financières (coûts d'infrastructure inférieurs) et pour ses avantages techniques, (réduction du niveau de complexité des installations). Mais bien trop souvent, les entreprises oublient l'une des opportunités les plus intéressantes : la possibilité de transformer la manière dont les différentes parties de l'organisation travaillent ensemble.

Ce potentiel de collaboration prend souvent une apparence complexe. Le meilleur exemple en est peut-être DevOps, une approche relativement récente du développement et du déploiement logiciel et le déploiement qui peut modifier de manière spectaculaire la capacité d'une organisation à innover.

Les développeurs logiciels et les équipes opérationnelles entrent bien souvent en conflit les uns avec les autres. Ils ont généralement des objectifs différents : les développeurs se concentrent habituellement sur l’intégration de nouvelles fonctionnalités dans les logiciels et la résolution des problèmes. Le personnel opérationnel doit s’assurer que tout fonctionne normalement. Il n'aime pas le changement ni les perturbations, car cela risque d'interrompre les services informatiques.

Ce type de schisme peut freiner la capacité d'une organisation à fournir de nouvelles fonctionnalités logicielles à ses employés, et potentiellement à ses clients.

DevOps a été conçu pour résoudre ce problème. Bien plus qu'un simple produit, qu'un outil ou une méthode de gestion, DevOps est une tendance. Son principal objectif est de créer une nouvelle équipe, intégrée, travaillant de concert, en réunissant des spécialistes de ces différentes disciplines.

Correctement mis en œuvre, DevOps peut apporter des avantages importants à votre organisation. Cela permet de réduire le temps nécessaire à la mise en œuvre de nouvelles applications et d’éviter les missions redondantes, les doublons dans l'organisation. Ce système permet aussi de supprimer les silos entre les différentes équipes, et de faciliter la  communication entre équipes, tout en encourageant les responsables à appréhender les différentes fonctions de manière  globale.

Mêler la glace et le feu dans le cloud

DevOps est une idée séduisante mais c'est aussi une proposition complexe. Le regroupement d'équipes ayant des objectifs différents revient en quelque sorte à mélanger la glace et le feu. Heureusement, le cloud permet d'atteindre ces objectifs plus facilement !

L'un des principaux défis lors du rapprochement des équipes de développement et des équipes opérationnelles n'est autre que l'infrastructure. Dans le passé, la gestion du développement, des tests et des serveurs de déploiement entre les équipes demandait beaucoup de temps et était source d’erreurs, ce qui donnait lieu à des situations dans lesquelles le personnel signalait des problèmes de déploiement, pour s’entendre dire que tout fonctionnait pourtant sur le serveur test.

Dans le cloud, l'architecture est « sans état », ce qui signifie que l'infrastructure matérielle sous-jacente est administrée par le logiciel de gestion qui conserve une équipe virtuelle de ressources et les rend disponibles via différents profils de services. En d'autres termes, le personnel chargé du développement et des opérations peut créer des profils de services standardisés pour répondre aux différentes exigences des applications.

Cette infrastructure agile et axée sur les services apporte d'autres avantages aux développeurs et équipes opérationnelles, ce qui les rapproche. Le provisioning automatique permet aux développeurs et au personnel opérationnel d'accéder rapidement aux ressources dont ils ont besoin, souvent par le biais de portails en self-service. Cela offre une manière inédite d’intégrer le développement et les services. Cela crée aussi une plateforme dédiée à l'utilisation des outils d'automatisation pour gérer les flux de travail entre les équipes chargées du développement et des opérations.

En plus des avantages d'une architecture pour le cloud, que faut-il pour mettre en place correctement DevOps ? Il s'agit d'une nouvelle manière de travailler, qui va à l'encontre des valeurs ancrées au sein des équipes. Les responsables pourront être confrontés à une certaine réticence dans les deux équipes, et des systèmes d'incitation pourront être nécessaires.

Flexibilité et responsabilisation

Ces systèmes d'incitation existent déjà, mais ils doivent faire l'objet d’une meilleure communication. Les équipes de codage doivent être informées des possibilités de développement flexible. Grâce à la vitesse croissante du déploiement et aux retours d'expérience/avis que permet le cloud, les développeurs peuvent se passer des méthodes classiques de développement en cascade dans le cadre desquelles des documents de spécifications indigestes sont créés au début du projet, suivis de longues périodes de développement pendant lesquelles les utilisateurs ne sont plus consultés.

Ils peuvent, à l’inverse, garder des contacts et échanger fréquemment avec les utilisateurs tout au long du cycle du projet, en développant des petites sections de fonctions logicielles dans des cycles progressifs courts, et en recueillant les avis/retours d'expérience des utilisateurs pour savoir où leurs efforts.

Le personnel opérationnel peut profiter de la communication et de la collaboration renforcée avec les développeurs ; ainsi que des outils qui gèrent leurs opérations de manière plus précise, ce qui donne aux développeurs des avis/retours d'expérience utiles. Ils peuvent définir les indicateurs et systèmes de mesure importants, souvent à partir d'informations transmises par les parties prenantes concernées, et utiliser des outils de suivi sur le cloud pour envoyer rapidement des rapports sur les problèmes rencontrés.

Le fait de pouvoir présenter aux développeurs des preuves de problèmes relatifs au fonctionnement de l’application permettra de résoudre une grande partie du sentiment de frustration que connaît le personnel opérationnel. C'est notamment vrai lorsque les développeurs utilisent pour la production du logiciel le même profil de service défini de manière centralisée sur le cloud que le personnel opérationnel pour son déploiement.

Cette gestion a d'autres avantages. Le choix des bons indicateurs et systèmes de mesure permet aux équipes DevOps de donner des retours d'expérience/avis utiles aux parties prenantes. Le personnel peut montrer aux responsables dans quelle mesure cette nouvelle approche intégrée a permis de réduire les délais de livraison et la fréquence des mises à jour logicielles, par exemple. Ils peuvent également s'appuyer sur une amélioration de la fiabilité des logiciels basée sur une approche unifiée du développement et des opérations.

Ces avis et retours d'expérience peuvent générer une meilleure adhésion de la part de la hiérarchie, ce qui permet aux pilotes de DevOps d'obtenir plus de soutien et de se développer bien au-delà des projets tests.

L'évolution de DevOps dans le cloud illustre parfaitement la manière dont l'innovation des infrastructures peut favoriser la transformation des méthodes de travail au sein d'une organisation. Vos équipes opérationnelles et chargées du développement sont-elles prêtes à relever le défi ?

Mikhail Gloukhovtsev

Pour aller plus loin
Le cloud expliqué à votre DSI
5 tendances majeures de la gestion des services informatiques
4 bonnes raisons de penser que le Cloud Storage est devenu incontournable

 

Mikhail Gloukhovtsev

Mikhail is a Senior Cloud Solutions Architect at Orange Business (Philadelphia). He is one of the first 100 EMC certified ITaaS Cloud Experts worldwide and an expert in IT infrastructure solutions. Mikhail has worked in management teams with Fortune 500 corporations on global multimillion-dollar projects to design and implement IT service portfolio aligned with business goals. He has been a key contributor to the development of the SNIA ILM Maturity Model (http://www.snia.org) and published papers in the EMC Knowledge Sharing program (the best article on cloud computing in 2016 and the first place in 2017, https://community.emc.com/docs/DOC-57848). Mikhail holds an M.Sc. degree in IT Management and Ph.D. in Computational Chemistry. Before moving to the computational industry, he published two books on Computational Chemistry and more than a hundred research papers in scientific peer-reviewed journals (citation h-index=37; i10-index=60, http://scholar.google.com, spelling: M.N. Glukhovtsev). Mikhail likes travel, jogging, medieval history, urban architecture, and history of economics.