Contact
Account Se connecter
Jump to section

L'ingénierie de la fiabilité des sites, qu'est-ce que c'est ?

Copier l'URL

L'ingénierie de la fiabilité des sites (SRE, Site Reliability Engineering) 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 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.

Dans ce contexte, la normalisation et l'automatisation sont deux composantes importantes du modèle SRE. Ici, les ingénieurs de la fiabilité des sites cherchent à améliorer et à automatiser les tâches liées à l'exploitation.

De cette manière, la SRE contribue à améliorer la fiabilité du système aujourd'hui et au fur et à mesure qu'il se développe.  

L'ingénierie de la fiabilité des sites aide les équipes qui effectuent la transition de l'exploitation informatique de l'approche traditionnelle vers l'approche cloud-native.

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. 

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.

Néanmoins, la SRE diffère du modèle DevOps, car elle s'appuie sur des ingénieurs de la fiabilité des sites, au sein de l'équipe de développement, qui disposent également d'une expérience en exploitation qui leur permet de résoudre les problèmes de communication et de workflow.

Un ingénieur de la fiabilité des sites doit ainsi posséder à la fois des compétences en développement et en exploitation, car ses responsabilités touchent aux 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. 

Lors de la création du code et de nouvelles fonctions, le modè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 applicationRed Hat® Ansible® Automation Platform est une plateforme complète et intégrée qui aide les équipes de SRE à automatiser pour favoriser la rapidité, la collaboration et la croissance, en assurant la sécurité et la prise en charge des fonctions techniques, opérationnelles et financières de l'entreprise. 

Cette solution permet notamment :

  • l'orchestration de l'infrastructure dans le cloud et sur site pour les instances, le routage, l'équilibrage des charges, les pare-feu et plus encore ; 
  • l'optimisation de l'infrastructure, y compris le dimensionnement correct des ressources cloud et l'ajout ou la suppression de ressources telles que le processeur et la mémoire vive (RAM), selon les besoins ; 
  • l'exploitation du cloud, y compris les déploiements d'applications avec des pipelines d'intégration et de distribution continues (CI/CD), les correctifs de systèmes d'exploitation et la maintenance ;
  • la continuité des activités, notamment le déplacement et la copie de ressources hors du cloud, la création et la gestion de politiques de sauvegarde, ainsi que la gestion des perturbations et des défaillances.
La SRE s'appuie également sur une base conçue pour le développement cloud-native. Les conteneurs Linux® 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 permet aux équipes de gérer plus efficacement les clusters qui exécutent des conteneurs Linux dans les clouds publics, privés ou hybrides.

En tant que plateforme Kubernetes d'entreprise qui prend en charge les initiatives de SRE, Red Hat® OpenShift® aide les équipes à mettre en œuvre une transformation de la culture et des processus qui modernise l'infrastructure informatique et aide les entreprises à mieux servir leurs clients et à atteindre leurs objectifs métier. 

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

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.

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.