SAP Logo LeanIX is now part of SAP
LE GUIDE ULTIME

L’ingénierie en fiabilité de sites (SRE)

Découvrez l’ingénierie de la fiabilité des sites (site reliability engineering) et ses avantages, le rôle des ingénieurs en fiabilité de site, ainsi que les différences entre les SLO, les SLI et les SLA.

Introduction

Alors que les entreprises doivent faire face à une infrastructure informatique en constante évolution qui prend en charge les services de cloud, la SRE est devenue de plus en plus importante, notamment en raison de la façon dont les équipes d'ingénieurs livrent et exploitent les logiciels a radicalement changé.

Les processus de mise à jour réguliers, les lancements rapides et les corrections dans un environnement disparate ont encouragé l'adoption des principes DevOps et le passage des silos de départements centralisés à une nouvelle culture d'ingénierie. Cette culture incarne la philosophie « you build it you run it » (vous le construisez, vous l’exécutez).

Afin de stabiliser leur nouvelle architecture informatique et de renforcer leur avantage concurrentiel, les entreprises engagent des ingénieurs chargés de la fiabilité des sites. Les SRE aident les équipes d'ingénierie de produits à optimiser leurs flux de travail en s'appuyant sur différents principes d'ingénierie.

Leur principal objectif est de créer des systèmes logiciels très fiables en analysant en permanence l'infrastructure existante et en trouvant des moyens de l'optimiser grâce à des solutions logicielles.

Dans ce guide, vous en apprendrez davantage sur le rôle et les avantages de l'ingénierie de la fiabilité des sites, les principes fondamentaux sur lesquels elle repose et la différence entre un ingénieur de la fiabilité des sites et un ingénieur de plate-forme.

 

Qu’est-ce que l’ingénierie en fiabilité des sites ?

L'ingénierie de la fiabilité des sites ou SRE est une approche de l'ingénierie logicielle qui permet de gérer les grands systèmes par le biais du code. L'ingénieur chargé de la fiabilité des sites a pour mission de créer une infrastructure résiliente et des flux de travail d'ingénierie efficaces en appliquant les meilleures pratiques en matière de fiabilité des sites. Il doit notamment utiliser des indicateurs et des outils logiciels pour surveiller et améliorer les opérations.

Même si le SRE semble être un rôle relativement nouveau dans le monde de l'ingénierie et de la gestion des applications natives de cloud, il est né avant même DevOps, le mouvement qui a réussi à combiner le développement de logiciels et les opérations informatiques.

En fait, c'est Google qui, le premier, a demandé à ses ingénieurs logiciels de rendre les sites de grande taille plus fiables, plus efficaces et plus évolutifs en appliquant des solutions automatisées. Les pratiques que les ingénieurs de Google ont commencé à développer en 2003 constituent la base du domaine informatique à part entière qu'est devenue la SRE.

D'une certaine manière, l'ingénierie de la fiabilité des sites prend en charge les tâches autrefois assignées aux équipes d'exploitation. Cependant, les problèmes opérationnels ne sont pas résolus manuellement, mais avec un esprit d'ingénierie.

Grâce aux logiciels et outils avancés dont ils disposent, les SRE peuvent jeter un pont entre le développement et les opérations et créer une infrastructure informatique fiable et permettant une mise en œuvre rapide de nouveaux services et fonctionnalités.

Ainsi, les ingénieurs chargés de la fiabilité des sites sont particulièrement importants lorsqu'une entreprise passe d'une approche informatique traditionnelle à une approche « cloud-native ».

Les sections suivantes détaillent les tâches propres à un ingénieur en fiabilité des sites et le type de compétences que ce rôle requiert en général.

 

Que fait un ingénieur en fiabilité de site (SRE) ?

Un ingénieur en fiabilité des sites a généralement une formation en développement de logiciels et une expérience substantielle des opérations et de l'analyse d’entreprise. Tous ces éléments sont nécessaires pour résoudre les problèmes opérationnels à l'aide du code. Alors que DevOps s'occupe davantage de l'automatisation des opérations informatiques, les équipes SRE se concentrent davantage sur les aspects de planification et de conception.

Ils surveillent les systèmes en production et analysent leurs performances pour détecter les points à améliorer. Leurs observations les aident également à calculer le coût potentiel des pannes et à planifier les mesures d'urgence.

Les SRE partagent généralement leur temps entre les opérations et le développement de systèmes et de logiciels. Leurs responsabilités d’astreinte incluent la mise à jour de runbooks, d'outils et de documents afin de préparer les équipes d'ingénierie à un futur incident. Dans ce cas, ils mènent généralement des entretiens approfondis après l'incident pour déterminer ce qui fonctionne et ce qui ne fonctionne pas.

C'est également de cette manière qu'ils recueillent de précieuses « connaissances tribales ». Comme ils participent au développement des logiciels, au support et au développement informatique, ces connaissances ne sont plus cloisonnées, mais peuvent être utilisées pour renforcer la fiabilité des systèmes.

Une grande partie du temps d'un ingénieur en fiabilité des sites est également consacrée à la création et au déploiement de services qui optimisent le flux de travail des services informatiques et d'assistance. Cela peut également signifier la création d'un outil à partir de zéro, capable d'aplanir les défauts de la livraison de logiciels ou de la gestion des incidents.

En plus de réduire le nombre d'incidents, les SRE identifient les nouvelles fonctionnalités à mettre en œuvre, si possible à l'aide de contrats de niveau de service (SLA), d’indicateurs de niveau de service (SLI) et d’objectifs de niveau de service (SLO).

La section suivante vous expliquera les paramètres clés SLA, SLI et SLO de la SRE et leur utilisation dans le cadre de l'ingénierie de la fiabilité des sites.

La différence entre les SLOs, les SLIs, et les SLAs

Comme nous l'avons mentionné précédemment, les ingénieurs chargés de la fiabilité des sites utilisent trois paramètres pour surveiller et mesurer les performances des systèmes informatiques et, en définitive, accroître leur fiabilité : Ils rédigent des contrats de niveau de service (SLA), des indicateurs de niveau de service (SLI) et des objectifs de niveau de service (SLO). Ces paramètres de niveau de service connexes aident non seulement les entreprises à créer un système plus fiable, mais aussi à gagner la confiance des clients.

Découvrez ce que ces différents concepts signifient dans la pratique, comment ils dépendent les uns des autres et pourquoi ils sont si importants pour une ingénierie de fiabilité des sites réussie.

Que sont les SLI ?

SLI signifie indicateur de niveau de service. Le manuel SRE de Google le définit comme « une mesure quantitative soigneusement définie de certains aspects du niveau de service fourni ».  Autrement dit, les SLI servent à mesurer les caractéristiques d'un service pour en tirer des enseignements pour l'objectif d'un fournisseur de services.

Les SLI centrés sur le produit évaluent les comportements qui ont un impact important sur l'expérience client. En fait, il existe quatre signaux d'or utilisés comme les SLI les plus courants : latence, trafic, taux d'erreur et saturation.

Lorsque les équipes SRE mettent en place des SLI pour mesurer un service, elles les définissent généralement en deux étapes. 

  1. elles déterminent les SLI qui ont un impact direct sur les clients.
  2. elles déterminent les SLI qui ont une influence directe sur la disponibilité ou la latence, ou la performance du service.

La formule utilisée pour calculer les SLI est la suivante SLI = bons évènements * 100 / évènements valides – une valeur SLI de 100 est idéale, tandis qu'une chute à 0 signifie qu'un système est en panne.

Il est important de créer des SLI qui correspondent au parcours des utilisateurs. En d’autres termes, un seul SLI ne peut pas faire état de l'ensemble de l'expérience du client, car un utilisateur type peut se préoccuper de plusieurs choses lorsqu'il utilise le service. En même temps, il n'est pas conseillé de créer des SLI pour chaque mesure possible, car vous perdriez de vue ce qui est vraiment important.

En règle générale, les ingénieurs chargés de la fiabilité des sites essaient de trouver les points de douleur les plus importants tout au long du parcours de l'utilisateur, qui pourraient ensuite conduire à une refonte totale du système.

Une fois les SLI configurés, un SRE les relie aux SLO, qui sont des valeurs seuils clés par rapport à chaque SLI quantifiant la disponibilité et la qualité du service.

Que sont les SLO ?

Les SLO ou objectifs de niveau de service sont utilisés comme une mesure objective pour les objectifs de fiabilité ou de performance d'un service. Le manuel SRE de Google indique qu'ils « précisent un niveau cible pour la fiabilité de votre service » et « parce que les SLO sont essentiels pour prendre des décisions fondées sur des données en matière de fiabilité, ils sont au cœur des pratiques SRE ».

Alors que les SLI sont axés sur le produit, les SLO sont axés sur le client. Les SLO sont mesurés par les SLI, les deux ont donc une dépendance complexe. La structure naturelle de leur relation est définie comme suit : Limite inférieure des SLO ≤ SLI ≤ Limite supérieure des SLO.

Cependant, choisir les bons SLO est une tâche complexe. En général, les objectifs ne doivent pas être basés sur les performances actuelles, mais sur les performances historiques du système. Parfois, les équipes SRE commettent également l'erreur de viser la perfection en fixant des objectifs beaucoup trop élevés. Il n'est pas non plus nécessaire de préciser des valeurs absolues. Cependant, il est bon de garder une marge de sécurité dans les SLO en fixant une moyenne historique. Lorsque vous adoptez des SLO, il est important de commencer lentement et d’avancer progressivement, car leur adoption nécessite un changement culturel.

Les SLO doivent être considérés comme un outil d’harmonisation qui crée un langage commun et des objectifs partagés par les différentes équipes. Et vous avez beaucoup plus de chances de réussir si toutes les parties prenantes clés sont impliquées. Cependant, de nombreuses entreprises se concentrent sur l'innovation des produits et ne saisissent pas le lien entre la performance de l’entreprise et la fiabilité. Les obstacles les plus courants sont le cloisonnement des données et l'idée fausse selon laquelle les SLO ne nécessiteraient aucune réévaluation ni aucun réajustement une fois créés.

Que sont les SLA ?

Les SLA ou contrats de niveau de service sont des contrats sur la disponibilité et la performance des services. Tout comme les SLO, les SLA sont une mesure centrée sur le client. Dans le manuel SRE de Google, un SLA est défini comme « un contrat explicite ou implicite avec vos utilisateurs qui indique ce qu’il se passe si les niveaux de service en question sont atteints (ou pas) ».

Un SLA entre en vigueur dès qu'un SLO échoue. En général, vous pouvez vous attendre à des pénalités et à des sanctions financières en cas de non-respect des résultats escomptés. Si votre entreprise ne respecte pas une condition convenue dans le contrat de niveau de service, elle doit généralement rembourser ses clients.

Les SLA favorisent la transparence et la confiance entre le service et ses utilisateurs. D'une certaine manière, ils ressemblent beaucoup aux SLO, mais pour un usage externe et non interne. Par rapport aux SLO, les SLA ne sont pas aussi conservateurs, ce qui signifie que la valeur de la fiabilité est toujours légèrement inférieure à la moyenne historique d'un SLO de disponibilité. Cela peut être considéré comme une mesure de sécurité dans le cas où la moyenne serait trop élevée en raison de la rareté des incidents.

En conclusion, les ingénieurs chargés de la fiabilité des sites doivent travailler avec ces trois paramètres pour créer une infrastructure stable et fiable. Après avoir collecté les SLI (les métriques dans le système de surveillance), ils définissent les seuils de ces métriques sur la base des SLO internes afin de prévenir une violation des SLA externes.

La différence entre l’ingénierie en fiabilité des sites et l’ingénierie de plateforme

Les ingénieurs chargés de la fiabilité des sites et les ingénieurs de plate-forme ont des rôles très similaires et des objectifs qui se chevauchent. Dans les petites entreprises, il est même possible que les deux soient interchangeables. Toutefois, à mesure que le nombre de développeurs augmente, la frontière entre les équipes SRE et les équipes chargées des plateformes devient un peu moins floue.

En effet, un ingénieur de plate-forme se concentre davantage sur l'optimisation du flux de travail en déployant certains composants d'infrastructure. Ainsi, les ingénieurs produits peuvent concevoir et livrer des applications plus rapidement. Afin d'éviter les goulets d'étranglement, les ingénieurs de plate-forme doivent également recalibrer les flux de travail existants et s'assurer que les bonnes personnes peuvent y accéder.

Un ingénieur en fiabilité de site s'intéresse quant à lui à la santé globale d'un système, en mesurant sa fiabilité et en fixant des objectifs de fiabilité (SLO).

L'étroite collaboration de ces deux équipes avec les équipes de développement, d'exploitation et d'assistance permet d'obtenir d’améliorer les produits, d’accélérer les livraisons, de réduire les incidents et de rendre les développeurs et les clients plus heureux.

Les avantages de l’ingénierie en fiabilité de sites

Il ne fait aucun doute que l'adoption d'une culture DevOps aide les équipes d'ingénieurs à collaborer de manière plus productive et à livrer des logiciels beaucoup plus rapidement. Cependant, cela n'augmente pas nécessairement la fiabilité et les performances du site. C'est pourquoi de nombreuses entreprises cherchent à pourvoir des postes de SRE. Mais comment votre entreprise peut-elle tirer parti de l'ingénierie de la fiabilité des sites au juste ? Voici les 6 arguments les plus convaincants qui plaident en faveur du recrutement d'une équipe SRE.

  • Amélioration des rapports sur les indicateurs : Les SRE apportent plus de clarté en contrôlant et en mesurant la productivité, la santé du service et l'apparition de bugs. Ils sont capables de traduire les mesures en éléments tangibles (comme la durée moyenne des temps d'arrêt) et leur relation avec la perte de revenus pour l'entreprise. Une fois que les domaines d'amélioration sont exposés, il est plus facile de les aborder avec des solutions appropriées.

  • Dépannage proactif : de nombreuses entreprises se concentrent sur l'innovation et le déploiement de nouvelles fonctionnalités pour rester en tête. Cependant, un développement et une livraison rapides accentuent également les risques de bogues et de vulnérabilités non détectées. Comme les SRE travaillent de manière proactive, ils peuvent trouver et résoudre les problèmes avant qu'ils n'atteignent l'utilisateur final, ce qui permet à l'entreprise d'économiser du temps et de l'argent.

  • Plus de temps pour créer de la valeur : travailler avec un système plus fiable et ne pas avoir à résoudre les problèmes une fois qu'ils ont atteint l'utilisateur final permet de libérer du temps pour les équipes de développement, qui peuvent donc se concentrer sur la création de nouvelles fonctionnalités. Et le fait que les SRE détectent les problèmes potentiels signifie que les développeurs peuvent les résoudre à l'avance et obtenir de meilleurs résultats.

  • Amélioration culturelle : l'ingénierie de la fiabilité des sites permet de surveiller en permanence la santé du système et ses vulnérabilités. Le processus de recherche continue des meilleures solutions génère des avantages pour les équipes, les départements et les services et encourage la collaboration. Ce sens partagé de la responsabilité améliore non seulement la culture d'entreprise mais aussi le produit lui-même.

  • Automatisation accrue : un ingénieur chargé de la fiabilité des sites cherchera toujours le meilleur moyen de moderniser et d'automatiser les flux de travail des ingénieurs produits. Cependant, ils améliorent également leur propre flux de travail pour détecter les vulnérabilités des systèmes à l’aide d’outils et de systèmes d'alerte modernes. Cela réduit le temps nécessaire pour trouver, mettre en évidence et réparer les bogues. Ainsi, au fil du temps, le système devient de plus en plus fiable grâce à l'automatisation.

  • Répondre aux attentes des clients : alors que DevOps se préoccupe davantage des processus internes, les SRE se concentrent sur l'amélioration de l'expérience des clients et des consommateurs. En utilisant des mesures telles que les SLA, SLO et SLI, un ingénieur en fiabilité de site fixe des objectifs clairs pour répondre aux attentes des clients. Il en résultera des produits plus fiables et des améliorations significatives en termes de retour sur investissement.

 

Conclusion

De nombreuses raisons expliquent pourquoi les entreprises natives de l'informatique dématérialisée ont tout intérêt à recruter un ingénieur en fiabilité des sites ou une équipe SRE complète. Ils constituent un complément précieux à toute culture DevOps, car ils comblent le fossé entre les développeurs et l'infrastructure informatique.

En surveillant et en analysant en permanence les performances des applications, ils détectent les problèmes à un stade précoce du processus et contribuent à la feuille de route globale des produits. De plus, les équipes de développement passent beaucoup moins de temps à traiter les problèmes et peuvent se consacrer davantage à la création de nouvelles fonctionnalités et de nouveaux services.

AFFICHE GRATUITE

20 questions clés auxquelles un catalogue de microservices répond

Le catalogage de microservices aide les équipes DevOps à visualiser leur environnement de microservices, y compris les détails liés à la responsabilité, aux dépendances et au contexte de l’entreprise.

Obtenez votre copie gratuite

EN-Cloud-Microservice-Catalog-Poster_Landing_Page_Preview

Les questions les plus posées sur l’ingénierie en fiabilité de site

Qu’est-ce que l’ingénierie en fiabilité de site (SRE) ?

L'ingénierie de la fiabilité des sites ou SRE est une approche de l'ingénierie logicielle qui permet de gérer les grands systèmes par le biais du code. L'ingénieur chargé de la fiabilité des sites a pour mission de créer une infrastructure résiliente et des flux de travail d'ingénierie efficaces en appliquant les meilleures pratiques en matière de fiabilité des sites. Il doit notamment utiliser des mesures et des outils logiciels pour surveiller et améliorer les opérations.

Quels sont les avantages de l’ingénierie en fiabilité ?

Elle permet d'améliorer les rapports sur les mesures, de mettre en place un dépannage proactif, de consacrer plus de temps à la création de valeur, d'améliorer la culture, d'augmenter l'automatisation et de répondre aux attentes des clients.

Que fait un ingénieur en fiabilité de site ?

L'ingénieur chargé de la fiabilité des sites résout les problèmes opérationnels à l'aide du code en mettant l’accent sur certains aspects de planification et de conception. L'ingénieur surveille les systèmes en production et analyse leurs performances pour détecter les points à améliorer. Les observations de l'ingénieur permettent également de calculer le coût potentiel des pannes et de prévoir des mesures d'urgence.

Quels indicateurs les ingénieurs en fiabilité de site utilisent-ils ?

Les ingénieurs chargés de la fiabilité des sites utilisent trois paramètres : les SLI, les SLO et les SLA pour surveiller et mesurer les performances des systèmes informatiques et, en fin de compte, accroître leur fiabilité.

Quelle est la différence entre l’ingénierie en fiabilité de site et l’ingénierie de plate-forme ?

L'ingénieur en fiabilité de site se préoccupe davantage de la santé globale d'un système, de la mesure de sa fiabilité et de la fixation d'objectifs de fiabilité (SLO).
L'ingénieur plate-forme se concentre davantage sur l'optimisation du flux de travail en déployant certains composants d'infrastructure. Ainsi, les ingénieurs produits peuvent construire et expédier des applications plus rapidement. Afin d'éviter les goulets d'étranglement, les ingénieurs de plate-forme doivent également recalibrer les flux de travail et s'assurer que les bonnes personnes peuvent y accéder. Les ingénieurs chargés de la fiabilité des sites et les ingénieurs de plate-forme ont des rôles très similaires et des objectifs qui se chevauchent.

FR-Cloud-Microservice-Catalog-Poster_Resource_Page_Thumbnail

AFFICHE GRATUITE

20 questions clés auxquelles un catalogue de microservices répond

Télécharger