Qu'est-ce qu'un ingénieur en fiabilité des sites ?
Les ingénieurs en fiabilité des sites ont une connaissance approfondie de la technologie opérant le site Web ou l'application de leur entreprise. Ils comprennent également les besoins et les exigences de leurs clients.
Un ingénieur en fiabilité des sites applique les principes fondamentaux de l'informatique et de l'ingénierie logicielle à la conception et au développement de systèmes informatiques évolutifs, distribués et fiables. Ce terme, inventé par Google, fait référence à la gestion des opérations et traite les processus opérationnels avec la même rigueur appliquée aux problèmes logiciel. Cette discipline cherche à développer des systèmes logiciels à grande échelle pour fournir des solutions automatisées à des problèmes opérationnels complexes.
Pour faire simple, les ingénieurs en fiabilité des sites s'appuient sur un ensemble de pratiques de développement qui intègrent des aspects de l'informatique et de l'ingénierie logicielle dans les opérations afin d'améliorer le workflow quotidien, ainsi que la réactivité, le rendement et la fiabilité des systèmes. Ils sont essentiellement chargés de fournir, de protéger et de faire progresser les systèmes et services logiciels d'une entreprise.
Nous allons ici détailler les activités quotidiennes des ingénieurs en fiabilité des sites, la valeur qu'ils apportent aux équipes et aux entreprises DevOps, ainsi que leurs principales responsabilités. Nous verrons également comment mesurer la fiabilité d'un site et nous expliquerons la différence entre les ingénieurs en fiabilité des sites et les ingénieurs DevOps. Pour terminer, nous explorerons l'ingénierie de la fiabilité des sites en tant que choix de carrière.
Les ingénieurs en fiabilité des sites jonglent entre de nombreuses activités différentes, partageant leur temps entre les tâches d'administration système et la création de logiciels. En règle générale, ils gèrent plusieurs projets, configurent l'infrastructure et assistent à des réunions d'ingénierie.
Les tâches d'administration système comprennent habituellement le maintien de la fiabilité et des performances, la résolution des problèmes et des erreurs, l'automatisation des tâches, la réponse aux incidents et la gestion des responsabilités pendant les périodes de garde.
En ce qui concerne les tâches de développement, les ingénieurs en fiabilité des sites passent beaucoup de temps à créer des processus ou des méthodologies basés sur l'infrastructure qui servent aux ingénieurs logiciels de l'équipe de fiabilité du site ou dans des environnements interfonctionnels. Par exemple, ils peuvent développer un processus de surveillance 24 heures sur 24 des performances et de la latence des services.
Dans le cycle de développement, les ingénieurs en fiabilité des sites collaborent étroitement avec les chefs de produit et leurs équipes, en veillant à ce que la vision définie pour un produit soit compatible avec les exigences système non fonctionnelles, à savoir les performances, la latence, la disponibilité et la sécurité. Ils travaillent également avec les équipes d'ingénierie lors de la phase de staging (pré-production) du processus de compilation pour optimiser l'efficacité du processus de livraison.
En appliquant une approche rigoureuse d'ingénierie logicielle à l'administration du système, les ingénieurs en fiabilité des sites font la liaison entre les équipes de développement logiciel et les équipes des opérations. Ils accumulent et génèrent des informations importantes concernant les projets et les systèmes qu'ils gèrent. Ils les documentent de manière structurée et accessible. Ils fournissent un guide de directives et de procédures opérationnelles fiable, éliminant les tâches manuelles et la redondance. Les meilleurs ingénieurs en fiabilité des sites trouvent un équilibre entre le développement continu des produits et le maintien de la fiabilité pour les clients.
En appliquant rigoureusement les principes de l'ingénierie logicielle aux opérations informatiques, ils améliorent considérablement la fiabilité des applications logicielles d'une entreprise.
Un ingénieur en fiabilité des sites a pour mission de maintenir la fiabilité des systèmes. Cela consiste à mettre en place des réponses automatisées, rationalisées et efficaces en cas d'incident, tout en réduisant les erreurs humaines à grande échelle. Ils consacrent une grande partie de leur temps à identifier et résoudre les points de friction, à configurer les outils internes, ainsi qu'à définir et tester les seuils de performance des systèmes. Ils développent et supervisent également des pipelines d'ingénierie avancés pour garantir le bon fonctionnement des produits informatiques au quotidien. Ils travaillent de concert avec les équipes de développement, en adoptant une approche d'ingénierie logicielle qui leur permet de relever les défis opérationnels et d'améliorer la fiabilité des systèmes.
De manière générale, les ingénieurs en fiabilité des sites sont responsables de la performance, de la disponibilité, de la fiabilité, de l'efficacité, de la gestion des changements, ainsi que de la surveillance et de la gestion des incidents critiques d'un système. Parmi leurs autres missions figurent :-
-
La surveillance des indicateurs de niveau de service (SLI) et la définition des objectifs de niveau de service (SLO) : les ingénieurs en fiabilité des sites veillent à ce que les SLI soient adaptés pour garantir une utilisation optimale des ressources en réduisant les erreurs le plus possible. Ils définissent également des SLO pour évaluer des objectifs internes, tels que la haute disponibilité.
-
L'évaluation des risques et budgétisation des erreurs : les ingénieurs en fiabilité des sites sont chargés de fixer les objectifs de fiabilité des systèmes, tout en calculant l'exposition aux risques lors des lancements de nouveaux produits.
-
La surveillance des performances : la gestion des tickets, la journalisation et la configuration des alertes (qui impliquent différents niveaux d'intervention humaine) sont des tâches critiques dont les SRE ont la responsabilité.
-
La prévision de la demande et la planification des ressources : les projets nécessitent des évaluations minutieuses pour anticiper la demande future ainsi que les pannes et les situations d'urgence. Un ingénieur en fiabilité des sites collabore étroitement avec les chefs de produit pour assurer une planification efficace.
-
La collaboration : les ingénieurs en fiabilité des sites travaillent avec diverses équipes, en transmettant les bonnes pratiques et en étudiant les meilleures décisions en matière de fiabilité afin d'améliorer le développement des produits à travers les différents départements de l'entreprise.
-
La rédaction de rétrospectives : les rapports rétrospectifs permettent à l'équipe de tirer des enseignements des incidents afin d'éviter qu'ils ne se reproduisent.
La fiabilité d'un site est généralement évaluée sur trois axes principaux.
Tout d'abord, les indicateurs de niveau de services (SLI) sont utilisés pour mesurer l'utilisation du système, les ralentissements, les pannes, les erreurs, le trafic et plusieurs autres aspects. Ces indicateurs sont directement liés à l'expérience utilisateur : si les chiffres ne sont pas bons, la satisfaction du client en est affectée.
D'autre part, les objectifs de niveau de service (SLO) définissent le niveau cible de fiabilité pour un produit ou un service. Par exemple, si un SLI exige que la latence des requêtes soit inférieure à 500 ms au cours des 15 dernières minutes avec un 95e percentile, un SLO de 99e % nécessiterait que le SLI atteigne ce seuil 99 % du temps. Ces objectifs internes sont définis en accord avec l'équipe de fiabilité du site et les parties prenantes internes (développeurs et chefs de produit inclus).
Enfin, il y a l'accord de niveau de service (SLA). Il peut s'agir d'un accord implicite ou explicite. Le SLA est un accord entre l'entreprise et ses clients, qui précise les conséquences si l'entreprise ne respecte pas les niveaux de service promis. Il peut également inclure la budgétisation des erreurs, qui mesure le risque qu'un ingénieur en fiabilité des sites peut prendre pour fournir des services, tels que la maintenance et les améliorations, sans compromettre les dispositions de l'accord de niveau de service.
La différence entre les deux postes réside principalement dans les priorités : les SRE concentrent leurs efforts sur l'amélioration de la disponibilité et de la fiabilité des systèmes, tandis que les ingénieurs DevOps privilégient la rapidité et l'automatisation du développement et du déploiement.
Les ingénieries en fiabilité des sites sont tenus d'écrire et de déployer efficacement des logiciels, tout en garantissant la fiabilité de leur code et en innovant pour corriger les erreurs. En revanche, les ingénieurs DevOps se tournent vers l'automatisation des processus et la surveillance de chaque étape du cycle de vie du produit. Les ingénieurs en fiabilité des sites réduisent les risques en évaluant les redondances et en accélérant la croissance.
Pour devenir ingénieur en fiabilité des sites (SRE), un professionnel de la technologie doit avoir plusieurs années d'expérience et maîtriser un ou plusieurs langage(s) de programmation, tels que Python, Ruby ou Java. Il doit également avoir une expertise de l'écriture de scripts shell, savoir utiliser des systèmes de contrôle de version comme Git avec GitLab et maîtriser l'automatisation des tests continus et des pipelines de livraison (CI/CD).
En outre, les ingénieurs en fiabilité des sites doivent être familiarisés avec les bases de données SQL et NoSQL. Une expérience dans la conteneurisation, comme Docker et Kubernetes, est également très souhaitable.
L'ingénierie de la fiabilité des sites consiste à concevoir et développer des systèmes informatiques évolutifs, distribués et fiables. La journée de travail d'un ingénieur en fiabilité des sites est consacrée à l'exécution de tâches d'administration système et à la création de logiciels. En adoptant une approche d'ingénierie logicielle pour l'administration des systèmes, il fait la liaison entre le développement logiciel et les opérations informatiques.
Une carrière dans le domaine de l'ingénierie de la fiabilité des sites offre des opportunités professionnelles variées, gratifiantes et lucratives.
Lancez-vous dès maintenant
Découvrez comment la plateforme DevSecOps unifiée de GitLab peut aider votre équipe.