Le DevOps, c'est quoi exactement ?

Pour ce premier article, je vous propose un edito ou je vous partage ma vision et ma compréhension de ce qui aujourd’hui est devenu un “buzz-word”

DevOps, ça veut dire quoi ?

Le devops — ou DevOps (selon la graphie habituellement utilisée en langue anglaise) — est un mouvement en ingénierie informatique et une pratique technique visant à l’unification du développement logiciel (dev) et de l’administration des infrastructures informatiques (ops), notamment l’administration système.Wikipedia

Comme le décrit si bien Wikipedia, le DevOps c’est avant tout un mouvement, une philosophie, au même titre que d’autres mouvement bien connus comme l’Agilité avec lequel il a d’ailleurs de fort liens.

Aujourd’hui le terme est devenu “à la mode” dans le monde de l’informatique et on le retrouve dans de nombreux usages qui ne sont pas adapté (Non, non, DevOps ne sers pas à qualifier une personne qui sais écrire du code et administrer un serveur)

Et quel est le but ?

Le mouvement DevOps est la suite naturelle du mouvement Agile, ce mouvement ayant à l’origine pour objectif de permettre aux équipes métiers et aux équipes de développement de travailler ensemble à l’optimisation de la production de valeur ajoutée directement pour les utilisateurs.

Le mouvement DevOps partage ce même objectif, mais en incluant également les équipes opérationnelles (Ingénieurs réseau, Administrateurs système, Administrateurs de base de données etc…) dans la recherche de la meilleure façon de produire de la valeur ajouté pour les utlisateurs finaux.

Vous l’aurez donc compris l’objectif du mouvement Devops est d’embrasser l’ensemble des équipes IT et de rayonner bien aux-delà des “simples” équipes de développement ou d’opérationnels (On entends même aujourd’hui parler de DevSecOps, et pouquoi pas un jour de DevSecFinOps…).

Ok, mais comment ça fonctionne ?

Dans les concepts que l’on va retrouver dans la mise en place du mouvement DevOps au sein d’une organisation on retrouvera systématiquement différentes notions

Observabilité

L’un des piliers du mouvement DevOps est l’observabilité, l’observabilité comme son nom l’indique, consiste à rendre “observable” son SI et les différentes solutions déployées. Cela va bien souvent consister à exposer des “métriques” (latence, temps de réponse, nombre d’utilisateurs) dans le but de mesurer de manière objective et factuelle le niveau de service rendu à l’utlisateur. Cela ne comprends donc pas que des indicateurs techniques, mais aussi des indicateurs métier (satisfaction client, taux de rebond, engagement des utilisateurs)

Automatisation

Une autre brique importante va être la mise en place d’un maximum d’automatisation dans les process de déploiement et de maintenance des solutions. L’objectif étant d’avoir des actions répétables, traçables et qui minimisent au maximum le risque d’erreur humaine. On va alors mettre en place des processus d’intégration continue,

Gestion des incidents

Comme pour l’agilité, le mouvement DevOps prone l’amélioration continue, et cela va passer par la mise en place de pratiques de gestion d’incident décrites et appliquées. Dans les phases les plus avancées de la mise en place du mouvement DevOps on va commencer à parler de “Chaos Engineering” ou l’on va volontairement couper des services au niveau de l’infrastructure pour valider le bon fonctionnement de son service.

Et en pratique comment je mets en place tout ça ?

Dans la pratique le DevOps en tant que tel, et bien ça n’existe pas… En réalité, il n’y a pas de recette toute faite pour la mise en place du DevOps, celle-ci doit être adapté au contexte de l’entreprise ou de l’équipe qui souhaite le mettre en place.

Dans les faits, on retrouve souvent aujourd’hui la mise en place du "Site reliability engineering" (ou SRE), qui est une approche pratique de la démarche qui est proposée par Google. Elle apporte des solutions concrète a mettre en pratique (SLI/SLA/SLO, Error budget, Post-mortem). Mais le “SRE” n’est pas le “DevOps”, tout comme le SCRUM n’est pas l’agilité. Pour faire une analogie dans le monde du développement orienté objet, on peut considérer que le DevOps est une classe abstraite, et que le SRE est une implémentation de cette classe abstraite.

Bref, le DevOps n’est qu’un mouvement, une idée, mais ce n’est pas une compétence, ou un poste comme j’ai tendance à le voir trop souvent aujourd’hui. Le DevOps est une démarche que l’on peut entreprendre et si vous souhaitez l’adopter ce sera bien à vous de vous l’approprier et d’en faire votre propre implémentation.

J’espère que cet article vous aura aidé à y voir plus clair sur ce qu’est le DevOps, n’hésitez pas à me faire part de vos remarques, questions ou sugestions en utilisant les liens ci-dessous