Account Connexion
Jump to section

La SRE (ingénierie de la fiabilité des sites), qu'est-ce que c'est ?

Copier l'URL

La SRE (Site Reliability Engineering ou ingénierie de la fiabilité des sites) est une approche d'ingénierie logicielle pour l'exploitation informatique. Les équipes de SRE utilisent des logiciels pour gérer des systèmes, résoudre des problèmes et automatiser des tâches liées à l'exploitation.

La SRE consiste à transférer certaines tâches effectuées par les équipes d'exploitation, souvent manuellement, aux ingénieurs ou aux équipes d'exploitation qui utilisent des logiciels et des outils d'automatisation pour résoudre les problèmes et gérer des systèmes de production. 

La SRE est une pratique utile pour créer des systèmes logiciels évolutifs et extrêmement fiables. Elle vous permet d'utiliser du code pour gérer des systèmes volumineux, une méthode plus évolutive et durable pour les administrateurs système qui gèrent des milliers, voire des centaines de milliers de machines. 

Le concept d'ingénierie de la fiabilité des sites provient des ingénieurs de Google, et de Ben Treynor Sloss en particulier. 

La SRE permet de trouver un équilibre entre le fait de lancer de nouvelles fonctions et d'assurer leur fiabilité pour les utilisateurs.

La normalisation et l'automatisation sont deux composantes importantes du modèle de SRE. Les ingénieurs en fiabilité de site doivent toujours chercher à améliorer et automatiser les tâches liées à l'exploitation.

La SRE permet ainsi d'améliorer la fiabilité d'un système à l'instant T, et au fur et à mesure de sa croissance. 

La SRE aide les équipes qui effectuent la transition entre l'approche traditionnelle et l'approche cloud-native de l'exploitation informatique.

L'ingénieur en fiabilité de site remplit un rôle unique et son profil est celui d'un développeur de logiciels avec des connaissances en exploitation, ou d'un administrateur système (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é).

La SRE permet de décider quelles nouvelles fonctions lancer et selon quel 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 fixé en fonction d'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 acceptées. 

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 de développement peut déterminer 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 en fiabilité de site 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, un ingénieur en fiabilité de site ne doit pas consacrer plus de 50 % de son 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 en fiabilité de site 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 en fiabilité de site. S'il rencontre plusieurs fois le même problème, il crée une solution automatisée. Cela lui permet également de ne pas consacrer plus de la moitié de sa charge de travail aux tâches d'exploitation. 

Le maintien de l'équilibre entre les tâches d'exploitation et de développement est une composante essentielle de la SRE. 

Le modèle DevOps est une approche de la culture informatique, de l'automatisation et de la conception de plateformes conçue pour accroître la valeur ajoutée et optimiser la réactivité des entreprises grâce à une distribution plus rapide et efficace des services. La SRE peut être considérée comme une pratique de DevOps.

Comme le DevOps, l'ingénierie de la fiabilité des sites est liée à la culture d'entreprise et aux relations entre les services. Les pratiques de SRE et de DevOps créent toutes deux un lien entre les équipes de développement et d'exploitation, ce qui leur permet de distribuer des services plus rapidement. 

La SRE et le modèle DevOps offrent des avantages similaires : accélération des cycles de développement d'applications, amélioration de la fiabilité et de la qualité des services, et gain de temps par application développée pour les équipes informatiques.

La particularité de la SRE est qu'elle s'appuie sur des ingénieurs en fiabilité de site, au sein de l'équipe de développement, qui disposent également d'une expérience en exploitation leur permettant de résoudre les problèmes de communication et de workflow.

Un ingénieur chargé de la fiabilité du site doit ainsi posséder à la fois des compétences en développement et en exploitation, car ses responsabilités touchent les deux domaines. 

La SRE aide les équipes DevOps dont les développeurs sont surchargés de tâches d'exploitation et pourraient profiter de talents disposant de compétences plus spécialisées dans ce domaine. 

En ce qui concerne le code et les nouvelles fonctions, le DevOps est axé sur le déroulement efficace du pipeline de développement, tandis que la SRE est davantage axée sur l'équilibre entre la fiabilité du site et la création de fonctions. 

Les plateformes d'applications modernes basées sur les conteneurs, Kubernetes et les microservices sont au cœur des pratiques DevOps, car elles permettent la distribution de services logiciels sécurisés et novateurs.

En savoir plus sur les pratiques DevOps et Red Hat Developer

La SRE s'appuie sur l'automatisation des tâches d'exploitation courantes et la standardisation du cycle de vie d'une application. Les conteneurs Linux® apportent à votre équipe la technologie sous-jacente nécessaire pour adopter une approche de développement d'applications cloud-native. Les conteneurs prennent en charge un environnement unifié pour le développement, la distribution, l'intégration et l'automatisation.

Kubernetes est un outil moderne pour automatiser l'exploitation des conteneurs Linux. Il vous permet de gérer simplement et efficacement les clusters qui exécutent des conteneurs Linux dans les clouds publics, privés ou hybrides.

De plus, avec la plateforme adaptée, vous pouvez tirer le meilleur parti des changements que vous avez apportés en matière de culture et de processus. Red Hat® OpenShift® est une plateforme Kubernetes d'entreprise idéale pour soutenir les projets de SRE.

Lectures recommandées

Étude de cas

Airbus développe ses compétences en DevOps lors d'un stage Red Hat Open Innovation Labs

Livre numérique

Le guide d'adaptation au changement du dirigeant informatique

Article d'analyste

Accélérer la transformation d’un monde post-COVID-19

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

ARTICLE

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Red Hat Open Innovation Labs

Stage intensif et spécialisé auprès d'experts Red Hat ayant pour objectif de vous former à l'utilisation d'une méthode agile et d'outils Open Source en vue de résoudre les problèmes métier de votre entreprise.

Red Hat Consulting

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources

Liste de contrôle

L'automatisation d'entreprise selon le modèle DevOps

Étude de cas

Airbus s'appuie sur le DevOps pour créer une plateforme lors d'un stage Open Innovation Labs

Illustration - mail

Ce type de contenu vous intéresse ?

Inscrivez-vous à notre newsletter Red Hat Shares.