DevOps

Introduction

D’ingénieur à développeur, la ligne est mince. C’est du moins une vérité que DevOps tente d’instaurer par une automatisation intelligente et raisonnée des processus entre les équipes de développement et les ingénieurs systèmes. 

Un peu d’histoire

A fin des années 2000, c’est tout un mouvement qui se met en branle alors que le constat est clair : les incompréhensions entre les équipes et les mauvais résultats résultent d’un manque de coordination. Face au système traditionnel, de nombreux experts des deux bords comme Patrick Dubois, Gene Kim et John Willis ont pris sur eux de se réunir et d’aviser à la construction d’un nouvel écosystème de travail. 

DevOps image 1

De culture d’entreprise à maillon essentiel d’une réussite technologique

Comme son nom l’indique, DevOps n’est autre qu’un ensemble homogène de domaines pourtant bien spécifiques : le développement logiciel et les opérations IT. Historiquement distantes et séparées par de nombreuses contraintes, ces équipes – par la mise en place d’une culture collaborative – s’associent désormais dans le but d’engranger confiance, efficacité, maîtrise et rapidité à la planification et à la réalisation des tâches. 

Dans l’industrie, ce terme définit le plus régulièrement le rôle d’un modérateur – à l’image d’un pondérateur Scrum – présent afin d’aider les différentes parties prenantes à se focaliser sur l’ALM (Application Lifecycle Management).  Avant même l’arrivée de cet orchestrateur, ce sont les apparitions successives des réseaux logiciels (type SDN) et du Cloud Computing qui ont permis le rapprochement de ces entités.  

Une évolution bipartite aux avantages multiples

Dans la lignée des méthodologies dites ‘Agiles’, les avantages apportés par la collaboration des différentes équipes sont non négligeables. D’après GitHub, les restaurations apportées par les équipes de développement qui suivent le pur principe DevOps sont en moyenne 96 fois plus rapides après une interruption qu’une société qui n’en suit pas les préceptes.  

Ce ne sont donc que de simples préceptes philosophiques, à savoir travail d’équipe et compréhension, qui ont permis d’ouvrir le champ des possibles. En ce sens, la création d’une culture de la responsabilité partagée a permis une ouverture d’esprit au spectre bien plus large qu’au seul sein de ces deux teams.  

« Les équipes qui adoptent DevOps déploient 30 fois plus souvent, déplorent 60 fois moins de défaillances et constatent des délais de récupération 160 fois plus rapides. »

— Puppet Labs

Rapport « State of DevOps », 2016

Lorsque vous interrogez les équipes qui fonctionnent aux principes de DevOps, le principal atout de ces techniques reste la rapidité d’exécution. « Work smart, not hard » pourrait devenir l’un des leitmotivs des entreprises ayant recours à cette technique de travail. L’automatisation s’est ainsi transformée en maître mot de cette réussite. Liée aux processus de standardisation et aux nouveaux outils, cette automatisation a permis une croissance exponentielle de la productivité. 

Tandis qu’en temps normal, les tâches non planifiées ont une incidence très forte sur la productivité, le processus de vérification et de priorisation de ces dernières développe un sentiment de confiance qui permet à tout à chacun de se concentrer sur les tâches primordiales tout en gardant un œil averti sur les missions non planifiées. On dit merci qui ? Merci la rétrospection proactive

En somme, les avantages DevOps se répertorient comme suit : 

  • Rapidité 
  • Livraison rapide 
  • Fiabilité 
  • Evolutivité 
  • Collaboration améliorée 

Afin d’atteindre une rentabilité et une efficience optimale, il est nécessaire de respecter la charte des bonnes pratiques de DevOps. Ainsi, en voici une liste non-exhaustive : 

  • Intégration continue 
  • Livraison continue 
  • Microservices 
  • Infrastructure en tant que code 
  • Surveillance et journalisation 
  • Communication et collaboration 

Sans coordination… pas de DevOps

Si l’efficience des méthodes de travail conjointes et les résultats avérés d’une telle collaboration sont les principaux défenseurs de DevOps, il n’en reste pas moins que certaines problématiques se créent par cette même association. 

Du fait du rapprochement continu des deux équipes, dès lors qu’un projet se fait séparément, l’équipe développement se retrouve hors-jeu lors de l’analyse des obstacles opérationnels.  

DevOps et Software Craftsmanship sont-ils compatibles ? ​

En bien des points, le SCS et DevOps se rapprochent. Si tous deux se reconnaissant à l’aspect qualité de travail et promesse d’un travail ‘artisanal’, ces deux modèles se rejoignent surtout dans une recherche constante de perfectionnement et de concomitance entre les différentes parties prenantes des projets : développeurs, ingénieurs IT, product owner.+ Si l’un appartient plus à la famille des philosophies (SCS), l’autre le rejoint à travers le fait de choisir UNIQUEMENT les outils dont il a besoin dans une recherche d’aboutissement rapide et fonctionnel du travail effectué.