Ändra perspektiv
Av alla enheter i den här modulen är detta en av de viktigaste. I den här lektionen ska vi överväga några idéer som kan förändra hur vi utformar vår förståelse för vad som är viktigt att övervaka och varför. För en del kan detta radikalt ändra allt om hur de tror att övervakning ska förbättra tillförlitligheten.
Omramning #1: Tillförlitlighet ur kundens perspektiv
Vi diskuterade tidigare aspekter av tillförlitlighet för övervakning, men det verkade bara ta fasta på möjliga saker som vi skulle vilja övervaka. Här är en idé som kan hjälpa dig att ringa in vad du ska övervaka för att förbättra tillförlitligheten:
Tillförlitlighet måste mätas ur kundens perspektiv, inte från komponentperspektivet.
Det här är mycket viktigt. Det är så viktigt att du kanske behöver läsa det en gång till. Tidigare skulle folk förespråka att "övervaka alla saker!" Om vi kunde läsa en räknare från den, rita en statistik eller placera den på en instrumentpanel, tänkte vi att vi skulle övervaka den. ”Mät från kundens perspektiv” är en mycket mer specifik regel.
Nu ska vi titta på ett kort scenario som både klargör och kan få dig att inse nyttan i detta.
Scenario
Du ansvarar för att driva e-handelswebbplatsen för ditt företag. Du har en webbservergrupp med 100 serverinstanser. Plötsligt slutar 14 av dessa 100 instanser att fungera på grund av ett operativsystemfel, en programuppdatering, en strömfluktuation eller någon annan oväntad händelse. Dessa 14 instanser är nu helt ur funktion.
Om du vill granska: 86 serverinstanser är i drift är 14 serverinstanser inte i drift.
Vilket av följande är sant i den här situationen?
S: Det är ingen stor sak. Du kan lösa problemet när du har tid att åtgärda det.
B: Det är allvarligt. Du borde avbryta vad du än gör och få de 14 serverinstanserna tillbaka i tjänst så snart som möjligt.
C: Det är en existentiell kris för verksamheten. Du bör meddela chefer på C-nivå och ringa alla till jobbet för att ta hand om situationen så snabbt som möjligt, även om det innebär att få dem ur sängen mitt i natten.
Tänk noga igenom det här scenariot en stund innan du svarar, och läs sedan vidare. Tror du att det är A, B eller C?
Det rätta svaret är varken A, B eller C; Det är "det beror på". Eller mer exakt, "det beror på hur dina kunder upplever detta avbrott."
Om du har utformat webbplatsen på ett sådant sätt att inga kunder ens märker att serverdelarna slutar fungera och de andra 86 serverinstanserna bär belastningen utan problem är det ingen kris. Det kan vara en incident med allvarlighetsgrad 3 eller 4, eller till och med bara en supportbegäran.
Om avbrottet gjorde hela ditt företag dött i vattnet och du förlorar allvarliga summor pengar för varje minut dessa servrar är nere, är det förmodligen en bra anledning att trycka på den stora röda knappen och förvränga alla. Det kan också finnas en medelväg där svaret blir "B".
Tillförlitlighet måste alltså mätas från kundens perspektiv, inte komponentens perspektiv. Det är därför som komponentantalet ”14 datorer nere av 100”, även om det är helt korrekt, inte är den viktigaste informationen i det här scenariot ur tillförlitlighetssynpunkt.
Den här idén gäller även när vi talar om mer traditionell komponentbaserad övervakning. Är det bra eller dåligt om du får reda på att databasservern körs med 50 % CPU-belastning? Om det går upp till 90%, är det bättre eller sämre? Om tjänsten fungerar bra och användarna är nöjda kan 90 % vara bra eftersom det innebär att du har förbättrat resursanvändningen avsevärt. Men om användarna klagar över hur långsamt programmet kördes med 50 % cpu-belastning är det inte troligt att 90 % är en förbättring.
Omramning nr 2: Lämpliga tillförlitlighetsnivåer
För att etablera den här idén på rätt sätt börjar vi med en titt på dess ursprung. Den här idén kommer från Site Reliability Engineering (SRE, sajttillförlitlighetsteknik). Vi kan extrahera flera användbara idéer (inklusive den för det här avsnittet) genom att noggrant undersöka definitionen av SRE:
Kommentar
SRE är ett teknikområde som är avsett att hjälpa organisationer att uppnå en hållbar och lämplig nivå av tillförlitlighet i system, produkter och tjänster.
Det finns tre viktiga ord i den här definitionen:
Tillförlitlighet: Vi har talat mycket om vikten av tillförlitlighet i introduktionsenheten, så vi kommer inte att vara viktiga här.
Hållbart: I detta sammanhang refererar "hållbart" till människors roll i allt detta. Det är viktigt att vi skapar en hållbar driftspraxis. Tillförlitliga system, tjänster och produkter skapas av människor. 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, om vi inte ger dem tid med sin familj, om de inte har möjlighet att ägna tid åt att ta hand om sig själva – så finns det inte en chans att de kommer att kunna bygga 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.
Lämpligt: Det här är ordet som kan vara en spelväxlare för vissa människor. En gång i tiden i driftvärlden var vårt mål att se till att allt var igång dygnet innan. Vi försökte hålla allt uppe hela dagen, hela veckan lång, hela månaden lång och hela året lång. Det var aldrig godtagbart att något låg nere. Något som SRE kunde tillföra driftsdiskussionen var tanken om att vi bör sträva efter en lämplig nivå av tillförlitlighet i stället.
Vi ska ta en närmare titt på den här idén. En viktig poäng här är att 100 % tillförlitlighet nästan aldrig är rätt mål. Förutom vissa undantag som medicintekniska produkter eller flyg, behöver vi egentligen inte saker för att vara 100% tillförlitliga; och i själva verket är 100 % tillförlitlig inte ofta möjligt.
Här är ett exempel på "inte ens möjligt:" Nu för tiden kör vi alla system som har beroenden på andra system. Du kanske kör ett program som måste anropa en betalningsprocessor eller ett autentiseringssystem. Om betalningsprocessorn inte är 100 % tillförlitlig eller om autentiseringssystemet inte är 100 % tillförlitligt kan det vara mycket svårt för systemet att vara 100 % tillförlitligt.
Det andra knepiga med ett mål på 100% tillförlitlig är att det innebär noll stilleståndstid. Det innebär också att det finns noll möjligheter till att göra ändringar som du tror eventuellt kan leda till stilleståndstid. Du får inget utrymme, något du förmodligen kommer att vilja och behöva.
Det är användbart att börja tänka på saker ur perspektivet "vad är rätt tillförlitlighetsnivå?" för en viss sak som du försöker använda. Om vi går tillbaka till det aktuella ämnet behöver vår övervakning alltså stöda det här målet.
Med de här två perspektiven i åtanke ska vi ta en titt på det i praktiken och se några verktyg som hjälper oss att uppnå våra mål.