Kluczowe reguły i praktyki inżynierii SRE: ludzka strona inżynierii SRE
- 10 min
Udany proces operacji to taki, który osiąga żądaną niezawodność i utrzymuje go. Taki proces zależy równie mocno od tego, jak traktuje ludzi odpowiedzialnych za to środowisko, jak i od tego, jak traktuje maszyny. Inżynieria niezawodności systemów przyznaje tę prawdę na wiele sposobów, które mają kluczowe znaczenie dla jej praktyki.
Trud
Najpierw należy skupić się na pojęciu „trudu”. W kontekście SRE trud odnosi się do operacji wykonywanych przez człowieka o określonej charakterystyce. Trud nie ma długoterminowej zbawczej wartości. Nie posuwa usługi do przodu w żaden znaczący sposób. Jest to często powtarzalne i w dużej mierze ręczne (mimo że może być zautomatyzowane). W miarę wzrostu usługi lub systemów w czasie prawdopodobnie proporcjonalnie wzrośnie liczba żądań dla danego systemu, co będzie przekładać się na jeszcze więcej zadań wykonywanych ręcznie.
Na przykład usługa może wymagać, aby zespół SRE ponosił obciążenia operacyjne, takie jak te, które są uważane za żmudną pracę.
- Co tydzień resetuj to.
- Aprowizowanie nowych kont i miejsca na dysku ręcznie.
- Wielokrotne ponowne uruchamianie procesu ręcznie.
Wykonanie tych akcji nie sprawia, że usługa jest lepsza w żaden długoterminowy, trwały sposób. Jest również prawdopodobne, że te działania muszą być powtarzane wielokrotnie.
Uwaga
Nawet jeśli przechowujesz tego typu żądania w systemie zgłoszeń, jak robi się to w wielu firmach, to wykonanie czynności i obsłużenie zgłoszenia nadal jest ciążliwą pracą. Jest to po prostu dobrze śledzony trud.
Inżynierowie ds. niezawodności systemu (SRE) nienawidzą żmudnych zadań. Pracują, aby go wyeliminować tam, gdzie jest to możliwe i stosowne. Ten cel jest jednym z miejsc, w których automatyzacja wchodzi w grę w SRE. Jeśli te żądania można obsłużyć automatycznie, co zwolni zespół, aby mógł skupić się na bardziej znaczących i satysfakcjonujących zadaniach niż wyczerpująca obsługa kolejki żądań.
Użycie słowa "odpowiednie" w odniesieniu do wysiłku jest podobne do jego użycia w kontekście niezawodności. Są sytuacje, w których praca mająca na celu eliminację uciążliwych zadań ma niższy priorytet niż inne prace. Ogólnie rzecz biorąc, usuwanie wysiłku z usługi jest kluczowym celem dla SRE.
Praca nad projektem oraz reaktywna praca „operacyjna”
Aby wykonać pracę niezbędną do usunięcia trudu lub zwiększenia niezawodności systemu, należy odpowiednio przydzielić czas SRE. Chcą mieć pewność, że nie spędzają całego czasu na gaszeniu pożarów, odpowiadają na wezwania, lub tylko przetwarzają zgłoszenia w kolejce. Muszą mieć czas na napisanie kodu w celu wyeliminowania trudu, konstruowania automatyzacji samoobsługowej, aby bilety nie były niezbędne, a także tworzyć projekty, które sprawiają, że usługa i ludzie będą wydajniejsze. Często przywoływana wartość (pochodząca z oryginalnego modelu Google) to nie więcej niż 50% obciążenia operacyjnego na zespół.
Uwaga
50% jest sztucznie ustaloną wartością, ale w praktyce zdaje się działać jako rozsądny cel dla wielu ludzi.
Istnieją momenty w życiu inżyniera SRE, w których cały jego czas jest poświęcany na gaszenie pożarów, ale nie może to być stała sytuacja. Jeśli reaktywna praca „operacyjna” zespołu (wiele z tego to żmudna praca) zajmuje ponad 50% ich czasu przez długi czas, prowadzi to do wypalenia zawodowego i obniżenia niezawodności. W takiej sytuacji, dobre cykle, które omówiliśmy wcześniej, nie mogą działać ani nie można ich tworzyć. SRE podobnie zwraca uwagę na słabo zrównoważone obciążenie dyżurami, ponieważ również może to mieć silny negatywny wpływ na zespół.
Skoro mogliśmy już zapoznać się z niektórymi kluczowymi praktykami i zasadami inżynierii niezawodności serwisów (SRE), porozmawiajmy teraz o tym, jak zacząć.