Wat is een SRE? Verschil tussen SRE & DevOps
SRE, oftewel Site Reliability Engineering, is een discipline die in steeds meer bedrijven wordt geadopteerd. Niet zo gek, want zij spelen een essentiële rol in de verbinding tussen developers en operators. Zij begrijpen als geen ander de nieuwste technologie en de noodzakelijke organisatorische veranderingen. Maar waar plaats je de rol van een SRE precies? En wat is nu precies de link tussen SRE en DevOps?
Definitie SRE
Site Reliability Engineering is een discipline die aspecten van software engineering omvat en deze toepast op infrastructuur en operationele problemen. Aspecten zoals build, test en release. Net zoals build, test en release van software gedaan wordt, bouwen we tegenwoordig ook infrastructuur. De belangrijkste doelen hierin zijn het creëren van schaalbare en zeer betrouwbare softwaresystemen. Volgens Google is een Site Reliability Engineer: “wat er gebeurt als een software engineer wordt belast met traditioneel beheer of operations”. Je krijgt dan iemand die - samen met de software ontwikkelaars - minder reactief en meer proactief de verscheidene beheeraspecten aanpakt. Bijvoorbeeld door het geautomatiseerd builden, deployen en releasen van alle werkzaamheden die ook maar enigszins te automatiseren zijn.
Verschillen DevOps & SRE
Omdat SRE unaniem verbonden is aan DevOps worden deze termen vaak door elkaar gehaald. DevOps richt zich op de vraag wat er gedaan moet worden en SRE richt zich op hoe dat gedaan kan worden. Om het verschil tussen DevOps en SRE uit te leggen, kijken we eerst naar DevOps. DevOps is een mindset; een niet eenvoudige cultuurverandering binnen organisaties. DevOps streeft naar een simpel, maar belangrijk doel om IT eenvoudiger, sneller en goedkoper te maken, om zo sneller meer waarde te bieden aan de business (voor gebruikers, ketenpartners en burgers). Uiteindelijk draait het om een effectievere samenwerking tussen de ontwikkelaars en beheerders. DevOps is samen te vatten in de zin: “Waarom moeilijk doen als het samen kan?”. Waarom de verantwoordelijkheden scheiden als het delen ervan een natuurlijke drijfveer is tot succes?
De DevOps Organisatie
Het inzetten van SRE of het bouwen van een SRE-team maakt je niet automatisch DevOps. DevOps gaat over meer dan toolsets of titels. Site Reliability Engineers werken aan het automatiseren van werkzaamheden en het vergroten van de betrouwbaarheid van de ondersteunde diensten. SRE is dus een van de ingrediënten van DevOps. DevOps verwijst meer naar de cultuur van een organisatie en de gebruikte processen. Het een kan niet zonder het ander.
Als je taken automatiseert, meet en deelt staat dit niet meteen gelijk aan DevOps. Eerst moet er gedefineerd worden wat er gedaan moet worden en dan zal een SRE je helpen met hoe je dat voor elkaar krijgt.
Wat doet een SRE dan precies?
Een SRE houdt zich voornamelijk bezig met werk wat traditioneel door een operationeel team gedaan wordt. Dit zijn engineers die ervaring hebben op het gebied van operations, automatisering of software development. Het leuke is dat deze engineers van nature zowel de neiging als het vermogen hebben, om menselijke arbeid zoveel mogelijk te elimineren door het “weg” te automatiseren. Het automatiseren van traditionele beheertaken zorgt voor minder kans op menselijke fouten, maakt meer tijd vrij voor innovatie en resulteert in een hoger efficiency niveau. En, niet onbelangrijk: dit zorgt in het algemeen voor een hoger niveau van tevredenheid bij de engineers en de eindgebruikers.
In het algemeen is een SRE-team verantwoordelijk voor beschikbaarheid, latentie, prestaties, efficiëntie, verandermanagement, monitoring, reactie op noodsituaties en capaciteitsplanning of een subset hiervan.
Het uiteindelijke doel van SRE’s is om, zoals Google het uitdrukt, “binnen een jaar hun eigen baan weg te automatiseren”. Een belangrijke manier om dit te doen is het bouwen van zelfbedieningstools voor gebruikersgroepen die afhankelijk zijn van hun diensten (bijv. automatische levering van testomgevingen, logboeken en statistische visualisatie). Door dit te doen wordt het uitvoerende werk voor alle partijen verminderd. De ontwikkelaars kunnen zich vervolgens volledig richten op de ontwikkeling van software. De SRE kan zich daarna richten op de volgende automatiseringslag, waarmee dit continue proces weer van voor af aan begint.
Belangrijke schakel
SRE’s werken nauw samen met productontwikkelaars om ervoor te zorgen dat de ontworpen oplossing voldoet aan niet-functionele eisen zoals beschikbaarheid, prestaties, veiligheid en onderhoudbaarheid. Ze werken ook samen met release engineers om ervoor te zorgen dat de software delivery pipeline zo efficiënt mogelijk is.
Er wordt vaak geprobeerd SRE te labelen met als doel een specifieke operationele rol te definiëren die buiten het ontwikkelproces valt. Echter zijn zij net zo belangrijk voor het ontwikkelproces als het hebben van front of backend ontwikkelaars, testers, UX-ers of DBA’ers. Samen dragen zij de verantwoordelijkheid voor het bouwen en deployen van een schaalbare en goed functionerende dienst. Een SRE versterkt een development team met de inzichten, expertise en een gedeelde verantwoordelijkheid om een steeds maar beter product of service te leveren.
Toekomst van SRE
De toekomst van de SRE-rol is veelbelovend. Toepassingen worden gedistribueerd over het netwerk en eisen een lage latency. Aanpassingen van een applicatie moeten alsmaar sneller en op een steeds diverser wordend landschap worden uitgerold. Deze veranderingen zorgen voor een ontelbare hoeveelheid aan mogelijkheden tot verbetering. Probeer te voorkomen dat de SRE een eenzame strijder wordt binnen de organisatie. De slagingskans van een SRE’er is naar mijn mening afhankelijk van de grootte en volwassenheid van de organisatie met betrekking tot DevOps. Cultuur is naar mijn mening een gedeelde manier om samen iets met een passie te doen. Zolang je iedere dag met passie samenwerkt aan verbeteringen boek je vooruitgang. In zo’n organisatie komt de SRE-er het beste tot z’n recht.
Coming together is a beginning, staying together is progress, and working together is success.
Henry Ford
Meer weten of met mij discussiëren over Site Reliability Engineering? Ik nodig je van harte uit! Laat hieronder een reactie achter of mail mij :)
Mijn naam is Benoit Schipper; Site Reliability Engineer en trots maar nederig lid van het ijzersterke HCS Company team. Mijn achtergrond als IT - OPS in verschillende lagen binnen grote corporaties, kennis van Business IT / Management, en werkervaring in een alsmaar snel veranderende omgeving hebben mij gemaakt tot wie ik ben. Steevast zoekend naar verbetering, vernieuwing en