Comprendre le DevOps en 8 minutes et en emojis!

 

Qu’est ce que le DevOps?

Pour mieux comprendre le DevOps, voyons d’abord un fonctionnement traditionnelle d’entreprise sans DevOps :

  • Les Développeurs (abrégé Dev) collectent les exigences du métier pour ensuite en développer le code.  
  • Ensuite cette même équipe de Dev teste le nouveau code de l’application puis la livre à l’équipe Production et Exploitation (abrégé Ops pour Operationnals).
  • Les Ops se charge de la mettre en production, puis de gérer son exploitation.

Cependant ce modèle pose des problèmes car les 2 équipes Dev et Ops donc ont objectifs complétement différents :

  • D’un côté, l’équipe Dev doit faire évoluer les applications le plus rapidement possible. C’est la recherche d’un time to market réduit, le time to market étant le délai entre l’idée initiale et sa concrétisation en production,
  • De l’autre côté, l’objectif principal d’une équipe Ops est de garantir la stabilité du système. Cela passe par un contrôle sévère des changements apportés au Système d’information. Une panne de la production peut coûter cher à l’entreprise (business perdu, image écornée, contraintes légales non respectées…).

L’antagonisme de ces objectifs cree des conflits d’intérêts entre ces 2 équipes :

  • Les Devs blament les Ops pour les retards et problèmes de livraison.
  • Les Ops tiennent l’équipe des Dev pour responsable des incidents en production liés à une mauvaise qualité du code

Bref c’est pas joli à voir…

L’approche DevOps cherche justement donc à réconcilier ces 2 mondes (d’où la contraction du terme DevOps). Le but est d’aligner leurs objectifs court terme différents  autour d’un objectif commun long terme : celui de la création de valeur pour l’entreprise.

Et cette création de valeur passe par 3 canaux:

  • Un time to market plus rapide
  • Des produits de qualité
  • Des équipes plus efficaces

 

Les grands principes du DevOps 

Cette approche DevOps repose sur 5 grands principes :

  • La culture de collaboration
  • L’automatisation
  • La création de valeur comme objectifs
  • La mise en place de métriques à tous les niveaux
  • Le partage comme valeur forte

Culture de collaboration :

  • Créer une culture de collaboration est très importante car elle permet de donner à toutes les équipes une vision globale du système d’information.
  • Le but ultime est de fluidifier et faciliter l’intercommunication entre Dev et Ops.

La recherche systématique de valeur ajoutée pour client :

  • Elle se décline à travers la mise en place d’un cycle d’amélioration continue, et donc la suppression des taches sans valeur ajoutée.
  • Mais aussi en les incitant les équipes à se concentrer sur la création de valeur business et la satisfaction client.

La mise en place de métriques :

  • Les métriques sont nécessaire car on ne peut parler d’amélioration que si l’on est capable de mesurer l’état initial, l’état final et l’évolution entre les 2 états.
  • Ce sont des métriques à tout les niveaux :  métriques, métriques d’équipe et la mesure de la satisfaction client)

Principe de partage au sens large :

  • Il s’agit de partager un objectif commun, mais aussi les problèmes, les connaissances et les REX.
  • Cela permet de faire émerger un sentiment d’entraite mais aussi des idées nouvelles.

 

Automatisation des processus :

Il se décline sur plusieurs niveaux :

  • Provisionning d’environnements automatisé pour les devs
  • Tests automatisés pour valider la qualité d’un nouveau code
  • Déploiements automatisés une fois que ce code est validé comme conforme à la qualité attendue

Tout ceci en vue de tendre vers le déploiement continu :

  • Le déploiement continu est une approche qui considère qu’une application doit être construite de telle manière à ce  qu’elle puisse être envoyée en production à tout moment (déploiement en production après validation par les tests)
  • L’idée est d’accélérer les cycles de mise en production pour une accélération du time to market.

 

 

 

Et en pratique?

Dans une entreprise Devops, on a alors la situation suivante :

  • Les Devs collectent les besoins métiers et développent un nouveau code de l’application pour répondre à ces besoins.
  • L’application est automatiquement compilés et testés à différents niveau. Si le code atteint le niveau d’exigences demandées en termes de qualité, l’évolution est livrés en production automatiquement et rapidement
  • En cas d’incident en prod, la nouvelle évolution peut être désactivée rapidement pour retourner sous l’ancienne version tout en remontant l’incident à corriger à l’équipe de dev
  • Le travail des Ops est quant à lui facilité  car les dev ont compris les contraintes de l’equipe de production et ont intégré ces problématiques d’exploitation et de production dans son code. Par exemple, le dev a intégré dans la conception de son application des métriques d’exploitation permettant de surveiller l’état de santé de l’application.
  • Les équipes opérationnelles comprennent ainsi mieux les besoins des développeurs pour permettre une meilleure optimisation des ressources de la production, un meilleur monitoring et une meilleure remontée d’erreur.

 

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *