Vad är SRE och varför spelar det någon roll?
Den bästa platsen för att starta är ofta i början. Låt oss börja med att ställa den grundläggande frågan "Vad är site reliability engineering?" Det finns många svar på denna fråga flytande runt, inklusive den som ofta citeras av den person som myntade termen (Ben Treynor Sloss på Google), men det mest praktiska svaret vi kan erbjuda är:
Site Reliability Engineering är ett teknikområde som är avsett att hjälpa en organisation att uppnå lämplig nivå av tillförlitlighet i deras system, produkter och tjänster.
Senare kanske vi tar med några andra definitioner i bilden, men vi börjar här. Det finns tre viktiga delar i den här definitionen som vi måste packa upp som leder oss direkt till "Varför spelar det någon roll?" körs?”
Tillförlitlighet
I hjärtat (och i mitten av namnet ”SRE”) finns ordet tillförlitlighet (reliability). Definitionen säger inte ”lämplig nivå av prestanda” eller ”lämplig nivå av effektivitet” eller ”lämplig nivå av stabilitet” eller inte ens ”uppnå lämplig nivå av intäkter”. Det står ”lämplig nivå av tillförlitlighet”. Varför?
Låt oss titta på en snabb demonstration. Här är en skärmbild. Vad tror du att det visar? Försök inte att gå vidare förrän du har en idé eller ger upp. Obs! Om det är svårt att identifiera mycket detaljer i den här bilden som är bra, återges den perfekt i webbläsaren.
Den här bilden är en skärmbild av hur en PHP-app (utan andra tillagda stöd för felsökning) ser ut när den misslyckas. Du kan se ungefär så här för en Java-app:
Varför tittar vi på de här exemplen? Var och en av dem representerar ett program som potentiellt krävde enorma mängder tid, energi och resurser för ett företag att skapa. Men om programmet inte är up-if det inte är i drift när en kund behövde komma åt it-om det inte är tillförlitligt-det gör ingen, särskilt verksamheten något bra. Brist på tillförlitlighet kan i själva verket skada ett företag (ryktet, ekonomin, avtalsenlighet, moral och så vidare kan skadas).
Det är därför SRE väljer att fokusera på tillförlitlighet som en grundläggande egenskap, kanske den grundläggande egenskapen för tjänsten, systemet eller produkten. Tillförlitlighet kan omfatta många saker (som vi diskuterar senare), men vi går vidare till den andra viktiga delen av definitionen.
Lämpliga nivåer av tillförlitlighet
Du kanske inte lägger märke till det när du läser definitionen för första gången, men vi ska betona ett annat viktigt ord:
Site Reliability Engineering är ett teknikområde som är avsett att hjälpa en organisation att uppnå en hållbar lämplig nivå av tillförlitlighet i deras system, produkter och tjänster.
Varför är det ordet så viktigt?
En viktig iakttagelse i SRE-världen är att det finns få system och tjänster som måste vara 100 % tillförlitliga. Ett viktigt undantag är situationer där det handlar om liv och död, som när det gäller flygbranschen, medicinska enheter, etc.
Det finns faktiskt få situationer där det ens är önskvärt. Ansträngningen och resurserna (och därmed kostnaden) som krävs för att uppnå större tillförlitlighet skjuter i höjden när större tillförlitlighet begärs. Med andra medel är det slöseri med tid och pengar att jaga efter tillförlitlighet som du inte behöver. Du vill uppnå lämplig nivå av tillförlitlighet i ditt system, dina tjänster och produkter.
Nivån måste matcha företagets behov och vara pragmatisk. Våra kunder kan till exempel ansluta till dig via ett nätverk som inte är 100 % tillförlitligt (anta att det är upp till 90 % av tiden). Att spendera ansträngningen och pengarna för att se till att din tjänst är 95% tillförlitlig är per definition slöseri med tid och pengar. Du vill uppnå lämplig nivå av tillförlitlighet i ditt system, dina tjänster och produkter.
SRE tar den här pragmatismen ett steg längre. Om vi nu kan tänka på att det finns en önskvärd nivå av tillförlitlighet, finns det något vi bör göra om vi lyckas på mötet eller överträffar den nivån? Och vad händer om vi inte uppnår det? Vi svarar på dessa frågor senare i modulen.
Uppnå hållbarhet
Det sista ordet från vår definition som vi behöver ta upp innan vi går vidare är hållbarhet. Hållbart refererar till människors roll. Det är viktigt att vi skapar en hållbar driftspraxis. Människor skapar tillförlitliga system, tjänster och produkter. Om vi inte gör saker för att se till att vårt arbete är hållbart. Om vi väcker vårt folk klockan 03:00 varje kväll med en sida, och inte ger dem tid med sin familj. Om de inte har möjlighet att ägna tid åt att ta hand om sig själva. Sedan finns det inte en chans att de kommer att kunna skapa tillförlitliga system. SRE tycker att det är viktigt att vi implementerar en driftspraxis som är hållbar över tid, så att våra medarbetare kan ta sitt bästa till jobbet.