Le développement de logiciels accélère et se complexifie, ce qui représente une source de stress pour les équipes ITOps. Le DevOps a gagné en popularité afin de lutter contre les workflows cloisonnés, les obstacles à la collaboration et le manque de visibilité. Si la création d’une culture DevOps a aidé les équipes à mieux collaborer et à livrer des logiciels fiables plus rapidement, les équipes DevOps n’incluent pas nécessairement une personne spécifiquement dédiée à l’élaboration de systèmes augmentant la fiabilité et les performances du site. C’est la mission de l’ingénieur en fiabilité des sites (SRE).
Le concept de SRE a été imaginé par Ben Treynor, un ingénieur de Google. Puis, peu de temps après la mise en œuvre de la SRE, Google a publié son célèbre e-book sur la SRE, qui a insufflé un puissant élan au mouvement dans l’industrie. Les ingénieurs en fiabilité des sites se situent au carrefour de l’informatique traditionnelle et du développement logiciel. Fondamentalement, les équipes SRE sont composées d’ingénieurs logiciels qui développent et implémentent des logiciels pour améliorer la fiabilité de leurs systèmes.
Nous allons donc commencer par définir les rôles et responsabilités de base d’un ingénieur en fiabilité des sites et voir comment la SRE peut considérablement améliorer la résilience de vos équipes, de vos processus et de votre technologie.
Selon les mots de Ben Treynor, la SRE est « ce qui se passe lorsque vous demandez à un ingénieur logiciel de concevoir une fonction d’exploitation ». Dans une configuration traditionnelle, où les opérations IT et les équipes de développement logiciel sont cloisonnées, les développeurs remettent leur code aux professionnels de l’IT. Ensuite, l’IT se charge du déploiement, de la maintenance et de toutes les responsabilités d’assistance associées au système en production. Heureusement, l’avènement du DevOps a conduit les développeurs à partager la responsabilité des systèmes en production, à prendre leur code en charge et à assumer des responsabilités d’astreinte.
Le DevOps a favorisé le partage de la responsabilité de la fiabilité de vos applications et de votre infrastructure. Certes, c’est un grand pas en avant, mais cela n’aide toujours pas les équipes à implémenter de manière proactive de la résilience dans leur système. De nombreuses équipes DevOps, même avec des boucles de feedback raccourcies et une meilleure collaboration, sont encore contraintes de mettre de nouveaux services non fiables en production à un rythme soutenu.
L’ingénierie de la fiabilité des sites offre un moyen de combler le fossé entre les développeurs et les opérations IT, même dans une culture DevOps. Il ne s’agit pas d’opposer SRE et DevOps, mais bien de conjuguer SRE et DevOps. La SRE s’apparente à une forme plus proactive de QA. Les ingénieurs en fiabilité des sites se consacreront à plein temps à la création de logiciels qui améliorent la fiabilité des systèmes en production. Ils résolvent les problèmes, prennent en charge les incidents et assument généralement des responsabilités d’astreinte.
La mise en place d’une équipe SRE présente de grands avantages pour les équipes ITOps et de développement. En effet, si la SRE peut renforcer la fiabilité des systèmes en production, elle va sans doute aussi aider les équipes IT, d’assistance et de développement à réduire le temps passé sur les demandes d’assistance et leur laisser plus de temps pour créer de nouvelles fonctionnalités et de nouveaux services.
Passons donc rapidement en revue les rôles et les responsabilités courants de l’ingénierie de la fiabilité des sites.
Les équipes SRE sont chargées de créer et de mettre en œuvre des services en amont pour aider l’IT et l’assistance dans leurs missions. Cela peut prendre diverses formes : ajustements, supervision et alertes, jusqu’aux modifications de code en production. Un ingénieur en fiabilité des sites peut être chargé de créer un outil maison pour résoudre les faiblesses de la livraison de logiciels ou de la gestion des incidents.
De la même façon, un ingénieur en fiabilité des sites peut s’attendre à passer du temps à résoudre des demandes d’assistance. Mais avec le perfectionnement de vos opérations SRE, vos systèmes deviendront plus fiables et vous observerez moins d’incidents critiques en production, ce qui se traduira par une baisse des demandes. Comme une équipe SRE intervient sur de nombreux aspects différents de l’organisation d’ingénierie et IT, elle peut être une excellente source de connaissances et contribuer à acheminer les problèmes vers les bonnes personnes et équipes.
La plupart du temps, les ingénieurs en fiabilité des sites doivent assumer des responsabilités d’astreinte. Dans la plupart des organisations, le rôle de SRE aura beaucoup à dire sur la manière dont l’équipe peut améliorer la fiabilité du système en optimisant les processus d’astreinte. Les équipes SRE vont apporter de l’automatisation et du contexte aux alertes, ce qui va améliorer la réponse collaborative en temps réel des intervenants d’astreinte. De plus, les ingénieurs en fiabilité des sites peuvent mettre à jour les runbooks, les outils et la documentation pour mieux préparer les équipes d’astreinte aux incidents futurs.
Les équipes SRE sont exposées aux systèmes à la fois en staging et en production, ainsi qu’à toutes les équipes techniques. Elles participent au développement de logiciels, à l’assistance, aux opérations IT et aux tâches d’astreinte, et accumulent ainsi une grande quantité de connaissances au fil du temps. Au lieu de restreindre ces connaissances à une équipe ou une personne, les ingénieurs en fiabilité des sites peuvent être chargés de documenter une grande partie de ce qu’ils savent. Grâce à la maintenance constante de la documentation et des runbooks, les équipes obtiennent les informations dont elles ont besoin au moment voulu.
Sans examen approfondi post-incident, vous n’avez aucun moyen d’identifier ce qui fonctionne ou non. Les équipes SRE doivent cultiver l’honnêteté des équipes et veiller à ce que toutes les personnes concernées (développeurs logiciels et experts IT) effectuent des examens post-incident, documentent leurs conclusions et prennent des mesures sur la base de ces enseignements. Ensuite, on confie souvent aux ingénieurs en fiabilité des sites des tâches de construction ou d’optimisation d’une partie du SDLC ou du cycle de vie des incidents, afin de renforcer la fiabilité de leur service.
Les rôles et les responsabilités de l’ingénierie de la fiabilité des sites sont essentiels à l’amélioration continue des équipes, des processus et des technologies au sein de toute organisation. Que votre équipe ait déjà adopté une culture DevOps à part entière ou que la transition en soit à ses premiers pas, la SRE offre de nombreux avantages en termes de vitesse et de fiabilité. La SRE se situe au carrefour des opérations IT, de l’assistance et de l’ingénierie logicielle. La SRE représente le mélange idéal de compétences pour resserrer la relation entre l’IT et les développeurs, ce qui se traduit par des boucles de feedback plus courtes, une meilleure collaboration et des logiciels plus fiables.
Catchpoint a récemment publié son Rapport SRE 2021 montrant que les ingénieurs en fiabilité des sites étaient parmi les employés les plus heureux dans le secteur du développement logiciel et de l’IT. Bien que les SRE ne puissent pas consacrer leur temps à créer de nouvelles fonctionnalités pour les clients, ils exercent constamment un impact sur l’expérience client. En fait, si vous cherchez un rôle conçu pour apporter un maximum de soutien au client, alors la SRE est faite pour vous.
L’ingénierie de la fiabilité des sites améliore non seulement la vie des clients, mais aussi, lorsqu’elle est bien implémentée, celle des équipes d’astreinte, des professionnels de l’IT et des développeurs logiciels. La SRE peut être l’un des rôles les plus gratifiants pour un ingénieur logiciel. Elle peut vous aider à mieux comprendre les difficultés de l’IT et de l’assistance, et ainsi faire de vous un meilleur développeur à l’avenir.
Découvrez comment nous avons ajouté la SRE à notre propre culture DevOps, renforçant de ce fait la fiabilité et la collaboration entre toutes nos équipes. Consultez notre Guide ultime de l’ingénierie de la fiabilité des sites pour comprendre comment cette discipline peut augmenter la fiabilité du système et générer rapidement de la valeur pour votre propre équipe.
Vous souhaitez adopter la visibilité de bout en bout pour vos systèmes et applications ? Essayez Splunk Observability Cloud gratuitement pendant 14 jours. Aucune carte de crédit demandée.
*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.
La plateforme Splunk élimine les obstacles qui séparent les données de l'action, pour donner aux équipes d'observabilité, d'IT et de sécurité les moyens de préserver la sécurité, la résilience et le pouvoir d'innovation de leur organisation.
Fondée en 2003, Splunk est une entreprise internationale. Ses plus de 7 500 employés, les Splunkers, ont déjà obtenu plus de 1 020 brevets à ce jour, et ses solutions sont disponibles dans 21 régions du monde. Ouverte et extensible, la plateforme de données Splunk prend en charge les données de tous les environnements pour donner à toutes les équipes d'une entreprise une visibilité complète et contextualisée sur l'ensemble des interactions et des processus métier. Splunk, une base solide pour vos données.