Au cours des dernières années, l’ingénierie de la fiabilité des sites (SRE) est devenue l’une des approches les plus recherchées en matière d’exploitation des entreprises. Selon Google, « L’ingénierie de la fiabilité des sites consiste à traiter les opérations comme un problème logiciel. » Le budget d’erreur est l’un des éléments cruciaux de l’approche SRE, et même si chaque organisation fait face à des défis uniques, il est essentiel d’en être conscient.
Pour les ingénieurs responsables de l’ingénierie de la fiabilité des sites, l’une des principales responsabilités est de s’assurer que les systèmes sont fiables et disponibles pour les utilisateurs. Malgré tous les efforts déployés, des problèmes inattendus peuvent inévitablement survenir, entraînant des périodes d’indisponibilité ou une dégradation des systèmes.
Pour vous aider à surmonter ces défis, le concept de budget d’erreur a évolué au fil du temps pour devenir un élément clé du modèle SRE. Un budget d’erreur est essentiellement un quota de temps d’arrêt ou de dégradation qui est acceptable dans une période donnée. En définissant et en suivant un budget d’erreur, les responsables de l’ingénierie de la fiabilité des sites peuvent prioriser leurs efforts et prendre des décisions éclairées sur le moment et la manière d’investir dans les améliorations de la fiabilité.
La question est de savoir comment déterminer la taille de votre budget d’erreur, et comment l’allouer à votre modèle SRE au fil du temps ?
Dans cet article, nous comparerons différentes approches pour gérer et allouer un budget d’erreur dans un modèle SRE, notamment les budgets basés sur des seuils, les budgets basés sur le temps et les budgets continus. Nous discuterons également des avantages et des inconvénients de chaque approche et proposerons quelques pratiques exemplaires pour appliquer l’approche SRE au budget d’erreur dans votre organisation.
Qu’est-ce qu’un budget d’erreur ?
Un budget d’erreur permet de quantifier la quantité de temps d’arrêt ou de dégradation acceptable sur une période donnée. Il s’exprime en pourcentage du temps de disponibilité total ou en nombre de minutes ou d’heures d’indisponibilité. Par exemple, vous pourriez avoir une exigence de budget d’erreur de 99,9 % de disponibilité. Cela signifie que si un service reçoit 1 000 000 demandes en un mois, avec un SLO de 99,9 %, la marge pour le budget d’erreur serait de 1 000 erreurs pour l’ensemble du mois.
L’idée derrière un budget d’erreur est de vous permettre d’équilibrer les compromis entre fiabilité et rapidité. Vous souhaitez garantir la fiabilité maximale de vos systèmes, mais aussi pouvoir progresser rapidement et offrir de nouvelles fonctionnalités et améliorations à vos utilisateurs. Un budget d’erreur peut vous aider à trouver l’équilibre entre ces deux exigences.
Budgets basés sur des seuils
Selon cette approche, vous définissez des seuils spécifiques pour différents indicateurs ou mesures de santé du système et allouez votre budget d’erreur en conséquence.
Par exemple, vous pourriez fixer un seuil pour le nombre d’erreurs retournées par vos serveurs et allouer un certain pourcentage de votre budget d’erreur à la gestion de ces erreurs. Vous pourriez également définir un seuil pour le temps de réponse de vos serveurs et allouer un autre pourcentage de votre budget d’erreur à l’amélioration des performances.
L’avantage de la budgétisation basée sur des seuils est qu’elle permet de concentrer vos efforts sur des zones spécifiques de votre système nécessitant des améliorations. En définissant des cibles claires et en allouant votre budget d’erreur en conséquence, vous pouvez prioriser vos initiatives en matière de fiabilité pour obtenir le meilleur impact possible.
En plus de ses avantages, la budgétisation basée sur des seuils présente également certains inconvénients potentiels. L’un des défis est qu’il peut être difficile de déterminer les seuils appropriés, puisque chaque système et charge de travail a ses propres exigences. Par ailleurs, la fixation de seuils rigides peut manquer de flexibilité et ne pas s’adapter à l’évolution de la charge ou des habitudes d’utilisation au fil du temps.
Budgets basés sur le temps
La budgétisation basée sur le temps est une autre approche de gestion et d’allocation du budget d’erreur. Avec cette méthode, vous répartissez votre budget d’erreur sur une période définie, comme une semaine, un mois ou un trimestre. Cela permet d’étaler l’utilisation du budget d’erreur dans le temps, plutôt que de tout consommer d’un coup.
Par exemple, vous pourriez allouer votre budget d’erreur mensuellement, ce qui vous permet d’avoir un certain temps d’arrêt ou de dégradation à utiliser chaque mois. Cette approche permet de gagner en flexibilité et de s’adapter aux changements de charge ou d’utilisation, puisque vous pouvez ajuster votre allocation de budget chaque mois.
L’un des avantages de la budgétisation temporelle est de permettre de donner la priorité aux améliorations de la fiabilité à long terme, plutôt que de se concentrer uniquement sur des objectifs à court terme. Cela offre aussi plus de contrôle sur la façon dont vous répartissez votre budget d’erreur, puisque vous pouvez le distribuer entre différentes parties de votre système selon les besoins.
Cependant, il existe certains inconvénients potentiels à la budgétisation selon le temps. L’un des défis consiste à prévoir avec précision vos besoins en budget d’erreur au fil du temps, car de nombreux facteurs tels que les variations de charge, les habitudes d’utilisation et la complexité du système peuvent l’influencer. Par ailleurs, cette approche n’est pas nécessairement très efficace pour identifier et traiter des goulets d’étranglement précis dans votre système.
Budgets continus
Une troisième approche SRE pour gérer et allouer un budget d’erreur est le budget continu. Avec cette méthode, vous allouez le budget en continu, par exemple sur la semaine, le mois ou le trimestre écoulé. Cela permet de réévaluer et d’ajuster en permanence votre budget d’erreur, en se basant sur votre performance réelle en matière de fiabilité.
Par exemple, vous pourriez répartir votre budget d’erreur chaque mois, mais le réévaluer et l’ajuster en fonction de votre performance de fiabilité sur le mois passé. Si vous épuisez votre budget d’erreur trop rapidement, vous devrez peut-être allouer plus de ressources aux améliorations de la fiabilité. Si votre budget n’a pas encore été consommé, vous pourrez peut-être affecter des fonds supplémentaires à de nouvelles fonctionnalités ou améliorations.
Les budgets continus vous rendent plus réactif et adaptatif face aux évolutions de votre système. En réadaptant constamment votre budget d’erreur, vous pouvez détecter, diagnostiquer et corriger plus rapidement les problèmes et les goulets d’étranglement dès qu’ils se présentent. Cela facilite également le suivi de l’efficacité de vos efforts de fiabilité dans la durée.
Cependant, les budgets continus présentent aussi certains inconvénients potentiels. Par exemple, leur mise en œuvre et leur gestion peuvent être plus complexes, car il faut réévaluer et ajuster constamment. De plus, les budgets continus ne sont pas forcément très efficaces pour établir des objectifs de fiabilité à long terme, car ils privilégient plutôt la performance à court terme.
Conclusion
En ingénierie de la fiabilité des sites, il existe différentes approches pour gérer et allouer un budget d’erreur, notamment la budgétisation par seuils, la budgétisation temporelle et les budgets continus. Chaque approche a ses forces et ses faiblesses, et le bon choix pour votre organisation dépend de vos besoins et objectifs spécifiques.
Quel que soit le modèle choisi, il est important d’examiner et d’évaluer régulièrement votre budget d’erreur, ainsi que de le communiquer à votre équipe et aux parties prenantes. En fixant et en suivant un budget d’erreur, vous pouvez définir clairement quand il est acceptable de prendre des risques, et quand il est nécessaire de privilégier la fiabilité. Cela vous aidera à prendre des décisions éclairées sur la façon d’investir dans l’amélioration de la fiabilité.
CARE (Cloud Application Reliability Engineering) de HCLTech est une solution complète et globale répondant à tous les besoins en matière d’ingénierie de la fiabilité des sites et des plateformes. Cette solution couvre toutes les exigences de vos clients, de la mise en place de l’ingénierie de la fiabilité des sitesPRE à leur exploitation dans un environnement personnalisé.
Nos experts-conseils en ingénierie de la fiabilité des sites peuvent vous accompagner dans la mise en place de budgets d’erreur, SLI, SLO, observabilité et plusieurs autres principes essentiels pour des opérations fiables et résilientes.
Pour plus d’informations sur CARE, veuillez écrire à contact.hyc@hcltech.com


