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.
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.
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.
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.
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.
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.
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.
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.
- 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é.
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.
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.
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.
Créez votre prochain plan de transformation SRE avec ServiceNow.