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, ou 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 qu'effectuent souvent manuellement les équipes d'exploitation aux ingénieurs 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 standardisation 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é des systèmes aujourd'hui et à mesure qu'ils se développent. 

L'ingénierie de la fiabilité des sites aide les équipes qui passent d'une approche traditionnelle de l'exploitation informatique à une approche cloud-native.

Les ingénieurs de la fiabilité des sites remplissent un rôle unique qui nécessite une expérience en administration système, une expérience en développement de logiciels renforcée par des compétences en exploitation, ou une expérience en exploitation informatique renforcée par 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 (SLA) 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 donc 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 de l'équipe de développement qui peut 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, l'équipe de développement peut 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, elle doit 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 à l'équipe de développement 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 des ingénieurs de la fiabilité des sites. S'ils rencontrent plusieurs fois le même problème, ils créeront 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 mise en œuvre du 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 modèles SRE et DevOps créent tous 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 leur permettant de résoudre les problèmes de communication et de workflows.

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 comptant des développeurs surchargés de tâches d'exploitation qui pourraient profiter de talents aux compétences plus spécialisées dans ce domaine. 

Lors de la création du code et de nouvelles fonctions, le modèle DevOps s'axe sur le déroulement efficace du pipeline de développement, tandis que la SRE s'axe davantage 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.

Apprenez-en plus à propos du DevOps sur Red Hat Developer

L'ingénierie de plateforme et l'ingénierie de la fiabilité des sites (SRE) sont deux pratiques qui visent à créer des systèmes et à en assurer le bon fonctionnement. Elles se différencient par leurs priorités. L'ingénierie de la fiabilité des sites se concentre sur les équipes d'exploitation informatique. Elle les aide à utiliser des logiciels pour gérer des systèmes, résoudre des problèmes et automatiser des tâches liées à l'exploitation.

L'ingénierie de plateforme, quant à elle, s'intéresse davantage aux équipes de développement. Elle les aide à créer des plateformes pour gérer des systèmes, résoudre des problèmes et automatiser des tâches liées au développement. 

La SRE s'appuie sur l'automatisation des tâches d'exploitation courantes et la standardisation du cycle de vie des applications. Red Hat® Ansible® Automation Platform est une plateforme complète et intégrée qui aide les équipes de SRE à automatiser les processus 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 de charge, 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.

Plateforme Kubernetes d'entreprise qui soutient les initiatives de SRE, Red Hat® OpenShift® aide les équipes à transformer la culture et les processus afin de moderniser l'infrastructure informatique et d'aider 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