Qu’est-ce que l’ingénierie de fiabilité ?
L’ingénierie de fiabilité de site (SRE) donne aux développeurs de logiciels les moyens de contrôler le fonctionnement quotidien continu de leurs applications en production. L’objectif est de combler le fossé entre l’équipe de développement qui doit livrer en continu, et l’équipe des opérations qui est responsable de la fiabilité de l’environnement de production. L’ingénierie de fiabilité de site transfère la responsabilité de la fiabilité de production au SRE dans l’équipe de développement.
Les ingénieurs de fiabilité de site consacrent généralement jusqu’à 50 % de leur temps aux tâches quotidiennes qui garantissent la fiabilité de l’application, et le reste de leur temps à développer des logiciels.
L’ingénieur de fiabilité de logiciel doit avoir une compétence clé : la compréhension approfondie de l’application. Cela implique une bonne connaissance du code, du fonctionnement de l’application, de sa configuration et de sa mise à l’échelle.
Voici certaines des responsabilités courantes d’un ingénieur de fiabilité de site :
- Superviser et analyser de manière proactive les performances de l’application.
- Gérer le support pour les astreintes et les cas d’urgence.
- Suivre la journalisation et les diagnostics du logiciel.
- Créer et gérer des runbooks opérationnels.
- Aider au triage des tickets de support faisant l’objet d’une escalade.
- Travailler sur les demandes de fonctionnalités, les défauts ainsi que d’autres tâches liées au développement.
- Contribuer à la feuille de route globale du produit.
- Effectuer des évaluations du site de manière dynamique, et recueillir les commentaires en cas de pannes du système.
Comparaison entre l’ingénierie de fiabilité de site et DevOps
La méthodologie DevOps permet de créer une relation de travail saine entre l’équipe des opérations et l’équipe de développement. Grâce à une distinction claire des tâches, les pratiques DevOps permettent d’obtenir un produit plus robuste et plus fiable.
Les méthodologies SRE et DevOps répondent aux besoins d’une organisation en ce qui concerne la gestion de l’environnement de production. Comme vous l’avez vu dans les modules précédents, les systèmes de rétroaction DevOps peuvent identifier les problèmes et alerter les développeurs, qui résolvent ensuite le problème. Dans la méthodologie SRE, une personne de l’équipe de développement recherche quotidiennement les problèmes de fiabilité de site, et est probablement celle qui les résout. Alors que les équipes DevOps choisissent généralement de ne pas toucher à l’environnement de production, sauf en cas d’absolue nécessité, les SRE sont fortement susceptibles d’apporter des changements.
Compétences relatives à l’ingénierie de fiabilité de site
Le type de compétences nécessaires varie en fonction de l’application, de la manière et de l’emplacement où elle est déployée ainsi que de la manière dont elle est monitorée. Par exemple, les organisations qui utilisent des technologies serverless n’ont pas besoin d’une personne ayant des connaissances approfondies de la gestion des systèmes Windows ou Linux. Toutefois, ces compétences sont essentielles aux équipes qui utilisent des serveurs pour les déploiements.
D’autres compétences clés pour être un bon SRE sont liées principalement à la supervision et au diagnostic des applications. Un SRE doit avoir l’expérience nécessaire pour utiliser les outils de gestion de performances des applications, par exemple Application Insights. Il doit également avoir une compréhension suffisante des bonnes pratiques de journalisation des applications et de gestion des exceptions.