Menu

Qu'est-ce que l'ingénierie de la fiabilité des sites (SRE) ?

loupe
Rubriques

L'ingénierie de la fiabilité des sites (SRE) est une discipline qui permet de créer des systèmes logiciels ultra-évolutifs et fiables en appliquant des pratiques d'ingénierie logicielle aux problèmes d'infrastructure et d'exploitation. Les ingénieurs experts en fiabilité des sites peuvent développer des solutions qui permettent de trouver le juste équilibre entre le développement et les opérations. Google a été pionnier dans ce domaine. Pour en savoir plus, consultez leur eBook Site Reliability Engineering.

Ingénierie de fiabilité des sites et DevOps

Les ingénieurs de fiabilité des sites (SRE) travaillent à la fois pour le développement et les opérations, mais pas toujours dans le cadre d'un modèle DevOps. Le concept de SRE, qui existe depuis 2003, est antérieur à l'apparition du DevOps. Le terme est devenu populaire grâce à Ben Treynor, fondateur de l'équipe de fiabilité des sites de Google. Pour reprendre ses termes, l'ingénierie de fiabilité des sites correspond à « ce qu'il se passe lorsqu'un ingénieur logiciel se charge de ce que l'on appelait autrefois les Opérations ».

Les deux disciplines, le DevOps et la SRE, ont pour objectif d'améliorer le cycle de lancement de nouveaux produits en fournissant aux équipes de développement et d'exploitation la visibilité nécessaire sur ces deux étapes tout au long du cycle de vie des applications. Elles ont également recours à l'automatisation et à la surveillance, ce qui réduit le délai entre le moment où un développeur effectue un changement et le moment où celui-ci est déployé en production. L'objectif de ces deux méthodes consiste à obtenir ce résultat sans compromettre la qualité du code ou du produit.

Les questions posées par la SRE et le DevOps diffèrent, mais elles sont aussi importantes l'une que l'autre :

Le DevOps s'interroge sur l'objectif à atteindre.

La SRE sur comment atteindre cet objectif.

Tâches quotidiennes des ingénieurs de fiabilité des sites

Les ingénieurs de fiabilité des sites mesurent des indicateurs de niveau de service (SLI) et les objectifs de niveau de service (SLO), tandis que les équipes DevOps mesurent le taux d'échec et de réussite au fil du temps. Les ingénieurs SRE partagent certaines responsabilités clés des ingénieurs DevOps visant à améliorer l'infrastructure :

Réduction des silos organisationnels

Les ingénieurs SRE ne remettent pas directement en cause le nombre de silos, mais ils encouragent les autres acteurs de l'entreprise à en discuter. Pour engager ce débat, les outils et les techniques de l'ensemble de l'entreprise sont sollicités afin de répartir les tâches entre les différents collaborateurs.

Acceptation de l'échec comme une étape nécessaire

Les ingénieurs SRE doivent limiter le nombre d'erreurs ou de défaillances. Pour cela, ils utilisent une formule composée de scores SLI et SLO. Les SLI calculent le nombre de défaillances par demande, sur la base de la latence d'une demande, du débit des demandes par seconde, ou des défaillances par demande. Les SLO sont définis à partir du seuil et du pourcentage et reflètent le taux de réussite des SLI sur une certaine période.

Mise en œuvre d'un changement progressif

Les ingénieurs SRE travaillent pour la mise en place de nouveaux processus, mais d'une manière lente et méthodique. Or, les entreprises ont besoin d'évoluer rapidement et demandent des mises à jour fréquentes et en continu des produits. Les équipes DevOps et SRE doivent donc fournir une réponse rapide, à un rythme soutenu, mais contrôlé.

Valorisation des outils et de l'automatisation

L'objectif est d'automatiser et de supprimer les tâches manuelles afin d'apporter de la valeur aux développeurs et aux équipes chargées des opérations.

Mise en place d'un système de mesure

Les ingénieurs SRE doivent contrôler le déroulement des opérations en configurant des alertes pour différents scénarios, en demandant à des pairs de réviser le code ou en utilisant des tests unitaires.

Ingénierie de fiabilité des sites (SRE)

L'ingénierie de fiabilité des sites (SRE) et le DevOps sont deux disciplines appréciées par les entreprises et dont les objectifs clés se recoupent : définition d'un système permettant de mesurer les taux de réussite ou d'échec et l'obtention d'une fiabilité continue pour chaque application. La fiabilité ne se limite pas à l'infrastructure, elle est importante à chaque étape : de la qualité des applications à la performance, en passant par la sécurité. Les ingénieurs SRE se soucient de chaque processus, du code source au déploiement. Ils comblent l'écart entre le développement et les opérations.

Pour aller plus loin