Viktiga principer och metoder: den mänskliga sidan av SRE
En lyckad driftsprocess är en process som uppnår önskad tillförlitlighet och upprätthåller den. En sådan process är lika beroende av hur den behandlar de människor som ansvarar för den miljön som den är beroende av hur den behandlar datorer. Webbplatsens tillförlitlighetsteknik bekräftar den här sanningen på många sätt som är avgörande för dess praxis.
Enahanda arbete
Först är fokus på begreppet ”enahanda arbete”. I en SRE-kontext avser enahanda arbete uppgifter som görs av en person och som har vissa egenskaper. Enahanda arbete har inget långvarigt inlösande värde. Det tar inte tjänsten framåt på något meningsfullt sätt. Det är ofta repetitivt och till stor del manuellt (även om det kan automatiseras). När tjänsten eller system blir större över tid ökar förmodligen också antalet begäranden för systemet i antal med en proportionell hastighet och kräva ännu mer manuellt arbete.
En tjänst kan till exempel kräva att SRE-teamet ådrar sig driftbelastningar som dessa som anses medföra:
- Återställer något varje vecka.
- Etablera nya konton och diskutrymme för hand.
- Starta om en process för hand upprepade gånger.
Att slutföra dessa åtgärder gör inte tjänsten bättre på ett långsiktigt och beständigt sätt. Det är också troligt att dessa åtgärder måste upprepas om och om igen.
Kommentar
Även om du behåller förfrågningar av den här typen i någon form av biljettsystem som många ställen gör är fortfarande utförandet av åtgärden och hur du löser ett ärende fortfarande enahanda arbete. Det är bara väl spårat enahanda arbete.
SRE:er hatar enahanda arbete. De arbetar för att ta bort det när det är möjligt och lämpligt. Det här målet är en av de platser där automatisering spelar in i SRE. Om dessa begäranden kan hanteras automatiskt frigör det teamet så att de kan arbeta med mer tillfredsställande och effektfulla saker än att tömma kön med begäranden.
Användningen av ordet "lämplig" i förhållande till slit liknar dess användning kring tillförlitlighet. Det finns situationer där arbetet med att eliminera är av lägre prioritet än annat arbete. Men på det hela taget är det viktigt att ta bort slit från en tjänst för en SRE.
Projektarbete kontra reaktivt driftsarbete
För att göra det arbete som krävs för att ta bort slit, eller förbättra tillförlitligheten i ett system, måste en SRE-tid allokeras på lämpligt sätt. De vill se till att de inte ägnar all sin tid åt brandbekämpning, svarar på sidor eller bara bearbetar en biljettkö. De måste ha tid avsatt för att skriva kod för att eliminera slitet, konstruera självbetjäningsautomation så att biljetter inte behövs och skapa projekt som gör tjänsten och personerna mer effektiva. Den allmänna bilden (som kommer från den ursprungliga Google-modellen) är en driftsbelastning som inte överstiger 50 % för ett team.
Kommentar
50 % är ett något godtyckligt tal, men i praktiken verkar det fungera som ett rimligt mål för många användare.
Det finns en tid under SRE-cykeln när all tid ägnas åt att släcka bränder, men det kan inte vara ett ständigt tillstånd. Om ett teams reaktiva ”åtgärder” (mycket av det är enahanda arbete) tar upp mer än 50 % av tiden under en längre period är det ett recept på kollaps och dålig tillförlitlighet. I den här situationen kan de dygdiga cykler som vi diskuterade tidigare inte fungera eller konstrueras. SRE uppmärksammar på samma sätt dåligt balanserad jourbelastning eftersom det också har potential för en stark negativ inverkan på teamet.
Nu när vi har haft möjlighet att se några av de främsta metoderna och principerna för SRE kan vi prata lite mer om hur du kommer igång.