L’ingénierie de la fiabilité du site (SRE) est la pratique consistant à appliquer l’expertise en ingénierie logicielle aux problèmes DevOps et opérationnels. SRE, qui a été popularisé par la publication de 2016 de Site Reliability Engineering : How Google Runs Production Systems, signifie souvent écrire du code de manière proactive et développer des applications internes pour lutter contre les problèmes de fiabilité et de performances.
Dans SRE, les niveaux de service décrivent les services fournis aux utilisateurs au cours d’une période de temps donnée en termes mesurables. Les objectifs de niveau de service (SLO) sont les objectifs fixés pour la disponibilité attendue d’un système. Les indicateurs de niveau de service (SLI) sont les mesures et métriques clés permettant de déterminer la disponibilité d’un système. Les accords de niveau de service (SLA) sont les contrats légaux qui expliquent ce qui est convenu et ce qui se passe si les systèmes ne respectent pas les SLO.
Par exemple, un SLO pour une application Web peut être que les vidéos doivent commencer à jouer en moins de deux secondes, 99 % du temps, pendant une période d’une semaine. Le SLI mesure la proportion de vidéos sur le site qui commencent à jouer en moins de deux secondes. Le SLA comprend à la fois ce SLO et d’autres SLO convenus par le client et le fournisseur de services, l’étendue des services qui seront couverts et les SLI, qui sont les mesures qui seront utilisées pour mesurer les performances.
Mais comment les SLO, les SLI et les SLA sont-ils liés les uns aux autres ? Comment ces acronymes aideront-ils à gérer les niveaux de service auxquels vos utilisateurs s’attendent ? Regardons chacun plus en détail.
Que sont les SLO ?
Les SLO sont les objectifs que vous définissez pour la disponibilité que vous attendez de votre système, exprimée en pourcentage sur une période de temps.
Les objectifs de niveau de service aident les équipes à collaborer sur une signification commune de « disponibilité » et de « disponibilité ». Vous utilisez les SLO comme norme pour mesurer votre fiabilité et votre disponibilité. Comme décrit dans l’exemple précédent, un SLO indique que les vidéos de l’application Web doivent commencer à jouer en moins de 2 secondes, 99 % du temps sur une période d’une semaine.
Que sont les SLI ?
Les SLI sont les mesures quantitatives de la façon dont les utilisateurs perçoivent la disponibilité d’un système. Ils représentent une proportion d’extrants réussis pour un niveau de service, exprimée en pourcentage.
Ces indicateurs de niveau de service sont décrits en relation avec les SLO, mais les SLI fournissent des signaux en temps réel sur la fiabilité du système. Les SLI peuvent mesurer la proportion de requêtes qui ont été plus rapides qu’un seuil ou la proportion d’enregistrements entrant dans un pipeline qui aboutissent à la sortie de la valeur correcte. Comme décrit dans l’exemple précédent, le SLI mesure la proportion de vidéos sur le site Web qui commencent à être lues en moins de deux secondes. Vous pouvez dire à quelle distance vous êtes de l’objectif dans le SLO.
Que sont les SLA ?
Les SLA définissent le niveau de service auquel vos clients s’attendent lorsqu’ils utilisent votre service.
Ces accords de niveau de service sont des contrats entre les fournisseurs de services et leurs clients qui documentent les services que le fournisseur fournira et définissent les normes de service que le fournisseur est tenu de respecter. Les SLA décrivent les recours ou les pénalités résultant du non-respect des engagements SLO.
Pour l’exemple précédent, le SLA inclura tous les SLO pour l’application Web, ainsi que l’étendue des services qui seront couverts, et tous les SLI, qui sont les mesures qui seront utilisées pour mesurer les performances par rapport aux SLO. L’accord comprend également les responsabilités du fournisseur de services et du client.
Qui utilise les niveaux de service, les SLO, les SLI et les SLA ?
Bien que les équipes SRE et les ingénieurs de fiabilité ne soient pas toujours responsables de la gestion des niveaux de service, cela relève souvent de leur compétence. En suivant les SLI et en les liant aux SLO, vous pouvez définir des objectifs concernant les performances d’un système. Le livre SRE de Google définit les quatre signaux d’or des niveaux de service comme la latence, le trafic, les erreurs et la saturation. Ainsi, par exemple, vous pouvez examiner un appel d’API et suivre son nombre de requêtes réussies/échouées (le SLI) par rapport à un pourcentage général de requêtes (le SLO, par exemple, 95 %) qui doivent réussir pour que les clients aient une bonne expérience.
Les équipes SRE définissent souvent des SLO stricts sur les composants critiques de leurs applications et services afin de mieux comprendre la rigueur d’un SLA qu’elles peuvent accepter avec les clients. À partir de là, l’équipe peut appliquer des budgets d’erreur afin de comprendre à quelle vitesse elle doit résoudre les problèmes afin de rester conforme à ses SLO. Les niveaux de service permettent aux équipes d’agréger les métriques et de créer une vue transparente de la disponibilité, des performances et de la fiabilité dans l’ensemble de l’organisation. En un coup d’œil, les chefs d’entreprise peuvent utiliser les niveaux de service pour surveiller la conformité de plusieurs équipes, applications, services, etc., afin d’acquérir une compréhension complète de la santé de leur système.