Qu’est-ce que le SRE (Site Reliability Engineering, ou ingénierie pour la fiabilité des sites) ?

L’ingénierie pour la fiabilité des sites consiste à utiliser des processus opérationnels et à les affecter à l’équipe d’ingénierie logicielle pour l’automatisation.

Les équipes IT cherchent constamment à adopter des méthodologies SRE. L’ingénierie pour la fiabilité des sites confie les pratiques opérationnelles aux ingénieurs logiciels pour l’automatisation des tâches humaines, la résolution des problèmes et la gestion des systèmes. Une équipe SRE est responsable de la gestion du changement, de l’intervention d’urgence, de la surveillance, de la disponibilité, de la performance, de la latence, de l’efficacité et de la planification de la capacité des services, généralement via l’écriture de logiciels pour l’automatisation des processus.

Le SRE est un excellent atout pour la fiabilité des logiciels et l’évolutivité, car les systèmes peuvent être gérés par code, pour un équilibre entre la fiabilité des produits et de leurs fonctionnalités et le lancement de nouveaux produits et fonctionnalités.

On doit le terme « SRE » à Ben Treynor Sloss de Google

Ben Treynor Sloss de Google est le cerveau derrière le concept de SRE. Il le décrit avec justesse comme étant « ce qui se passe lorsqu’un ingénieur logiciel est chargé de ce qui était autrefois appelé les opérations ». Le concept est né après l’observation des conflits entre les équipes des opérations, chargées de s’assurer que les fonctionnalités ne posent aucun problème ou ne gênent pas les utilisateurs finaux, et les équipes de développement, dont le rôle est de développer de nouvelles fonctionnalités et de les lancer dès qu’elles sont prêtes. Le SRE est un rapprochement entre les deux.

Une équipe d’ingénieurs Google a même écrit un livre sur le SRE

Google a publié un livre sur le SRE, disponible gratuitement en ligne, qui offre une analyse approfondie du rôle du SRE et propose de bonnes pratiques d’exécution. Les parties II et III, relatives aux principes et aux pratiques (respectivement), méritent d’être relevées.

Principes SRE : voici les principes fondamentaux du SRE selon Google :

  • Prise de risque : propose des approches neutres de la gestion des services en mettant en place des budgets d’erreurs.
  • Objectifs de niveau de service : fournit des recommandations d’indicateurs dissociés des accords et examine la façon dont le SRE utilise les termes.
  • Élimination des efforts inutiles : écarter les tâches banales et répétitives sans valeur ajoutée.
  • Surveillance des systèmes distribués : pour des raisons de fiabilité, toujours faire en sorte de savoir ce qui se passe au sein de l’entreprise.
  • Ingénierie des versions : tenir compte des versions pour s’assurer qu’elles sont cohérentes et ne sont pas à l’origine de pannes.
  • Simplicité : un système trop complexe peut réduire la fiabilité et devenir difficile à ramener à un environnement plus simple.

Pratiques SRE : les équipes SRE exécutent des systèmes connexes pour les utilisateurs externes ou internes et sont responsables des services. Les éléments indispensables au bon fonctionnement des services incluent : la planification de la capacité, la résolution des causes premières des pannes et le développement de systèmes de surveillance. Voici la hiérarchie d’un service fiable selon Google :

  • Produit : le haut de la hiérarchie de fiabilité, qui indique qu’un produit est viable et fiable.
  • Développement : travail d’ingénierie logicielle et de conception de systèmes au sein de l’entreprise.
  • Planification de la capacité : l’équilibrage de charge garantit que les capacités mises en place sont utilisées correctement.
  • Procédures de test + mise sur le marché : après avoir compris l’origine du problème, il faut l’enrayer activement. Tests rigoureux des produits avant leur mise sur le marché.
  • Analyse à froid/analyse de la cause première : instauration d’une culture sans blâme et résolution des problèmes afin d’éviter la récurrence des incidents.
  • Réponse aux incidents : implication, contact ininterrompu avec les systèmes, dépannage efficace et planification soigneuse avant les faits.
  • Surveillance : prise en charge des problèmes avant que l’utilisateur final ne les remarque.
What-is-AIOps-1

L’excellence du SRE nécessite de l’expérience

Il est préférable que le rôle d’ingénieur pour la fiabilité des sites soit occupé par une personne ayant une expérience logicielle à son actif. Ce n’est certainement pas un poste de débutant. Une bonne exécution du SRE nécessite une maîtrise parfaite de l’ingénierie logicielle et une compréhension d’un système à grande échelle et complexe.

Le SRE est une philosophie

Un ingénieur pour la fiabilité des sites doit avoir une vision des choses adaptée à son poste. Des compétences techniques sont nécessaires, mais la compréhension conceptuelle des opérations est essentielle. Il est important que le SRE soit fondé sur des processus de développement logiciel traditionnels, mais il est également très important de bien comprendre les processus de l’entreprise et de faire progresser un système fiable.

Le SRE doit être un catalyseur du changement

La fiabilité doit être de la responsabilité de tous les membres de l’organisation, et pour cela, ils doivent appliquer les principes de base du SRE. Attribuez un modèle de fiabilité à chaque équipe et prenez le temps qu’il faut pour discuter de la manière dont la fiabilité peut s’intégrer à chaque équipe et profiter à tous.

Rôles et responsabilités de l’ingénieur pour la fiabilité des sites (SRE)

Le feu vert est donné aux lancements en fonction des performances du produit à l’instant T : en général, les applications ne sont pas à jour en permanence. Le rôle de l’équipe SRE est d’élaborer un accord sur les niveaux de service afin de définir le système et la manière dont il sera utilisé pour les utilisateurs finaux. Un accord sur les niveaux de service doit toujours contenir un budget d’erreurs, autrement dit un seuil maximal de pannes et d’erreurs.

Les ingénieurs SRE savent coder

Certaines personnes font partie à la fois de l’équipe de développeurs et de l’équipe SRE et ne peuvent donc pas travailler pour les deux équipes en même temps. Le système s’auto-régule pour éviter tout conflit entre les développeurs et les ingénieurs SRE dû à un manque de personnel. Les ingénieurs SRE sont également capables de coder et de développer, ce qui leur permet de travailler tout aussi bien avec l’équipe de développeurs.

Les ingénieurs SRE peuvent passer d’un projet à l’autre, car le SRE crée un fort sentiment de motivation et de dévouement qui permet aux membres d’équipe de poursuivre leurs objectifs personnels.

Rôles et responsabilités communs des ingénieurs pour la fiabilité des sites

  • Création de logiciels pour aider les opérations et les équipes
  • Résolution des problèmes d’escalade
  • Optimisation des processus d’astreinte
  • Documentation des connaissances de l’équipe
  • Examens post-incident

Les ingénieurs SRE sont parfaitement compétents pour se charger des opérations IT, de l’ingénierie logicielle et du support. Cela permet de créer une base solide et des relations étroites entre les équipes, contribuant ainsi aux boucles de feedback, à la collaboration et à la fiabilité.

Des experts en fiabilité des sites peuvent vous aider à adopter le SRE à votre niveau

Les ingénieurs SRE sont à l’affût des besoins de l’entreprise dans son ensemble afin de guider les différentes équipes vers un objectif unique.

L’automatisation est fondamentale pour le SRE

Une grande partie du rôle du SRE consiste à éliminer les inefficacités et à identifier les éléments faciles à automatiser. Les tâches chronophages peuvent être éliminées et l’efficacité peut être augmentée sans nécessiter beaucoup de travail manuel.

Le SRE n’est pas réservé aux entreprises technologiques

Les pratiques du SRE ne s’appliquent pas uniquement au secteur de la technologie. Il est possible de mettre en place une culture de l’ingénierie pour la fiabilité des sites dans le commerce électronique, le service client et la production industrielle.

Le DevOps est une méthode permettant de créer et de fournir des logiciels de qualité, combinant le développement et les opérations de logiciels avec l’intention de fusionner les rôles des opérations et des développeurs. L’ingénieur SRE a tendance à être davantage axé sur le développement plutôt que sur le côté opérationnel des DevOps.

En savoir plus sur les DevOps
Offrez des opérations modernes aux équipes DevOps et SRE

Les conteneurs Linux peuvent fournir la technologie nécessaire pour un développement cloud natif, car ils prennent en charge l’unification de l’environnement pour l’intégration, l’automatisation, le développement et la distribution. Kubernetes peut automatiser les conteneurs Linux nécessaires.

Il n’existe pas un ensemble d’outils unique pour le SRE. Cependant, il est essentiel de créer des fonctions SRE au sein d’une entreprise en conjonction avec l’automatisation à des fins d’évolutivité et de reproductibilité.

ServiceNow offre une valeur ajoutée accrue en reliant le travail de plusieurs équipes, en enregistrant leurs microservices, en corrélant les données observables, en offrant des mesures de fiabilité à portée de main, en automatisant les changements et en anticipant les défaillances, tout en conservant vos outils existants intacts.

Des fonctionnalités qui évoluent avec votre activité

Créez votre prochain plan de transformation SRE avec ServiceNow.