Les entreprises tech ont un besoin permanent de davantage de stabilité, de fiabilité, de performance et d’évolutivité pour leurs produits. Une condition sine qua none pour rester compétitif et de coller aux attentes du marché. Les termes DevOps et SRE sont ceux qui reviennent le plus souvent lorsque l’on parle de développement avec des entreprises tech et des experts IT. Pratiques préconisées et plébiscitées de toute part, ces deux notions revêtent des enjeux identiques pour certains, différents pour d’autres. S’il est peu évident de définir de manière formelle ou universelle ces deux concepts, il convient de faire la lumière sur leurs tenants, leurs différences et leurs points communs.
SRE et DevOps : les fondements de ces deux approches
Pour rappel, DevOps est né de la contraction de Dev (désignant les développeurs, les faiseurs de code) et Ops (opérateurs ou administrateurs IT) et consiste à faire collaborer étroitement ces deux univers, en brisant au passage traditionnels silos dans lesquels ces 2 profils évoluaient auparavant. Dans le prolongement de la méthodologie Agile, le DevOps est surtout un état d’esprit, une philosophie ou encore une culture qui affecte le plan organisationnel et la communication entre les collaborateurs.
Dans un schéma DevOps, matérialisé habituellement par une plateforme, les développeurs et administrateurs unifient leurs objectifs au quotidien pour plus d’efficacité et de flexibilité dans la production. Les deux profils sont alors impliqués dans chaque étape de ladite production, de la détermination du besoin au déploiement, en passant par le développement proprement dit, la livraison et les tests.
La Site Reliability Engineering (SRE) ou ingénierie de fiabilité des sites dans la langue de Molière est une approche qui a pour objectif de gérer des systèmes de production et d’en résoudre les problèmes grâce une approche basée sur l’ingénierie logicielle. Certains la décrivent comme « le sysadmin des temps modernes » ou encore « le nouveau DevOps », mais on ne saurait valider ces illustrations tant elles sont incomplètes et incorrectes dans une certaine mesure.
La SRE permet aux administrateurs système de gérer des milliers de machines, voire plus. Il s’agit d’automatiser et de normaliser les tâches d’exploitation en faisant ce qui est techniquement nécessaire pour un niveau de fiabilité extrêmement élevé. Tout au long de la durée de vie du produit, la SRE assure le maintien de cette fiabilité, même s’il y a régulièrement ajout de nouvelles fonctionnalités.
L’approche SRE a été développée par Google dès 2003 et est devenue un domaine à part entière pour toute organisation IT désireuse de proposer une plateforme stable et fiable au gré des livraisons régulières ou en continu. Ben Treynor, l’homme à qui l’on doit l’équipe SRE de la firme de Mountain View explique la SRE comme la pratique idoine lorsqu’une équipe de développeurs se voit attribuer des tâches d’administration.

Les différences entre SRE et DevOps
Deux poids, deux mesures, le SRE et le DevOps sont fondamentalement différents. La première grande différence concerne le fait que le DevOps est une approche culturelle, non définie pas des règles détaillées ou des méthodes précises. C’est l’état d’esprit que l’on peut définir de manière exacte, puisque les collaborateurs travaillant suivant le modèle DevOps peuvent travailler ensemble de manière différente d’une entreprise à une autre. Ce n’est pas le cas de la SRE qui est une pratique plus spécifique.
Le DevOps se base sur l’élimination des obstacles ou freins à l’automatisation et à la production, en se délestant notamment des silos dans lesquels évoluaient les Devs et les Ops. Et vise le déploiement rapide et la livraison continus. Les profils DevOps peuvent avoir diverses responsabilités.
Le SRE se concentre sur des points plus précis comme la sécurité, les délais et les problèmes imprévus dans la gestion des systèmes de production. Il s’agit surtout de résoudre les différents incidents auxquels l’organisation peut faire face pour que les équipes puissent se concentrer continuellement sur le développement des fonctionnalités et l’atteinte des objectifs.
SRE et DevOps, dans le même bateau ?
Malgré ces différences significatives, ces deux notions possèdent de nombreux points communs. Pour qu’ils soient efficaces, les deux exigent la suppression des barrières organisationnelles. Les avantages sont les mêmes pour le SRE et le DevOps, à savoir la rapidité du cycle de développement, la hausse de la qualité et de la fiabilité des produits.
Un profil SRE fait partie de l’équipe de développement (Devs) et doit disposer d’expériences en exploitation ou administration (Ops) pour être réellement en mesure de résoudre les différents problèmes (workflow, communication, etc.). Autrement dit, les ingénieurs chargés de la fiabilité ont un profil sensiblement similaire, si ce n’est identique au profil DevOps.
Dernier point et non des moindres, en observant l’application de ces deux notions dans la pratique, on peut affirmer sans hésitation que la SRE n’est ni plus ni moins qu’un moyen de pratiquer du DevOps 😉



