L'ingénieur de la fiabilité des sites remplit un rôle unique et son profil est celui d'un administrateur système, d'un développeur de logiciels avec des connaissances en exploitation ou autre poste en exploitation informatique avec des compétences en développement de logiciels.
Les équipes de SRE sont responsables du déploiement, de la configuration et de la surveillance du code, ainsi que des services en production (disponibilité, latence, gestion des modifications, intervention en cas d'urgence et gestion de la capacité).
Les équipes de SRE choisissent les nouvelles fonctions à lancer et établissent le calendrier, sur la base de contrats de niveau de service qui définissent la fiabilité requise du système en fonction d'indicateurs de niveau de service (SLI) et d'objectifs de niveau de service (SLO).
Un SLI mesure des aspects spécifiques des niveaux de service fournis. Les SLI clés comprennent la latence des requêtes, la disponibilité, le taux d'erreur et le débit du système. Un SLO est basé sur la valeur ou la plage de valeurs visée pour un niveau de service déterminé par le SLI.
Un SLO pour la fiabilité requise du système est alors basé sur une période d'indisponibilité jugée acceptable. Cette période d'indisponibilité est appelée budget d'erreur. Il s'agit du seuil maximal admissible d'erreurs et d'interruptions.
La SRE n'implique pas une fiabilité parfaite. En effet, les défaillances sont prévues et attendues.
Une fois établi, le budget d'erreur est à disposition des développeurs qui peuvent l'utiliser lors du lancement d'une nouvelle fonction. En se basant sur l'objectif de niveau de service et sur le budget d'erreur, l'équipe détermine alors si le lancement d'un produit ou d'un service est possible avec le budget d'erreur alloué.
Si un service s'exécute sans dépasser le budget d'erreur, les développeurs peuvent le lancer à tout moment. En revanche, si le système rencontre trop d'erreurs ou génère des temps d'arrêt plus longs que le maximum autorisé par le budget d'erreur, ils doivent s'assurer que ces erreurs ne dépassent plus le budget avant de procéder au lancement.
L'équipe de développement effectue des tests d'exploitation automatisés pour démontrer la fiabilité du système.
Les ingénieurs de la fiabilité des sites partagent leur temps entre les tâches liées à l'exploitation et d'autres projets. D'après les meilleures pratiques de SRE de Google, les ingénieurs de la fiabilité des sites ne doivent pas consacrer plus de 50 % de leur temps à l'exploitation (un système de surveillance doit être en place pour éviter tout dépassement).
Le reste du temps doit être alloué aux tâches de développement comme la création de fonctions, la mise à l'échelle du système et la mise en œuvre de l'automatisation.
Si les tâches d'exploitation sont trop nombreuses ou si les performances de certains services sont insuffisantes, leur exécution peut être réaffectée aux développeurs afin d'éviter qu'un ingénieur de la fiabilité des sites ne passe trop de temps sur l'exploitation d'une application ou d'un service.
L'automatisation représente une part importante du rôle de l'ingénieur de la fiabilité des sites. S'il rencontre plusieurs fois le même problème, il créera probablement une solution automatisée.
Le maintien de l'équilibre entre les tâches d'exploitation et de développement est une composante essentielle de la SRE.