niedziela, 1 czerwca 2014

OnCall w Amazonie, czyli o horrorach życia na dyżurze

Każdy informatyk w Stanach wie o Amazon conajmniej tyle, że nie dają tam darmowego jedzenia i że trzeba chodzić z pagerem. Pager to urządzenie tak stare, że musowo z kamienia wyłupane. Piszczy toto nocami jak niewiasta i spać człowiekowi nie daje. Z ciekawszych zastosowań - gdzieniegdzie używane do wymuszania pokuty (link).


Jestem właśnie na oncallu i mam za sobą najdłuższy dzień swojego życia. Postanowiłem więc napisać parę słów na ten temat z nadzieją, że ułatwi to decyzję tym, którzy zastanawiają się czy ofertę od Amazona przyjąć.

OnCall w Amazonie to dwie rzeczy: naprawianie błędów w systemie i dyżur 24 godziny na dobę w razie poważnych awarii. Szczegóły różnią się drastycznie w zależności od zespołu. U mnie stosujemy rotację tygodniową, czyli raz na jakiś czas dyżuruje się przez tydzień - od środy do środy. W trakcie dyżuru swoje codziennie zadania odrzuca się na bok i koncetruje się wyłącznie na problemach które zgłosili użytkownicy lub częściej zautomatyzowane alarmy. Jest to praca o innym charakterze niż ta, do której programiści są przyzwyczajeni. Zamiast zadania "zrób to" i zastanawiania się jak to osiągnąć, dostaje się zadania typu "tak wygląda symptom" i próbuje się odpowiedzieć na pytanie "dlaczego". Ciekawe!

OnCall jest wyrazem filozofii firmy: oszczędności i ownership (posiadania?). Skupmy się na tym drugim. Ownership znaczy, że będziesz odpowiedzialny za system od początku do końca - implementację, testy, wdrożenie na produkcję i wreszcie support czyli dyżurowanie. O ile dyżurowanie nie jest ulubionym zajęciem większości Amazonków, o tyle ja sam uwielbiam pozostałe aspekty posiadania. Amazon to duża firma, ale rzadko daje się to odczuć. Jeśli mam dobry pomysł, to implementuję go dziś i dziś wrzucam na produkcję, a jutro zobaczę efekty. Nie ma dwóch tygodni czekania na zezwolenie od kogoś na górze. Ownership ma swoje pozytywne strony i w niewielu firmach będziecie mieć taką kontrolę nad systemem jak w Amazon. Nie muszę chyba dodawać, że to rozwija zawodowo.

Głównym problemem z dyżurem jest to, że odpowiedzialność jest całodobowa. A conajmniej połowa, a może i większość awarii zdarza się w nocy. Bo wtedy uaktywniają się procesy podsumowujące dzień i zdarza się im wysypać. Bo wtedy jest niski ruch na stronie i ujawniają się roboty itd. Wszystkie problemy w Amazonie kategoryzuje się na pięciostopniowej skali "powagi sytuacji", gdzie "1" (SEV1) to gigantyczna awaria na skalę całego sklepu (amazon.com leży albo wali się jakiś magazyn). Po przeciwnej stronie skali mamy "5" (SEV5), czyli problem bez większych konsekwencji. Pager piszczy tylko na poziomy "1" i "2".

Jako ciekawostkę dodam, że SEV1 to poważna sprawa, gdzie otwiera się telekonferencję, wdzwaniają się dziesiątki ludzi i zastanawiają się jak naprawić ogromny problem w jak najkrótszym czasie. SEV2 to zwykle dużo mniejsza skala, gdzie za awarię najczęściej odpowiedzialna jest jedna osoba, spory przeskok.

Mój zespół nie jest w stanie położyć całego sklepu, więc nasze pagery piszczą tylko na "2". Zanim przejdę dalej, muszę dodać, że mój oncall jest wyjątkowo łagodny. Mamy dwustopniową rotację, która w praktyce oznacza, że pod pagerem jestem raz na pół roku. Ten pager jest moim trzecim odkąd tu przyjechałem. A mam znajomych, którzy żyją z pagerem co półtora miesiąca. Słyszałem o zespołach, gdzie SEV2 dostaje się co godzinę, więc dyżur trwa zwykle tylko 2, 3 dni, bo nikt nie wytrzymałby więcej. U mnie jeden SEV2 dziennie to sporo.

Przejdźmy więc do historii rodem z horrorów. W środę zaczął się mój trzeci OnCall. O godzinie 4 w nocy obudził mnie pager. Zanim wszystkim naprawiłem wybiła godzina 7. Problem z nocnymi pobudkami jest taki, że jak człowiek pogłówkuje w środku nocy, to mu się odechciewa spać i ciężko potem znów zasnąć. Wyszedłem więc do pracy. W tym momencie muszę dodać, że Amazon to nie jest fabryka iPhone i wszyscy okazują dużo zrozumienia. Po długiej nocy można bez problemu pracować z domu i odpoczywać, ale tym razem zebrałem się i poszedłem do biura.

W biurze wpadłem w wir obowiązków i dopiero o 6 wyszedłem do domu. 14 godzin. Po powrocie wszystko było OK dopóki nie położyłem się do łóżka, kilka minut po północy. Zanim zdążyłem zasnąć, zadzwonił pager. Wstałem, sprawdziłem co się dzieje i stwierdziłem, że sam sobie nie poradzę. Zadzwoniłem więc do kogoś o pomoc. Kolejne wtrącenie: w dobrym zwyczaju jest odpowiadać na takie telefony, nawet gdy nie jest się na dyżurze. Ale! OnCall zrobi wszystko co w jego mocy zanim obudzi kogoś innego, choćby dlatego że mu głupio. Dodatkowo, poza dyżurem nikt nie ma obowiązku na takie telefony odpowiadać i jak nie odpowie, to nikt się nie obrazi. Faktem też jest, że ludzie najczęściej odpowiedzą i bez narzekania pomogą. Tym razem mój kumpel musiał o 00.30 jechać do biura, bo w domu wysiadł mu Internet. I pojechał. Do godziny 2 uporaliśmy się z problemem, a potem pager zadzwonił raz jeszcze. Rozwiązałem kolejny problem, ale nie doczekałem do końca bo... Usnąłem. W tym momencie byłem na nogach od ponad 22h i praktycznie od 18h w pracy. Następnego dnia wstałem o 12 w południe i pracowałem z domu. :)


Szczególnie ciekawy jest pierwszy OnCall. W moim zespole pager nosi się rzadko, ale odpowiada się za kilka dużych systemów jednocześnie. Pierwszy OnCall odbywa się zwykle około 3 miesiące po dołączeniu do zespołu. Oczywistym jest, że po tak krótkim czasie o połowie tych systemów wie się bardzo niewiele. Jeżeli SEV2 wydarzy się w dzień, inni pomogą a najczęściej sami zajmą się problemem. W nocy z kolei nie jest tak różowo i człowiek się boi. Po pierwsze czy wstanie, bo jak nie zareagujesz wystarczająco szybko to pager obudzi twojego menadżera. A potem menadżera twojego menadżera. A potem bóg wie kogo. Po drugie - jak sobie poradzisz sam gdy zapiszczy? Stresujemy nowych mówiąc, że nie są częścią zespołu póki nie dołączą do rotacji. Fala.

Jak o wszystkim związanym z Amazonem mógłbym pisać więcej, ale podsumujmy. Jako pracownik Amazonu będziesz miał pełną kontrolę nad tym co robisz i jeżeli nigdy się z tym nie spotkałeś, nauczysz się wiele. Dobór sprzętu i technologii do problemu, projektowanie na ogromną skalę, produkcyjne wdrożenia, alarmy, metryki i ogólnie rozumiany support. IT zajmuję się od 2006 roku i ciąglę się uczę, ale nic nie nauczyło mnie więcej niż pierwsze lata studiów, pierwsze lata w pracy w Polsce i Amazon. Co do pagera, to w zależności od tego do jakiego zespołu trafisz, twój OnCall może być praktycznie niezauważalny albo traumatyczny.

Ostateczną decyzję pozostawię zainteresowanym.

2 komentarze:

  1. Uważam że to nie jest takie złe, przynajmniej to jakieś urozmaicenie pracy.
    Pisz proszę więcej o pracy w Amazon, to ciekawe :)

    Dodam jeszcze że to mój pierwszy komentarz, czytam bloga regularnie i bardzo mi się podobają wasze wpisy :)

    OdpowiedzUsuń
    Odpowiedzi
    1. Dzieki wielkie, postaram sie. Lenistwo...

      Usuń