L'essentiel du SRE : à quoi s'attendre en ingénierie de la fiabilité des sites

blog-SRE.jpg

Au cours des vingt dernières années, la plupart des grandes entreprises ont adopté le cloud et les systèmes distribués pour développer leurs applications. Conséquence inattendue : les opérations informatiques conventionnelles (ITOps) ont souvent du mal à gérer la complexité accrue des charges de travail et des technologies du cloud. 

À mesure que les systèmes distribués évoluent, la séparation des opérations et du développement conduit finalement à la stagnation. Les développeurs peuvent vouloir lancer de nouvelles applications ou des mises à jour, tandis que l'équipe d'exploitation, déjà débordée par la surveillance de l'infrastructure existante, peut faire barrage pour éviter tout risque supplémentaire.

L'ingénierie de la fiabilité des sites (SRE) est une discipline qui offre une approche plus nuancée en combinant les principes de l'ingénierie logicielle avec des pratiques opérationnelles qui garantissent la fiabilité des services et des performances optimales à l'échelle. La fonction est assurée par les ingénieurs en fiabilité des sites (SRE), chargés de simplifier et d'automatiser les tâches que l'équipe d'exploitation effectuerait sinon manuellement. La réduction du temps consacré à des tâches fastidieuses et répétitives ouvre ainsi la voie à l'innovation et à la croissance de l'entreprise.

L'ingénierie de la fiabilité des sites est devenue une composante essentielle de l'entreprise moderne. Parmi ses avantages, citons le passage de la résolution réactive des problèmes à la gestion prévisionnelle des performances, la conception proactive des systèmes, l'amélioration de la scalabilité, la réduction des interruptions de service et les nouvelles opportunités d'amélioration. 

Vous souhaitez en savoir plus sur le rôle d'ingénieur SRE et le monde de l'ingénierie de la fiabilité des sites ? Commençons par les bases.

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

L'ingénierie de la fiabilité des sites est la pratique consistant à intégrer des outils et des principes d'ingénierie logicielle dans les opérations informatiques. Les SRE créent et assurent la maintenance d'une infrastructure et des services fiables, résilients, efficaces et évolutifs. Les SRE améliorent la fiabilité des systèmes évolutifs. Ils conçoivent des systèmes résilients dès le départ et utilisent des logiciels et l'automatisation pour gérer une infrastructure en constante expansion, ce qui est une pratique beaucoup plus durable que la gestion manuelle.

Les ingénieurs en fiabilité des sites sont les personnes responsables de la gestion et de l'automatisation des opérations informatiques. Grâce à leur expertise en ingénierie logicielle, ils veillent à ce que les systèmes restent résilients et disponibles, en remédiant aux problèmes de façon automatique. Ce rôle supervise la livraison et le déploiement de nouvelles applications, prévenant ainsi les pannes et les interruptions potentielles.

Histoire de l'ingénierie de la fiabilité des sites

Benjamin Treynor Sloss, vice-président de Google Engineering, a inventé le terme "ingénierie de la fiabilité des sites" en 2003, qu'il définit ainsi : "La SRE, c'est ce qui se passe lorsque vous demandez à un ingénieur logiciel de concevoir une équipe d'exploitation." Et c'est ce qu'il a fait.1

En tant que nouvel employé chez Google, il a été chargé de trouver une solution d'ingénierie pour gérer des opérations en pleine expansion et une infrastructure massive et distribuée. Étant donné la dynamique de croissance de l'infrastructure de l'entreprise, il était impossible d'embaucher le nombre d'ingénieurs nécessaires pour gérer manuellement les nouveaux services tout en innovant au même rythme. L'équipe de Treynor s'est donc efforcée d'établir un équilibre entre l'innovation et la fiabilité du système, en encourageant une culture d'apprentissage et d'amélioration continus.  

Très vite, l'équipe croissante d'ingénieurs SRE de Google s'est concentrée sur l'intégration de nouvelles fonctionnalités dans l'environnement de production tout en assurant sa stabilité et sa fiabilité. En quelques années, de plus en plus d'entreprises ont été confrontées au même problème que Google. Elles devaient gérer des infrastructures massives et distribuées tout en maintenant la disponibilité et la fiabilité des services. Très vite, la pratique de l'ingénierie de la fiabilité des sites s'est étendue au-delà de Google, devenant un élément essentiel des opérations informatiques modernes.

Le rôle des ingénieurs SRE dans les infrastructures IT modernes

Dans le monde numérique d'aujourd'hui, les entreprises de toutes tailles s'appuient sur des systèmes hautement disponibles, évolutifs et résilients. Une panne, qu'il s'agisse d'un site Web ou d'une application mobile, peut entraîner des pertes financières, une mauvaise expérience client et des inefficacités opérationnelles. C'est pourquoi les ingénieurs SRE jouent un rôle essentiel dans toute entreprise. 

Les ingénieurs SRE vous permettent de suivre plus facilement la concurrence. Ils peuvent résoudre les problèmes de disponibilité en quelques minutes (au lieu de plusieurs jours) et garantir des temps de chargement de page rapides, quel que soit le nombre d'utilisateurs. 

Selon la taille de l'entreprise, les ingénieurs SRE effectuent les mêmes tâches, mais à une échelle différente. Ils automatisent la fiabilité, optimisent les performances et préviennent les défaillances du système grâce à une surveillance proactive et à la gestion des incidents. En favorisant la collaboration entre les équipes de développement et d'exploitation, les ingénieurs SRE créent des systèmes fiables et efficaces.

Principes de base de l'ingénierie de la fiabilité des sites

Fondamentalement, l'ingénierie de la fiabilité des sites consiste à traiter les problèmes opérationnels en production en adoptant une approche de développement de logiciels. Les autres principes fondamentaux comprennent l'acceptation du risque, l'utilisation de l'automatisation et la mise en place d'objectifs de niveau de service (SLO) et d'indicateurs de niveau de service (SLI).

Accepter le risque

Un ingénieur SRE sait qu'aucun système ne peut fonctionner parfaitement. Les échecs et les pannes font partie du processus d'innovation. Au lieu d'essayer d'éviter les échecs, les ingénieurs SRE se concentrent sur la compréhension d'un niveau de risque acceptable.

Accepter le risque revient à déterminer le point de basculement entre l’amélioration de la fiabilité, le déploiement d’un nouveau code et la gestion de l’impact potentiel sur les utilisateurs. Le risque acceptable représente les ressources, le temps et l'énergie nécessaires pour améliorer la fiabilité d'un service. Le reste constitue l'excédent. Mais quel niveau de risque est acceptable ? Et à quel moment du processus l'expérience utilisateur commencera-t-elle à se dégrader ? 

Ce principe de base de la SRE repose sur quatre facteurs :

  1. Un niveau de fiabilité acceptable pour les utilisateurs (déterminé par la configuration des SLO et des SLI)

  2. Coût des améliorations de la fiabilité (y compris l'automatisation et les outils)

  3. Risque de ne pas améliorer 

  4. Coût par rapport au risque (déterminé par les budgets d'erreurs)

L'acceptation du risque relève souvent du contexte culturel. Les ingénieurs SRE travaillent dans une culture non punitive. Il s'agit de tirer les leçons des échecs et de mettre en œuvre des mesures préventives pour améliorer en permanence la fiabilité des systèmes et les performances des applications.

Budgets d'erreurs
Un budget d'erreurs est une mesure claire qui permet de comprendre et de gérer les risques. Il s'agit du temps d'indisponibilité (ou du nombre d'erreurs) qu'un service peut subir dans un certain laps de temps. 

Un niveau admissible de non-fiabilité du système (également appelé budget d'erreurs) permet d'équilibrer l'innovation et la fiabilité. Les ingénieurs sont encouragés à prendre des risques, comme accélérer les déploiements et lancer de nouvelles fonctionnalités, car ils disposent d'un budget d'erreurs. Une fois ce seuil atteint, ils stabilisent le système, améliorant ainsi la fiabilité.

Les équipes SRE calculent un budget d'erreurs en déterminant le niveau acceptable d'erreurs (ou d'indisponibilité) en fonction du SLO. En d'autres termes, il s'agit de la marge d'erreur autorisée par un SLO.

Définition d'objectifs de niveau de service (SLO) et d'indicateurs de niveau de service (SLI)

Les objectifs de niveau de service, ou SLO, sont les valeurs cibles de performance sur une certaine période. Par conception, les équipes d'ingénierie et les parties prenantes de l'entreprise doivent comprendre ces objectifs pour définir des attentes claires qui guident la prise de décision. 

Les indicateurs de niveau de service, ou SLI, mesurent la performance du service. En général, les SLI représentent les priorités des utilisateurs telles que la latence du service, la disponibilité, le débit, les taux d'erreur, etc. 

Ni les SLO ni les SLI ne sont statiques. Ils évoluent au fil du temps et nécessitent une révision et une amélioration régulières.

Développement de l'automatisation et des outils

Enfin, l'automatisation. Les ingénieurs SRE s'efforcent de remplacer les tâches manuelles et répétitives par l'automatisation. Réduire le labeur signifie améliorer la fiabilité du système et innover plus rapidement et plus efficacement.

Certaines équipes SRE consacrent jusqu'à la moitié de leur temps à développer des outils d'automatisation pour le déploiement, la réponse aux incidents et les tests. Au fil du temps, les capacités d'automatisation avancées permettent de réduire le coût du scaling tout en garantissant la fiabilité du service et des performances optimales.

Bonnes pratiques de l'ingénierie de la fiabilité des sites

Lorsqu'elles gèrent des services, les équipes SRE se concentrent sur des activités quotidiennes essentielles telles que le suivi et l'observabilité, la gestion des incidents, la planification de la capacité et la gestion du changement.

Suivi et observabilité

Le suivi et l'observabilité du système sont essentiels pour les ingénieurs SRE. Ces pratiques offrent une véritable visibilité sur le fonctionnement des services, leur efficacité, où se situent les problèmes, etc. 

Le suivi aide les ingénieurs chargés de la fiabilité des sites à détecter et à résoudre rapidement les problèmes. L'
observabilité fournit des informations sur les performances du système en temps réel et des données historiques pour répondre aux inconnues. Les traces, les logs et les indicateurs sont les principaux signaux d'observabilité.

Les 4 signaux clés en matière d'ingénierie de la fiabilité des sites

Les quatre signaux clés de l'ingénierie de la fiabilité des sites sont la latence, le trafic, les erreurs et la saturation. Ces indicateurs sont essentiels pour évaluer la fiabilité des applications, c'est-à-dire l'état et les performances d'un service dans un système distribué. 

  • La latence est le temps qu'il faut à un système pour répondre à une requête (réussie ou en erreur). Une latence élevée signale des problèmes de performance qui nécessitent une attention immédiate de la part des ingénieurs SRE.

  • Le trafic mesure la demande sur le système. Selon le système, il peut s'agir du nombre de transactions par seconde ou de requêtes HTTP par seconde. Les ingénieurs SRE observent le trafic pour déterminer si l'expérience de l'utilisateur se dégrade ou non.

  • Les erreurs représentent le taux d'échec des requêtes. L'échec peut être explicite (erreur HTTP 500), implicite (erreur HTTP 200 mais avec des erreurs de contenu) ou par règle (par exemple, les requêtes qui prennent plus d'une seconde à échouer). Selon le système, l'ingénieur SRE peut donner la priorité à un type d'erreur par rapport aux autres et traiter les problèmes récurrents.

  • La saturation indique la capacité globale du système ou le degré de "saturation" du service. Elle peut être mesurée de différentes manières, en fonction des ressources les plus limitées ou de la charge restante qu'un système peut supporter.

Les quatre signaux clés aident les ingénieurs SRE à se concentrer sur la planification de la capacité, l'amélioration de la fiabilité du système au fil du temps, la réponse aux incidents et leur gestion, et la recherche de la cause profonde d'un problème


Néanmoins, les quatre signaux clés ne suffisent pas à rendre les systèmes distribués complexes totalement fiables. C'est là que le traçage distribué entre en jeu en replaçant tous les chiffres de performance dans leur contexte.

Gestion des incidents

Comme mentionné précédemment, en matière de SRE, les incidents et les pannes sont inévitables. Cependant, chaque incident exige une réponse. Un plan de réponse aux incidents efficace comprend des procédures de tri, des protocoles de communication clairs et des voies de remontées d'incidents.

Les analyses rétrospectives sont peut-être tout aussi importantes. Pratique constructive, l'analyse rétrospective est une expérience d'apprentissage plutôt qu'une méthode d'inspection. Les ingénieurs SRE doivent suivre chaque incident, découvrir sa cause profonde et travailler avec l'équipe de développeurs pour corriger le code ou créer des outils (si possible) afin d'empêcher qu'il ne se reproduise. 

Découvrez en détail la gestion des incidents.

Planification de la capacité

La planification de la capacité garantit la fiabilité des services aujourd'hui et demain. Elle protège aussi bien du sur-provisionnement que du sous-provisionnement. 

Les équipes SRE prévoient la demande en analysant les schémas d'utilisation historiques et en prédisant les besoins futurs en ressources. Elles recherchent les inefficacités, optimisent et réaffectent les ressources sur la base d'informations en temps réel, et mettent régulièrement à jour ces plans en fonction de l'évolution des données. 

Grâce à la planification de la capacité, les ingénieurs en fiabilité des sites s'assurent que les systèmes peuvent faire face à la croissance et aux pics de demande.

Gestion du changement

Les changements entraînent souvent des pannes, comme l'attestent même les opérations informatiques conventionnelles. Cependant, au lieu de craindre les pannes, et donc le changement, les ingénieurs SRE adoptent le changement en s'appuyant sur trois bonnes pratiques :

  • Des déploiements progressifs et contrôlés minimisent l'impact des problèmes potentiels et permettent une détection précoce.

  • Le suivi garantit que les ingénieurs SRE peuvent détecter les problèmes avec précision en temps réel.

  • Un plan de rollback garantit une procédure sûre et rapide pour annuler les modifications en cas de problème.  

Ces trois pratiques doivent être automatisées dans la mesure du possible.

Solution d'observabilité full-stack pour les SRE avec Elasticsearch

Elastic Observability fournit une solution unifiée pour la collecte, le suivi et l'analyse des indicateurs d'observabilité sur l'ensemble de votre pile technologique. Avec Elastic Observability, vous pouvez collecter, stocker et visualiser des indicateurs d'observabilité depuis n'importe quelle source et accélérer la résolution des problèmes à l'aide de Search AI Platform d'Elastic. 


Combinez la recherche conversationnelle et l'IA agentique avec Elastic Observability pour une expérience de chat contextuelle qui s'étend à vos données et runbooks propriétaires.
Elastic AI Assistant peut aider les ingénieurs SRE à interpréter les messages de log et les erreurs, à optimiser le code, à établir des rapports et même à identifier et exécuter un runbook. Accélérez la résolution des problèmes, favorisez la collaboration et libérez les connaissances pour responsabiliser tous les utilisateurs et garantir la fiabilité.

En savoir plus sur l'observabilité avec Elastic.

Sources1. Google, "Google SRE Book", 2017.

La publication et la date de publication de toute fonctionnalité ou fonction décrite dans le présent article restent à la seule discrétion d'Elastic. Toute fonctionnalité ou fonction qui n'est actuellement pas disponible peut ne pas être livrée à temps ou ne pas être livrée du tout.