29 Dec
29Dec

Introduction

La transformation digitale est la réponse de chaque entreprise au défi que représente l’essor des technologies numériques. Concrètement cela suppose des évolutions centrées sur l’innovation, l’adaptation et l’agilité, le cloud, le big data, la mobilité, l’automatisation … 

Le digital (le numérique) et donc l’informatique, l’IT sont désormais les principaux vecteurs de création de valeur pour une entreprise. 

Les organisations se doivent d’être en capacité à mieux collaborer et à mieux s’adapter aux changements et ce dans un cycle d’innovation continue. 

Qu’elles soient des entreprises du Net ou non. 

Toute entreprise doit être capable de détecter et répondre à un besoin, de changer rapidement et en toute confiance.

Elle doit être capable d’optimiser sa vitesse de livraison d’un produit ou service. 

Toutes les étapes de l’identification d’une opportunité à la réalisation des premiers bénéfices doivent être optimisées. 

Toute entreprise doit réduire le temps de mise à disposition (lead time) de ses produits ou services.

Il est désormais nécessaire pour toute entreprise de gagner en réactivité et donc d’optimiser la collaboration entre toutes les parties prenantes. Ce n’est qu’ainsi qu’elle peut tirer profit rapidement des innovations indispensables pour survivre, vivre et grandir dans un contexte concurrentiel.

Mais comment effectuer cette transformation digitale ?

Celle-ci ne peut réussir que si elle s’inscrit dans une démarche globale d’adaptabilité et d’agilité dont DevOps est peut-être la solution… 

En effet DevOps est une démarche de collaboration agile entre : 

  • Les études & développement 
  • La production, l’exploitation et l’infrastructure 
  • Les métiers, le business. 

Et ce de la création du produit, sa conception jusqu’à son suivi en production.

DevOps permet à une entreprise d’optimiser la rapidité de livraison d’un produit ou d’un service, en toute sérénité et en toute confiance qu’en à sa qualité. 

DevOps est donc l’extension des principes agiles à toute la chaine de valeur produit. 

DevOps permet de rendre la DSI agile.

NB : Au second semestre 2015, IDC a réalisé une étude, pour le compte de la société Automic, auprès de 201 sociétés basées en France. Elle montre que pour 52% des entreprises, l’élément déclenchant la mise en place de DevOps est la transformation numérique. De plus, 44% des entreprises interrogées avaient entamé la démarche DevOps ou projetaient de le faire.

DevOps est agile mais il ne suffit pas de l’affirmer, il faut comprendre en quoi. 

Pour comprendre en quoi DevOps est Agile, permet de rendre une DSI Agile, il faut d’abord comprendre ce qui se cache derrière l’agilité.

Qu'est ce que l'agilité

Pourquoi l'agilité ?

L’agilité est un terme venant de l’IT et lié au développement logiciel. 

L’agilité a été conçue par des développeurs pour des développeurs qui cherchaient à mettre en place une autre forme de gestion de projet, plus efficace et plus satisfaisante pour le client. 

En effet les retours d’expérience de ces informaticiens montraient la limite des approches classiques de développement (méthode de développement cycle en V, en cascade) qui ne répondaient plus aux contraintes et aux exigences des organisations en évolution rapide :

  • Un marché de plus en plus concurrentiel 
  • Un marché de plus en plus réactif 
  • Un environnement métier, technique, fonctionnel complexifié 
  • Un besoin de proximité et de visibilité sur l’avancement 
  • Importance des délais de mise en marché, couts, flexibilité, qualité …

Les limites des méthodes de développement sont mises en lumière :

  • Non adéquation au besoin client 
  • Non-respect des délais 
  • Non-respect du budget 
  • Utopie de vouloir tout figer dès le démarrage du projet : spécifications complètes et immuables, justesse d’un planning détaillé dès le lancement du projet.

Fin des années 80, début années 90 plusieurs nouvelles méthodes de développement ont ainsi vu le jour. Elles cherchaient toutes à répondre mieux aux enjeux clients en termes de mise à disposition :

  • Plus rapidement de solutions informatiques 
  • De qualité irréprochable pour l’utilisateur 
  • Dans un budget maitrisé.

Restée relativement confidentielle pendant une dizaine d’années, l’agilité sort désormais de plus en plus du cadre informatique pour s’adresser de façon générale à tous les niveaux de l’entreprise. 

En effet, désormais une entreprise souhaite devenir agile pour :

  • Conserver ses parts de marché 
  • Se renouveler en période de crise 
  • Conquérir de nouvelles opportunités 
  • Répondre à l’incertitude et l’instabilité 
  • Adapter son comportement et son offre aux besoins des clients 
  • Se mettre dans une posture d’innovation et de bien-être.


Qu'est ce que l'agilité ?

En février 2001, aux Etats Unis, 17 spécialistes du développement logiciel se sont réunis pour débattre du thème unificateur de leurs méthodes respectives, dites méthodes agiles. 

De cette réunion a émergé le Manifeste Agile considéré comme la définition canonique du développement Agile et de ses principes sous-jacents. 

Le manifeste est constitué de 4 valeurs et 12 principes fondateurs.

Il y a de la valeur dans les items situés à droite, mais la préférence se porte sur les items qui se trouvent à gauche. 

Pour réaliser leurs projets, les agilistes privilégient : 

  • Les interactions entre les individus plutôt que les outils et les processus 
  • La collaboration avec les clients plutôt que la négociation contractuelle 
  • La fourniture du produit attendu utilisable au plus tôt versus sa documentation exhaustive 
  • L’acceptation du changement des besoins et la réactivité plutôt que la planification rigide.

Ils ont pris conscience de la nécessité de privilégier ce qui fait du sens : création de la valeur métier ET valorisation des individus, au service du projet collectif. Et ils ont œuvré dans ce sens. 

Scrum : un exemple concret de mise en pratiques des valeurs agiles dans la méthodologie de gestion projet.

Scrum est la méthodologie Agile de gestion de projet la plus utilisée sur le marché, basée sur un cycle de vie projet itératif et incrémentale. 

Ici, l’agilité emprunte au rugby la notion de mêlée (ou « scrum » en anglais). Celle-ci est intéressante puisqu’en mêlée, l’essentiel est d’être lié aux autres joueurs pour pouvoir pousser dans l’axe et ne pas tuer le jeu. C’est donc dans l’interaction et la compréhension mutuelle et la collaboration que se joue la performance de l’équipe (et donc le gain du match).

En Scrum, l’équipe projet est auto-organisée, disposant de toutes les compétences pour décider seule du meilleur moyen de répondre au besoin du client. 

On y distingue uniquement trois rôles, types de participants, et tous partie prenante dans le projet : 

  • L’équipe Scrum : à savoir toutes les personnes qui réalisent le produit 
  • Le Scrum master n’est pas le chef de projet, il est responsable de l’application de la méthodologie Scrum. Coach de l’équipe, il l’aide à être auto-organisée, à garder le cap, et fait le lien avec le reste de l’entreprise. Il aide l’équipe à être hyper-motivée, à construire son autonomie, à trouver du sens, à coopérer, et lui donne la possibilité d’apprendre en produisant 
  • Le Product owner est le représentant des utilisateurs/clients. Il exprime leurs besoins et exigences. Il est directement impliqué par le produit ou service.

Un cycle de vie projet court, itératif et incrémental permet de livrer régulièrement (toutes les 1 à 4 semaines au maximum) et petit à petit le produit au client. 

Des réunions régulières (rituels) facilitent l’auto-organisation, la transparence et le partage d’informations, la confiance ainsi que les prises de feed back. 

Avant de démarrer le cycle des itérations successives de développement, une phase de cadrage, appelée aussi itération 0. Durant cette étape, le catalogue produit (ou Product backlog) est initialisé. Il contient la 1ère liste des exigences, attentes, envies du Métier.

Ce catalogue sera régulièrement enrichi, complété tout au long du projet. 

Au démarrage, de chaque itération, les besoins à développer sont sélectionnés et répertoriés dans le catalogue d’itération (ou Sprint backlog) lors de la réunion de planification. 

Pendant toute la durée de l’itération, un point d’avancement est effectué quotidiennement par l’équipe. 

En fin d’itération, ce qui a été développé est montré à tous (démonstration) et l’équipe se réunit pour améliorer son mode de fonctionnement (rétrospective). 

Et c’est reparti, pour une nouvelle itération. 

A la fin de chaque itération, une partie du produit est livré. Il fonctionne et peut être mis à disposition des utilisateurs. 

Itération après itération le produit est complété, les fonctionnalités attendues sont ajoutées les unes après les autres. Les fonctionnalités les plus importantes pour le client, les utilisateurs étant développées en priorité.

Retour d'expérience

Concrètement, les retours d’expérience montrent les avantages et les limites des méthodes de développement Agile. 

Les avantages d’une DSI disposant d’une bonne maturité Agile pour le développement de ces produits (change) sont : 

  • Une haute qualité du produit ou service 
  • La prise en compte des besoins Métier, utilisateurs et ce de manière continue 
  • Des livraisons régulières des nouvelles fonctionnalités (développements réguliers).

Cependant, il reste encore des points d’amélioration afin d’étendre les principes agiles jusqu’aux équipes d’exploitation (Run).

  • Les mises en production (donc mises à disposition du produit aux utilisateurs) dépendent de plans de déploiement, de releases planifiées tous les mois, 3 mois, 6 mois … 
  • Une fois en production, le produit n’est que peu étudié afin de s’assurer qu’il correspond réellement aux attentes des utilisateurs finaux. On note une faible réactivité face aux retours.

Voilà tout le challenge d’une entreprise, d’une DSI souhaitant se lancer dans DevOps

Il s’agira pour elle d’étendre les principes agiles à toute la chaine de création d’un produit ou service IT.

A savoir : 

  • Réduire le délai de mise en production, de mise en ligne, de mise sur le marché du produit 
  • Mieux gérer les mises en production et la stabilité du SI 
  • Améliorer la qualité de service pour les utilisateurs finaux.


Qu'est ce que DevOps

L'origine du nom

DevOps est la concaténation des 3 premières lettres du mot anglais « development » et de l’abréviation usuelle (ops) du mot anglais « operations » (exploitation). Le mot a été inventé par Patrick Debois (consultant Belge) en 2009. 

Son objectif est de diminuer la durée comprise entre la demande de création/de modification d’un produit ou service IT et sa mise en production / sa mise en ligne. 

Cette concaténation marque l’impérieuse obligation de collaborer étroitement entre les dev / les études et les opérations / l’exploitation.

DevOps = « Un ensemble de pratiques multidisciplinaires consacrées à l’étude de la construction, de la maintenance évolutive et de l’exploitation des systèmes informatiques à grande échelle qui doivent pouvoir être modifiés rapidement, sans défaillir » (Jez Humble)

Les fondamentaux de la démarche

La collaboration est une nécessité mais collaborer étroitement en partageant largement jusque dans la responsabilité de l’échec ou du succès est la philosophie DevOps. Un véritable choc culturel !

En effet, les préoccupations des études et de la production sont distinctes et valables. 

Les dev recherchent plus de réactivité et d’innovation pour répondre à la pression du Métier et du marché. Il faut aller vite, ajouter de nouvelles fonctionnalités, déployer rapidement. 

Les ops, à l’inverse, veulent de la stabilité car il est souvent difficile d’anticiper les impacts d’une modification de code, d’architecture ou d’infrastructure. Ils veulent aussi de la standardisation, des règles définies (configuration de machines, versions logicielles, sécurité réseau, fichiers de logs…) et uniformément respectées pour assurer la qualité de service.

Mais les dev et les ops ont un objectif commun : rendre le service attendu par le client, faire en sorte que le produit réponde aux attentes des utilisateurs. 

L’idée de DevOps est donc de supprimer le mur qui sépare les équipes de développement des équipes de production afin de faire en sorte qu’une mise en production d’un nouveau produit ou service soit un « non évènement », que les évolutions et mises à jour s’effectuent de manière continue sans aucun impact (arrêt de service) pour l’utilisateur. 

Alors sur quoi s’appuie cette démarche ?


La démarche DevOps est basée sur 4 fondements :

1/ Réduire les cycles de livraison : 

  • Effectuer des mises en production (mises en service) fréquentes, déployer sans arrêt de service 
  • Par l’industrialisation de la chaine complète de production logicielle, et la livraison d’évolutions de petites tailles.

2/ Optimiser les ressources : 

  • Par la standardisation, l’automatisation du déclenchement et de l’exécution du plus grand nombre de tâches (configuration, développement, déploiement…).

3/Améliorer la qualité : 

  • Le produit, le service rendu, correspond aux attentes de l’utilisateur et il est disponible 
  • Par des tests tout le temps et l’arrêt du processus en cas de défaut, par la refonte du logiciel sans altérer le service 
  • Par l’instrumentation et la supervision.

4/Mettre l’humain au centre du dispositif : 

  • Par la mise en place d’une nouvelle culture fondée sur la collaboration et une recherche permanente de l’amélioration continue par l’apprentissage.

Le framework DevOps

Concrètement se lancer dans la mise en place de DevOps consiste à mettre en place 3 piliers : 

  • Une gouvernance digitale 
  • Une architecture & infrastructure informatiques 
  • Un cycle de vie produit / service de livraison en continue de valeur au client final. 

Le tout cimenté par une culture humaine de collaboration, de partage et de confiance mutuelle.

Une gouvernance digitale : 

  • Orientée adaptation permanente et collaboration

Connectant les décisions de financement et d’exécution de projets informatiques au marché et à la valeur apportée au client final.

Une architecture & infrastructure informatiques : 

  • Une architecture modulaire et orientée services applicatifs.

Une infrastructure permettant une mise à disposition rapide d’environnements.

Un cycle de vie du produit ou du service s’appuyant sur un processus de livraison en continue de valeur pour le client, les utilisateurs finaux. 

Cette surveillance permettant d’améliorer et d’apporter de nouvelles évolutions au produit et ainsi entamer un nouveau tour de cycle du produit.

Ce cycle de vie est constitué de 3 étapes

1/ Le développement de nouvelles fonctionnalités (création d’un nouveau produit ou modification de celui-ci) via : 

  • Développement Agile : méthode itérative et incrémentale, participative et orientée besoin client/utilisateur final 
  • Intégration continue des nouvelles fonctionnalités 
  • Automatisation des tests en vérifiant la bonne qualité.

2/ La mise en service, le déploiement en production via : 

  • Déploiement continu pour mise à disposition régulière des nouvelles fonctionnalités aux clients et utilisateurs finaux 
  • Automatisation du déploiement 
  • Déploiement sans arrêt de service pour les utilisateurs.

3/ Une surveillance de fonctionnement et suivi des affaires : 

  • Information en continue sur le fonctionnement du produit en production 
  • Vérification du bon fonctionnement et détection des défaillances 
  • Le Business Activity Monitoring (BAM) : supervision des processus et activités métiers.

DevOps est donc une approche de travail en collaboration et confiance avec mise en place du juste nécessaire d’automatisation et de supervision afin de pérenniser ce mode de fonctionnement. 

L’objectif est de disposer d’un flux continu permettant de délivrer régulièrement, petit à petit, de nouvelles fonctionnalités au produit/service afin qu’il apporte de plus en plus de valeur à l‘utilisateur final.

Ce processus de livraison continue s’organise autour de différentes phases qui s’inscrivent dans un cycle agile : 

  • La définition du besoin 
  • La conception, l’implémentation et les tests, l’intégration 
  • Le déploiement et le recueil d’informations sur le fonctionnement de l’application pour en tirer un enseignement précieux dans la définition de nouvelles évolutions à lui apporter. 

Conclusion

DevOps est donc une démarche de collaboration agile entre 

  • Les études, les dev, 
  • La production, les infras (ops) et 
  • Les métiers (business)

du recueil du besoin au suivi en production de la solution et ce dans un cycle itératif et incrémental d’amélioration continue qui se poursuit tant que le produit existe.

Mais son adoption demande de repenser l’organisation complète de l’entreprise. 

En effet la mise en œuvre de DevOps signifie clairement mettre en œuvre les pratiques Agiles et donc améliorer la collaboration et la confiance entre l’ensemble des équipes parties prenantes du produit / service IT. Mais il faut noter que l’ensemble de l’entreprise, ou presque, fait partie de ces parties prenantes. 

Se lancer dans une démarche DevOps signifie rendre Agile une entreprise, et ce au travers de pratiques et d’une organisation adaptée pour aller vers plus de collaboration et de réactivité (casser les silos de l’organisation). 

Un véritable changement de culture est nécessaire afin de repenser l’organisation complète de l’entreprise. 

Ce changement devra se faire en douceur, un pas après l’autre.

Bibliographie pour aller plus loin


Voici les liens vers la série d'articles publiée fin 2016

Article publié par le magazine "Alliancy-Numérique & business" le 11/11/16 https://www.alliancy.fr/expertise/entreprises/2016/11/11/devops-la-solution-pour-rendre-votre-dsi-agile-prerequis-necessaire-a-votre-transformation-digitale 

Et repris par le magazine "Programmez!", le 22/11/16 

http://www.programmez.com/avis-experts/devops-la-solution-pour-rendre-votre-dsi-agile-prerequis-necessaire-votre-transformation-digitale-25142 

Voir aussi la version longue sur le blog SQLI : 

https://www.technologies-ebusiness.com/enjeux-et-tendances/agilite-devops-combinaison-gagnante-partie-1 

https://www.technologies-ebusiness.com/enjeux-et-tendances/agilite-devops-combinaison-gagnante-partie-2


Commentaires
* L'e-mail ne sera pas publié sur le site web.