Qu'est-ce que l'ingénierie de fiabilité du site ?

L'ingénierie de fiabilité du site (SRE) consiste à utiliser des outils logiciels pour automatiser les tâches d'infrastructure informatique telles que la gestion du système et la surveillance des applications. Les entreprises utilisent SRE pour garantir la fiabilité de leurs applications logicielles malgré les mises à jour fréquentes des équipes de développement. Le SRE améliore particulièrement la fiabilité des systèmes logiciels évolutifs, car la gestion d'un grand système à l'aide d'un logiciel est plus durable que la gestion manuelle de centaines de machines. 

Pourquoi l'ingénierie de fiabilité du site est-elle importante ?

La fiabilité du site décrit la stabilité et la qualité de service qu'offre une application après avoir été mise à la disposition des utilisateurs finaux. La maintenance logicielle affecte parfois la fiabilité des logiciels si des problèmes techniques passent inaperçus. Par exemple, lorsque les développeurs apportent de nouvelles modifications, elles peuvent avoir un impact involontaire sur l'application existante et provoquer son blocage dans certains cas d'utilisation.

Voici quelques avantages des pratiques d'ingénierie de fiabilité du site (SRE).

Collaboration améliorée

SRE améliore la collaboration entre les équipes de développement et d'exploitation. Les développeurs doivent souvent apporter des modifications rapides à une application pour publier de nouvelles fonctionnalités ou corriger des bogues critiques. D'autre part, l'équipe des opérations doit assurer une prestation de services transparente. Par conséquent, l'équipe des opérations utilise les pratiques de SRE pour suivre de près chaque mise à jour et répondre rapidement à tout problème qui survient en raison de modifications.

Amélioration de l'expérience client

Les entreprises utilisent un modèle de SRE pour s'assurer que les erreurs logicielles n'ont pas d'impact sur l'expérience client. Par exemple, les équipes logicielles utilisent les outils de SRE pour automatiser le cycle de vie du développement logiciel. Cela réduit les erreurs, ce qui signifie que l'équipe peut donner la priorité au développement de nouvelles fonctionnalités par rapport aux corrections de bogues.

Planification des opérations améliorée

 Les équipes de SRE reconnaissent qu'il existe un risque réaliste de défaillance du logiciel. Par conséquent, les équipes planifient la réponse appropriée aux incidents afin de minimiser l'impact des temps d'arrêt sur l'entreprise et les utilisateurs finaux. Elle peut également mieux estimer le coût des temps d'arrêt et comprendre l'impact de tels incidents sur les opérations métier. 

Quels sont les principes clés de l'ingénierie de fiabilité du site ?

Voici quelques principes clés de l'ingénierie de fiabilité du site (SRE).

Surveillance des applications

Les équipes de SRE reconnaissent que les erreurs font partie du processus de déploiement logiciel. Au lieu de rechercher une solution parfaite, elles surveillent les performances des logiciels en termes de contrats de niveau de service (SLA), d'indicateurs de niveau de service (SLI) et d'objectifs de niveau de service (SLO). Elles observent et surveillent les métriques de performances après le déploiement de l'application dans des environnements de production. 

Mise en œuvre graduelle des modifications

Les pratiques de SRE encouragent la publication de modifications fréquentes, mais mineures, pour maintenir la fiabilité du système. Les outils d'automatisation de SRE utilisent des processus cohérents, mais reproductibles, pour effectuer les opérations suivantes :

  • Réduire les risques liés aux modifications
  • Fournir des boucles de rétroaction pour mesurer les performances du système
  • Augmenter la vitesse et l'efficacité de la mise en œuvre

Automatisation pour améliorer la fiabilité

La SRE a recours à des stratégies et à des processus qui intègrent les principes de fiabilité à chaque étape du pipeline de livraison. Voici quelques stratégies permettant de résoudre automatiquement les problèmes :

  • Développer des barrières de qualité basées sur des objectifs de niveau de service pour détecter les problèmes plus tôt
  • Automatiser des tests de build à l'aide d'indicateurs de niveau de service
  • Prendre des décisions architecturales qui garantissent la résilience du système dès le début du développement du logiciel

Qu'est-ce que l'observabilité dans l'ingénierie de fiabilité du site ?

L'observabilité est un processus qui prépare l'équipe logicielle aux incertitudes lors de la mise en service du logiciel pour les utilisateurs finaux. Les équipes d'ingénierie de fiabilité du site (SRE) utilisent des outils pour détecter les comportements anormaux dans le logiciel et, plus important encore, collecter des informations qui aident les développeurs à comprendre la cause du problème. L'observabilité implique la collecte des informations suivantes à l'aide des outils de SRE. 

mesures 

Les métriques sont des valeurs quantifiables qui reflètent les performances d'une application ou l'état du système. Les équipes de SRE utilisent des métriques pour déterminer si le logiciel consomme trop de ressources ou s'il se comporte de manière anormale.

Journaux

Le logiciel de SRE génère des informations détaillées et horodatées appelées journaux en réponse à des événements spécifiques. Les ingénieurs logiciels utilisent des journaux pour comprendre la chaîne d'événements à l'origine d'un problème particulier. 

Traces 

Les traces sont des observations du chemin de code d'une fonction spécifique dans un système distribué. Par exemple, le paiement d'un panier de commande peut impliquer les opérations suivantes :

  • Comptabilisation du prix avec la base de données
  • Authentification auprès de la passerelle de paiement
  • Soumission des commandes aux fournisseurs

Les traces se composent d'un identifiant, d'un nom et d'une heure. Ils aident les développeurs logiciels à détecter les problèmes de latence et à améliorer les performances logicielles. 

Qu'est-ce que la surveillance dans l'ingénierie de fiabilité du site ?

La surveillance est un processus qui consiste à observer des métriques prédéfinies dans une application. Les développeurs décident quels paramètres sont essentiels pour déterminer l'état de l'application et les définissent dans des outils de surveillance. Les équipes d'ingénierie de fiabilité du site (SRE) collectent des informations critiques qui reflètent les performances du système et les visualisent sous forme de graphiques.

Dans la SRE, les équipes logicielles surveillent ces mesures pour mieux comprendre la fiabilité du système.

Latence 

La latence décrit le délai selon lequel l'application répond à une demande. Par exemple, l'envoi d'un formulaire sur un site web prend trois secondes avant de diriger les utilisateurs vers une page web d'accusé de réception. 

Trafic

Le trafic mesure le nombre d'utilisateurs qui accèdent simultanément à votre service. Il aide les équipes logicielles à budgétiser les ressources informatiques en conséquence afin de maintenir un niveau de service satisfaisant pour tous les utilisateurs.

Erreurs

Une erreur est une condition selon laquelle l'application ne fonctionne pas ou ne fournit pas les résultats escomptés. Par exemple, lorsqu'une page web ne se charge pas ou qu'une transaction n'est pas effectuée, les équipes de SRE utilisent des outils logiciels pour suivre automatiquement les erreurs dans l'application et y répondre. 

Saturation

La saturation indique la capacité en temps réel de l'application. Un niveau élevé de saturation entraîne généralement une dégradation des performances. Les ingénieurs en fiabilité du site surveillent le niveau de saturation et s'assurent qu'il est inférieur à un certain seuil. 

Quels sont les indicateurs clés pour l'ingénierie de la fiabilité du site ?

Les équipes d'ingénierie de fiabilité du site (SRE) mesurent la qualité de la prestation de services et la fiabilité à l'aide des métriques suivantes 

Objectifs de niveau de service

Les objectifs de niveau de service (SLO) sont des objectifs spécifiques et quantifiables que vous êtes sûr que le logiciel peut atteindre à un coût raisonnable par rapport à d'autres indicateurs, tels que les suivants : 

  • Temps de disponibilité ou durée de fonctionnement d'un système
  • Débit du système
  • Sortie du système
  • Le taux de téléchargement ou la vitesse de chargement de l'application

Un SLO promet la livraison au client via le logiciel. Par exemple, vous définissez un SLO de temps de disponibilité de 99,95 % pour l'application de livraison de nourriture de votre entreprise.

Indicateurs de niveau de service

Les indicateurs de niveau de service (SLI) sont les mesures réelles de la métrique définie par un SLO. Dans des situations réelles, vous pouvez obtenir des valeurs qui correspondent ou diffèrent du SLO. Par exemple, votre application est opérationnelle 99,92 % du temps, ce qui est inférieur au SLO promis. 

Contrats de niveau de service

Les contrats de niveau de service (SLA) sont des documents juridiques qui indiquent ce qui se passerait lorsqu'un ou plusieurs SLO ne sont pas respectés. Par exemple, le SLA indique que l'équipe technique résoudra le problème de votre client dans les 24 heures suivant la réception d'un rapport. Si votre équipe ne parvient pas à résoudre le problème dans le délai imparti, vous pourriez être dans l'obligation de rembourser le client.

Budgets d'erreur

Les budgets d'erreur constituent la tolérance de non-conformité pour le SLO. Par exemple, un temps de disponibilité de 99,95 % dans le SLO signifie que le temps d'arrêt autorisé est de 0,05 %. Si le temps d'arrêt du logiciel dépasse le budget d'erreur, l'équipe logicielle consacre toutes les ressources et toute l'attention nécessaires à la stabilisation de l'application.

Comment fonctionne l'ingénierie de fiabilité du site ?

L'ingénierie de fiabilité du site (SRE) implique la participation d'ingénieurs en fiabilité du site dans une équipe logicielle. L'équipe SRE définit les indicateurs clés pour la SRE et crée un budget d'erreur déterminé par le niveau de tolérance au risque du système. Si le nombre d'erreurs est faible, l'équipe de développement peut publier de nouvelles fonctionnalités. Toutefois, si les erreurs dépassent le budget d'erreur autorisé, l'équipe suspend les nouvelles modifications et résout les problèmes existants.

Par exemple, un ingénieur en fiabilité du site utilise un service pour surveiller les métriques de performances et détecter les comportements anormaux des applications. En cas de problème avec l'application, l'équipe de SRE adresse un rapport à l'équipe d'ingénierie logicielle. Les développeurs corrigent les cas signalés et publient l'application mise à jour.

DevOps

Le DevOps est une culture logicielle qui brise les frontières traditionnelles entre les équipes de développement et d'exploitation. Avec DevOps, les développeurs et les ingénieurs d'exploitation ne travaillent plus en silos. Au lieu de cela, ils utilisent des outils logiciels pour améliorer la collaboration et suivre le rythme rapide des mises à jour logicielles.

Comparaison entre SRE et DevOps

La SRE est la mise en œuvre pratique de DevOps. DevOps fournit la base philosophique de ce qui doit être fait pour maintenir la qualité des logiciels dans un délai de développement de plus en plus court. L'ingénierie de la fiabilité du site offre les réponses pour que DevOps soit fructueux. La SRE veille à ce que l'équipe DevOps trouve le juste équilibre entre rapidité et stabilité. 

Quelles sont les responsabilités d'un ingénieur en fiabilité du site ?

Un ingénieur en fiabilité du site est un expert informatique qui utilise des outils d'automatisation pour surveiller et observer la fiabilité des logiciels dans l'environnement de production. Il a également de l'expérience dans la recherche de problèmes au niveau des logiciels et de l'écriture de codes pour les résoudre. Il s'agit généralement d'anciens administrateurs système ou d'ingénieurs d'exploitation possédant de bonnes compétences en codage. Voici quelques responsabilités en matière de fiabilité du site.

Opérations

Les ingénieurs chargés de la fiabilité du site consacrent jusqu'à la moitié de leur temps aux travaux d'exploitation. Cela inclut plusieurs tâches, telles que les suivantes : 

  • Réponse aux incidents d'urgence
  • Gestion des modifications
  • Gestion d'infrastructure informatique

Les ingénieurs utilisent les outils SRE pour automatiser plusieurs tâches opérationnelles et accroître l'efficacité de l'équipe.

Prise en charge du système

Les ingénieurs en fiabilité du site travaillent en étroite collaboration avec l'équipe de développement pour créer des fonctionnalités et stabiliser les systèmes de production. Ils créent un processus de SRE pour l'ensemble de l'équipe logicielle et sont disponibles pour prendre en charge les problèmes de remontée. Plus important encore, les équipes chargées de la fiabilité du site fournissent des procédures documentées au support client pour l'aider à traiter efficacement les réclamations. 

Amélioration des processus

Les ingénieurs en fiabilité du site améliorent le cycle de vie du développement logiciel en effectuant des examens post-incident. L'équipe de SRE documente tous les problèmes logiciels et leurs solutions respectives dans une base de connaissances partagée. Cela permet à l'équipe logicielle de répondre efficacement à des problèmes similaires à l'avenir. 

Quels sont les outils courants d'ingénierie de fiabilité du site ?

Les équipes d'ingénierie de fiabilité du site (SRE) utilisent différents types d'outils pour faciliter la surveillance, l'observation et la réponse aux incidents. 

Orchestrateur de conteneurs 

Les développeurs de logiciels utilisent un orchestrateur de conteneurs pour exécuter des applications conteneurisées sur différentes plateformes. Les applications conteneurisées stockent leurs fichiers de code et les ressources associées dans un seul package appelé conteneur. Par exemple, les ingénieurs logiciels utilisent Amazon Elastic Kubernetes Service (Amazon EKS) pour exécuter et mettre les applications cloud à l'échelle. 

Outils de gestion sur appel 

Les outils de gestion sur appel sont des logiciels qui permettent aux équipes de SRE de planifier, d'organiser et de gérer le personnel d'assistance qui traite les problèmes logiciels signalés. Les équipes de SRE utilisent le logiciel pour s'assurer qu'il y a toujours une équipe d'assistance en attente afin de recevoir des alertes en temps opportun sur les problèmes logiciels. 

Outils de réponse aux incidents 

Les outils de réponse aux incidents garantissent un canal de remontée clair pour les problèmes logiciels détectés. Les équipes de SRE utilisent des outils de réponse aux incidents pour catégoriser la gravité des cas signalés et les traiter rapidement. Les outils peuvent également fournir des rapports d'analyse post-incident pour éviter que des problèmes similaires ne se reproduisent. 

Outils de gestion de la configuration

Les outils de gestion de la configuration sont des logiciels qui automatisent le flux de travail logiciel. Les équipes de SRE utilisent ces outils pour supprimer les tâches répétitives et gagner en productivité. Par exemple, les ingénieurs en fiabilité du site utilisent AWS OpsWorks pour configurer et gérer automatiquement les serveurs dans les environnements AWS. 

Comment AWS contribue-t-il à l'ingénierie de fiabilité du site ?

 

Les services de gestion et de gouvernance AWS fournissent les outils nécessaires aux équipes logiciel pour créer, mettre à l'échelle et déployer des applications distribuées sans compromettre la fiabilité du système. L'équipe d'ingénierie de fiabilité des sites (SRE) utilise divers services de gestion et de gouvernance AWS pour surveiller et gérer AWS et les ressources informatiques sur site :

  • AWS Service Catalog permet aux équipes de SRE de cataloguer, de gérer et de déployer rapidement des services informatiques.
  • AWS Systems Manager propose un centre de gestion centralisé permettant aux ingénieurs de fiabilité du site d'obtenir des informations opérationnelles sur les ressources informatiques logicielles.
  • AWS Proton est un outil de gestion automatisé permettant de déployer des applications conteneurisées et sans serveur.

Lancez-vous dans l'ingénierie de fiabilité du site sur AWS en créant un compte AWS dès aujourd'hui.

Prochaines étapes sur AWS

Consultez d\’autres ressources concernant le produit
En savoir plus sur l\'ingénierie de la fiabilité des sites dans AWS 
Créer un compte gratuit

Obtenez un accès instantané à l'offre gratuite AWS.

S'inscrire 
Commencez à créer sur la console

Commencez à créer avec l\'ingénierie de la fiabilité des sites sur la console de gestion AWS.

Se connecter