Un objectif de niveau de service (SLO) est un engagement de performance contractuel pour un service donné sur une période donnée. Les SLO établissent les critères de performance requis des services et permettent aux parties prenantes de suivre l’état de santé de services spécifiques, et d’optimiser les décisions en conciliant innovation et fiabilité1.
Les SLO sont quantifiés par des indicateurs de qualité de service (SLI), des indicateurs numériques d’un élément du service. Ils font partie d’un accord plus large entre les fournisseurs de services et les clients : les accords de niveau de service (SLA). Ces accords définissent le niveau de service attendu et prévoient des pénalités en cas de manquement aux objectifs.
Afin de garantir que les niveaux de service correspondent aux exigences professionnelles et aux attentes des clients, les équipes concernées, notamment celles d’ingénierie de la fiabilité des sites (SRE), de DevOps et d’informatique, doivent comprendre les parcours utilisateur clés pour chaque application. Ces parcours se composent des interactions qui permettent aux utilisateurs finaux d’atteindre les résultats souhaités.
L'engagement interne est primordial pour la réussite des SLO (et par conséquent, des SLA), et plusieurs parties prenantes devraient contribuer à la détermination des SLO, notamment les responsables de produit, les équipes DevOps et de gestion des problèmes, ainsi que les ingénieurs d'infrastructure. "Les clients externes participent à la discussion au moyen de groupes de discussion, d'études, de plaintes clients et des médias sociaux.
Le principe clé des SLO est que la fiabilité du service engendre la satisfaction de l'utilisateur, ce qui crée de meilleures opportunités commerciales. L'établissement de cibles de fiabilité mesurables aide une organisation à concilier une expérience utilisateur agréable et efficace avec un coût raisonnable : ne pas dépasser le budget IT avec des niveaux de service dépassant ceux nécessaires ou attendus.
Les SLO sont essentiels car ils établissent les objectifs de qualité de service (QoS) et de fiabilité en termes précis, quantifiables et objectifs. Ils ne sont pas conçus pour définir le niveau de performance optimal, mais une plage de normes de performance les plus élevées et les moins acceptables.1
L’objectif des SLO est parfaitement résumé dans le livre 97 Things Every Cloud Engineer Should Know de O’Reilly Media : « Comment fournir à la direction un moyen simple de saisir immédiatement les compromis entre fiabilité, rapidité d’innovation et coût ? Les SLO sont la solution. Les SLO établissent des principes de fiabilité clairs qui équilibrent les compromis entre les coûts liés au cloud, la vitesse de changement et les risques externes. »
Les SLO sont un élément parmi plusieurs termes connexes utilisés pour suivre et évaluer la performance des services :
Un SLI mesure de façon quantitative certains aspects d'un service. Les SLI fournissent les données quantifiables—les mesures de performance du système—comme les taux d'erreur, le débit par lot ou la latence des requêtes. Normalement, les mesures sont consolidées et présentées sous forme de taux, de moyenne ou de percentile.
Les SLO sont les valeurs de référence pour ces mesures (comme garantir un temps de réponse inférieur à 200 millisecondes) qui doivent être satisfaites pour respecter les accords de niveau de service (SLA). Ces valeurs sont exprimées en pourcentage sur une période donnée.
Les SLA sont les contrats entre fournisseurs et clients, comprenant des SLO individuels, qui garantissent un certain niveau pour les activités, les fonctions ou les processus de service. Ils prévoient également des sanctions en cas de non-respect de l’accord.
Un budget d'erreur est un élément des SLO qui spécifie le niveau acceptable de défaillance avant la rupture d'un contrat. Un budget d'erreur permet de prendre en compte les temps d'arrêt planifiés ou non planifiés du service qui sont inévitables en pratique. Prévoir des temps d'arrêt autorise vos équipes de développement à prendre des décisions éclairées concernant de nouveaux développements, les opérations et la mise à jour ou la correction de logiciels installés.
La fiabilité et la réactivité sont généralement mesurées en « neuf » jusqu’à 100 % : 90 %, 99 %, 99,9 % et ainsi de suite. À titre d’exemple, on peut exprimer un objectif de disponibilité du CPU ainsi :
Niveau de fiabilité | Fenêtre d'indisponibilité autorisée | ||
|
|
| |
Par an | Par trimestre | Sur 30 jours | |
90 % | 36,5 jours | 9 jours | 3 jours |
95 % | 18,25 jours | 4,5 jours | 1,5 jour |
99 % | 3,65 jours | 21,6 heures | 7,2 heures |
99,5 % | 1,83 jour | 10,8 heures | 3,6 heures |
99,9 % | 8,76 heures | 2,16 heures | 43,2 minutes |
99,95 % | 4,38 heures | 1,08 heure | 21,6 minutes |
99,99 % | 52,6 minutes | 12,96 minutes | 4,32 minutes |
99,999 % | 5,26 minutes | 1,30 minute | 26,9 secondes |
|
|
| |
Chaque décimale qui rapproche de 100 implique généralement un coût et une complexité plus élevés. Les clients, internes et externes, peuvent demander un certain niveau de réactivité, au-delà duquel ils ne constatent plus de différence. La définition des SLO est autant une science qu’un art, puisque le but est de trouver le bon équilibre entre perfection statistique et objectifs réalistes et rentables.
L'équipe de développement peut avoir pour priorité de livrer de nouvelles fonctionnalités, tandis que l'équipe d'exploitation vise la stabilité et la qualité, en introduisant le changement de manière contrôlée. Puisque l'entreprise propose des produits ou des services à des clients internes et externes, il est crucial de mesurer tout niveau de service du point de vue de ces clients.
Les SLO permettent de fédérer les organisations autour de la fiabilité. En définitive, les parties prenantes devraient établir un SLO mesurable pour le client qui concilie de manière efficace la vitesse et la qualité du service.
Au départ, les objectifs de niveau de service sont importants car ils garantissent la fiabilité du service et le respect des accords de niveau de service. Si vous respectez les SLA, vos clients sont satisfaits, ce qui est bénéfique pour votre activité.
Les SLO ne sont pas seulement bénéfiques pour les clients externes, mais ils offrent également des informations précieuses pour les clients internes. Les SLO aident diverses équipes à évaluer la performance des services et des applications et à déterminer des moyens de les améliorer. Entre autres avantages, les SLO aident les organisations à :
Les problèmes de fiabilité peuvent coûter de l’argent à votre entreprise. Avec des SLO bien configurés, vous pouvez identifier et révéler les lacunes en matière d’observabilité. Votre configuration de SLO pourrait être le seul endroit où vous pouvez rassembler les informations provenant des différents outils de surveillance utilisés dans votre entreprise. Une meilleure observabilité contribue à offrir de meilleurs produits, à réduire la perte de clients et à fonctionner plus efficacement.
Les SLO et les SLI permettent de comprendre la performance des services et des applications et fournissent aux équipes une mesure exacte des temps d'arrêt et d'autres problèmes potentiels.
Ces informations sont utiles pour les équipes DevOps, IT et autres qui veulent équilibrer innovation et fiabilité lors de la mise à jour de produits existants et du lancement de nouvelles fonctionnalités.
Un SLO soigneusement conçu qui évalue la santé de vos microservices, telle que ressentie par vos clients, offre des informations inestimables sur la performance du produit et l'expérience utilisateur.
La mise en place et le suivi des SLO permettent de fédérer les équipes de toute l'organisation autour d'une compréhension du service et des attentes associées. Des SLO soigneusement établis contribuent à créer une culture de communication où toutes les parties prenantes expriment leurs attentes envers un service et comprennent leur rôle dans le respect des SLA.
De plus, la création de rapports et d’automatisations avec des SLO permet à chaque membre de votre équipe de répondre plus rapidement aux questions sur les incidents. Les SLO sont essentiels pour vos équipes DevOps, d’infrastructure et SRE, mais ils peuvent également contribuer à métamorphoser presque tous les aspects de votre entreprise. Les données recueillies par l’observabilité peuvent être converties en informations accessibles, contextuelles et exploitables. Ces informations offrent la visibilité dont vos équipes ont besoin pour prendre des décisions rapides et rentables.
Grâce à des objectifs clairement définis, les organisations peuvent se tourner vers l'automatisation pour surveiller et mesurer les SLI. Cette approche peut contribuer à garantir que les objectifs sont atteints, dans le but de passer de la surveillance à l'automatisation complète des processus de bout en bout.
Un système de surveillance automatisé permet de détecter les problèmes potentiels dès leur apparition, avant que les performances du service ne soient en deçà des objectifs fixés dans les SLO ou ne violent les SLA. Une fois les processus conformes aux SLO établis, l’automatisation peut être mise en œuvre pour assurer des performances constantes, par exemple en utilisant une plateforme qui automatise l’allocation des ressources en fonction de la demande en charge de travail.
Les SLO permettent aux équipes DevOps d’anticiper les problèmes potentiels avant qu’ils ne surviennent. Cette prévoyance empêche les temps d’arrêt inacceptables ou autres événements qui pourraient avoir des conséquences négatives sur les utilisateurs finaux ou coûter de l’argent à l’entreprise.
Les SLA utilisent souvent le temps d’arrêt mensuel ou les pourcentages de disponibilité pour calculer la facturation. Un temps d’arrêt est une période durant laquelle un système ne remplit pas sa fonction principale. Les pannes de communication, par exemple, peuvent engendrer un arrêt du réseau. La norme de disponibilité dans les secteurs reste élevée, tout comme le coût des temps d’arrêt, qui est en constante augmentation. Outre l’impact financier, le non-respect des SLO peut également susciter le mécontentement des clients.
Un grand nombre d'organisations opèrent selon un processus de gestion réactive des incidents. Mais lorsque vous attendez qu'un incident se produise, il faut plus de temps pour atténuer et résoudre les problèmes de votre système, ce qui augmente le temps moyen de réparation (MTTR)1. Des SLO correctement établis contribuent à améliorer l'observabilité et permettent aux organisations d'être plus proactives dans la gestion des incidents.
Les alertes non pertinentes augmentent non seulement les coûts opérationnels, mais peuvent également entraîner des taux d’épuisement professionnel élevés, car les ingénieurs perdent du temps et de la productivité à répondre à des alertes inexistantes. L’un des plus grands défis en matière d’alertes est simplement de trouver le juste équilibre entre trop et trop peu d’alertes.
Une alerte pertinente signale à un ingénieur lorsque la dégradation risque de compromettre un objectif de fiabilité ; il s’agit d’une alerte basée sur les symptômes. Par exemple, le fait que le délai de réponse d’un service au cours de la dernière heure puisse entraîner la non-conformité du SLO en matière de latence pour la semaine constitue un véritable problème.
Si vous demandez aux professionnels quel devrait être leur objectif de disponibilité système, beaucoup répondraient qu’ils aimeraient viser les 100 %. Il s’agit là d’un objectif ambitieux, mais également très onéreux, qui peut engloutir la majeure partie de votre budget informatique avant tout le reste. Les SLO ne sont pas destinés à se vanter, mais à cerner et satisfaire les attentes des clients afin de les fidéliser. La fiabilité est un moyen et non une fin.
Le fait qu’un indicateur de performance puisse être mesuré ne signifie pas nécessairement qu’il soit pertinent pour la satisfaction de vos clients ou vos résultats financiers. Définissez les priorités. Privilégiez les indicateurs qui sont les plus fortement corrélés à une expérience client positive.
Dans Foundations of Service Level Management, Rick Sturm et Wayne Morris présentent cette liste de contrôle pour définir des SLO réalistes :
Les SLO devraient être :
· Atteignables
· Répétables
· Mesurables
· Compréhensibles
· Significatifs
· Contrôlables
· Abordables
· Acceptables pour tous
Leur liste commence par « réalisables ». Viser trop haut augmente les coûts et peut entraîner une disponibilité supérieure à celle dont vos clients ont besoin. Voici quelques bonnes pratiques importantes pour vous aider à atteindre vos objectifs SLO :
Définissez des SLO qui soutiennent le SLA ou l’objectif métier. Vingt SLO sont-ils réellement quatre fois plus efficaces que cinq ? Ou cela créerait-il plus de travail pour votre équipe informatique et embrouillerait le client, sans aucun avantage significatif ? Il ne faut pas se sentir obligé de noter tout ce qui peut être mesuré.
Fixez des objectifs SLO réalistes plutôt que de promettre la lune et de décevoir, ce qui pourrait entraîner des pénalités coûteuses et même faire perdre des clients à l’entreprise. Faire preuve de réalisme avec les parties prenantes internes et les clients permet à tout le monde de prendre des décisions éclairées. Les objectifs de SLO irréalisables coûtent plus cher au final.
En établissant dès le départ des attentes réalistes, vous évitez la confusion et les conflits ultérieurs entre les équipes internes et avec le client.
Le relevé manuel des indicateurs peut ralentir la résolution des problèmes et ne permet pas toujours d’analyser les causes profondes. Recueillez des SLI pertinents pour évaluer automatiquement les SLO et mettre en place une alerte automatique avant qu’un SLO ne soit enfreint. Incluez le contexte dont votre personnel a besoin ainsi que les dépendances pour traiter un problème avant qu’il ne devienne un problème majeur.