Cette section examine les principes qui sous-tendent le mode de travail des équipes SRE, c’est-à-dire les modèles, les comportements et les sujets de préoccupation qui influencent le domaine général des opérations SRE.
Le premier chapitre de cette section, et le plus important à lire si vous voulez avoir une vue d’ensemble de ce que fait exactement le SRE et de la façon dont nous le concevons, est intitulé Embracing Risk. Il aborde le SRE sous l’angle du risque, de son évaluation, de sa gestion et de l’utilisation des budgets d’erreur pour fournir des approches neutres de la gestion des services.
Les objectifs de niveau de service constituent une autre unité conceptuelle fondamentale pour le SRE. Le secteur regroupe souvent des concepts disparates sous la bannière générale des accords de niveau de service, une tendance qui rend plus difficile une réflexion claire sur ces concepts. Service Level Objectives tente de démêler les indicateurs, les objectifs et les accords, examine comment le SRE utilise chacun de ces termes et fournit quelques recommandations sur la manière de trouver des mesures utiles pour vos propres applications.
L’élimination du travail est l’une des tâches les plus importantes du SRE et fait l’objet de Eliminating Toil. Nous définissons la pénibilité comme un travail opérationnel banal et répétitif n’apportant aucune valeur durable et dont l’échelle est linéaire avec la croissance du service.
Que ce soit chez Google ou ailleurs, la surveillance est un élément absolument essentiel pour faire ce qu’il faut en production. Si vous ne pouvez pas surveiller un service, vous ne savez pas ce qui se passe, et si vous ne savez pas ce qui se passe, vous ne pouvez pas être fiable. Lisez Monitoring Distributed Systems, pour obtenir des recommandations sur ce qu’il faut surveiller et comment le faire, et pour connaître les meilleures pratiques en matière d’implémentation.
Dans L’évolution de l’automatisation chez Google, nous examinons l’approche du SRE en matière d’automatisation et nous examinons quelques études de cas sur la façon dont le SRE a mis en œuvre l’automatisation, avec ou sans succès.
La plupart des entreprises traitent l’ingénierie des versions comme une réflexion après coup. Cependant, comme vous l’apprendrez dans la section Release Engineering, l’ingénierie des versions n’est pas seulement essentielle à la stabilité globale du système, car la plupart des pannes résultent de l’introduction d’un changement quelconque. C’est également le meilleur moyen de garantir la cohérence des versions.
Principe clé de toute ingénierie logicielle efficace, et pas seulement de l’ingénierie orientée fiabilité, la simplicité est une qualité qui, une fois perdue, peut être extraordinairement difficile à retrouver. Néanmoins, comme le dit le vieil adage, un système complexe qui fonctionne a nécessairement évolué à partir d’un système simple qui fonctionne. Simplicité, aborde ce sujet en détail.
Augmenter la vélocité des produits en toute sécurité est un principe fondamental pour toute organisation. Dans “Making Push On Green a Reality” [Kle14], publié en octobre 2014, nous montrons que le fait de retirer les humains du processus de publication peut paradoxalement réduire le labeur des SRE tout en augmentant la fiabilité des systèmes.