Zarządzanie incydentami dla dynamicznych zespołów
Analizy zdarzeń
W przedsiębiorstwie Atlassian praktykujemy analizy bez dociekania winy, aby poznać i usunąć główną przyczynę każdego zdarzenia o znaczeniu plasującym się na poziomie 2. lub wyższym. Oto skrócona wersja naszej wewnętrznej dokumentacji opisującej, jak w przedsiębiorstwie Atlassian przeprowadzamy analizy.
Uzyskaj podręcznik w formie drukowanej lub jako plik PDF
Udostępniamy limitowaną pulę drukowanych wersji naszego podręcznika zarządzania incydentami, który wysyłamy za darmo. Możesz również pobrać wersję PDF.
Pole | Instrukcje | Przykład |
Streszczenie zdarzenia | Streść zdarzenie w kilku zdaniach. Opisz poziom ważności, powody wystąpienia zdarzenia i czas trwania jego skutków. | W godzinach Zdarzenie zostało wykryte przez Zdarzenie W związku z tym incydentem zgłoszono/zamieszczono |
Przygotowanie | Opisz okoliczności, które doprowadziły do zdarzenia, na przykład przed zmianami, które spowodowały wystąpienie ukrytych błędów. | O |
Błąd | Opisz, co nie zadziałało zgodnie z oczekiwaniami. Dołącz zrzuty ekranowe ważnych wykresów lub danych przedstawiających usterkę. | Wysłano nieprawidłowo odpowiedzi w liczbie |
Wpływ | Opisz, co wewnętrzni i zewnętrzni klienci zobaczyli podczas zdarzenia. Dołącz informację o liczbie zgłoszeń do pomocy technicznej. | Przez Jego skutki dotknęły klientów w liczbie Przesłano zgłoszenia do pomocy technicznej i opublikowano posty w serwisach społecznościowych w liczbie |
Wykrycie | Jak i kiedy firma Atlassian wykryła zdarzenie? Jak można było skrócić czas potrzebny na wykrycie? W ramach ćwiczenia na myślenie: co byś zrobiła/a, aby skrócić ten czas o połowę? | Zdarzenie zostało wykryte, gdy został uruchomiony |
Odpowiedź | Kto zareagował, kiedy i jak? Czy wystąpiły opóźnienia lub utrudnienia podczas reagowania? | Po wezwaniu o godzinie 14:34 czasu UTC specjalista z firmy KITT zgłosił się online o godzinie 14:38 w pokoju poświęconym omawianiu zdarzeń. Jednak wezwany specjalista nie miał wystarczających informacji w autoskalerze Escalator, dlatego wysłano dodatkowe powiadomienie o godzinie 14:50 i wezwano do pokoju starszego specjalistę z firmy KITT o godzinie 14:58. |
Odzyskiwanie | Opisz, jak i kiedy usługa została przywrócona. Jak dotarłeś/dotarłaś do punktu, w którym wiadomo było, w jaki sposób zminimalizować skutki zdarzenia? Dodatkowe pytania, które należy zadać w zależności od scenariusza: Jak można było skrócić czas potrzebny na zminimalizowanie skutków? W ramach ćwiczenia na myślenie: co byś zrobiła/a, aby skrócić ten czas o połowę? | Odzyskiwanie odbyło się w ramach trójstopniowej odpowiedzi:
|
Oś czasu | Przygotuj szczegółową oś czasu incydentu, zawierającą zdarzenia uporządkowane w kolejności chronologicznej ze znacznikami czasu i strefami czasowymi. Rozmieścić wprowadzenie, moment rozpoczęcia skutków, czas wykrycia, eskalowanie zdarzenia, decyzje i zmiany oraz moment zakończenia. | Wszystkie godziny są podane w formacie UTC (uniwersalny czas koordynowany). 11:48 - Ukończono uaktualnienie K8S 1.9 płaszczyzny kontrolnej12:46 - Ukończono uaktualnienie Goliath do wersji 1.9, obejmujące autoskaler klastrów i instancję programu planującego BuildEng 14:20 - Dział projektowania kompilacji zgłasza problem do zespołu KITT Disturbed 14:27 - Zespół KITT Disturbed rozpoczyna badanie usterek konkretnej instancji EC2 (ip-203-153-8-204) 14:42 - Zespół KITT Disturbed oznacza konkretny węzeł jako nieuwzględniany w planowaniu 14:49 - Program planujący BuildEng zgłasza problem jako dotyczący więcej niż jednego węzła. 86 instancji problemu pokazuje, że usterki dotyczą większej części systemu 15:00 - Zespół KITT Disturbed sugeruje przełączenie do standardowego programu planującego 15:34 - Program BuildEng zgłasza awarię 300 strąków (ang. pods) 16:00 - Program BuildEng niszczy wszystkie kompilacje, które uległy awarii z raportem OutOfCpu 16:13 - Program BuildEng zgłasza, że usterki powracają w przypadku nowych kompilacji, co oznacza, że nie były przejściowe . 16:30 - Zespół KITT uznaje usterki za zdarzenie i postępuje z nimi jako ze zdarzeniem. 16:36 - Zespół KITT blokuje autoskaler Escalator, aby zapobiec usunięciu wyliczeń przez autoskaler w celu zminimalizowania problemu. 16:40 - Zespół KITT potwierdza, że grupa ASG jest stabilna, obciążenie klastra jest normalne, a skutki dla klientów usunięte. |
5W (pięć pytań dlaczego) | Użyć techniki identyfikowania głównej przyczyny. Rozpocząć od skutków i spytać, dlaczego zdarzenie miało miejsce oraz dlaczego spowodowało takie skutki. Kontynuować zadawanie pytań o przyczyny, aby odnaleźć główną przyczynę. Udokumentować pytania „dlaczego” w postaci listy tutaj lub w diagramie dołączonym do zgłoszenia. |
|
Główna przyczyna | Jaka była główna przyczyna? Jest to kwestia wymagająca zmiany, aby uniemożliwić ponowne występowanie zdarzeń tej klasy. | Błąd |
Kontrola listy zadań | Czy Twoja lista zadań zawiera elementy, które mogłyby zapobiec zdarzeniu lub znacznie ograniczyć jego skutki? Jeśli tak, dlaczego ich nie zrealizowano? Dokonanie uczciwej oceny w tym punkcie pomaga wyjaśnić wcześniejsze decyzje dotyczące priorytetów i ryzyka. | Nieszczególnie. Udoskonalenia w zakresie typowania przepływu były znanymi, ciągłymi zadaniami, w odniesieniu do których obowiązywały rytuały (np. dodanie typów przepływów podczas zmiany/tworzenia pliku). Dokonano zgłoszeń dotyczących naprawy testów integracji, jednak były one nieskuteczne. |
Powtarzanie się zdarzeń | Czy to zdarzenie (mające tę samą główna przyczynę) miało już miejsce wcześniej? Jeśli tak, dlaczego zdarzyło się ponownie? | Ta sama główna przyczyna wywołała zdarzenia HOT-13432, HOT-14932 i HOT-19452. |
Wyciągnięte wnioski | Czego się nauczyliśmy? Omów, co poszło dobrze, co mogło pójść lepiej i gdzie udało nam się znaleźć możliwości wprowadzenia ulepszeń. |
|
Działania naprawcze | Co zamierzamy zrobić, aby nie dopuścić do ponownego wystąpienia incydentu tej klasy? Kto podejmie działania i kiedy je zakończy? Utwórz łącza do zgłoszeń pod tytułem „Działanie priorytetowe”, aby monitorować każde działanie. |
|
Scenariusz | Przyczyna bezpośrednia i działanie | Główna przyczyna | Minimalizowanie skutków przyczyny głównej |
Usługi ekipy „Red Dawn” narzędzia Stride nie mają skonfigurowanych monitorów Datadog ani alertów dotyczących tych usług dla osób pełniących dyżury domowe bądź nie zostały poprawnie skonfigurowane. | Członkowie zespołu nie skonfigurowali opcji monitorowania i powiadamiania dla nowych usług. Skonfiguruj te usługi. | Nie istnieje proces uruchamiania nowych usług, który obejmuje monitorowanie i wysyłanie powiadomień. | Utworzyć proces ###zabezpieczania nowych usług i pokazać zespołowi, jak go przeprowadzać. |
Krok nieprzydatny w przeglądarce IE11 ze względu na uaktualnienie edytora tkanin, który nie działa w tej wersji przeglądarki. | Uaktualnienie zależności. Przywróć uaktualnienie. | Brak testów zgodności przeglądarek. | Zautomatyzuj ciągłe testowanie zgodności przeglądarek. |
Dzienniki z systemu Micros EU nie docierały do usługi logowania. | Rola przypisana do mikr, aby wysyłać je wraz z dziennikami była nieprawidłowa. Poprawić rolę. | Nie wiemy, kiedy logowanie z poziomu środowiska nie działa. | Dodać monitorowanie i powiadamianie o brakujących dziennikach dla każdego środowiska. |
Problem spowodowany wcześniejszym zdarzeniem w usłudze AWS; węzły Confluence Vertigo wyczerpały pulę połączeń do mediów, co doprowadziło do sporadycznych błędów załączników i multimediów. | Awaria usługi AWS. Uzyskaj analizę dotyczącą usługi AWS. | Błąd przetwarzania puli połączeń aplikacji Confluence doprowadził do wycieku połączeń w stanach awaryjnych, w połączeniu z brakiem wglądu w stan połączeń. | Usunąć błąd i dodać monitorowanie, które umożliwi wykrywanie podobnych sytuacji w przyszłości zanim ich skutki będą odczuwalne. |
KATEGORIA | Definicja | Co należy z tym zrobić? |
Błąd | Zmiana kodu wprowadzona przez firmę Atlassian (jest to konkretny rodzaj zmiany) | Testuj. Przeprowadzić „test kanarka”. Przeprowadzić stopniowe wdrożenia i obserwować je. Użyć flag funkcji. Porozmawiać ze specjalistą ds. jakości. |
Zmiana | Zmiana wprowadzona przez firmę Atlassian (inna niż kod) | Poprawić system wprowadzania zmian, np. analizy zmian lub procesy zarządzania zmianami. Wszystko, co znajduje się obok kategorii Problem ma również zastosowanie tutaj. |
Skaluj | Niepowodzenie podczas skalowania (np. ograniczenia wysyłania ślepego sygnału do zasobów lub brak planowania przepustowości) | What are your service's resource constraints? Are they monitored and alerted? If you don't have a capacity plan, make one. If you do have one, what new constraint do you need to factor in? |
Architektura | Niezgodność architektury z warunkami operacyjnymi | Przeanalizować strukturę. Czy konieczna jest zmiana platform? |
Zależność | Usterka usługi innej firmy (innej niż Atlassian) | Czy zarządzasz ryzykiem wystąpienia usterki usługi innej firmy? Czy podjęliśmy decyzje biznesowe w celu zaakceptowania ryzyka czy musimy zaplanować konieczność minimalizowania skutków? Zobacz „Główne przyczyny wraz z zależnościami” poniżej. |
Nieznany | Trudne do określenia (podjęte działania przyczynią się do zwiększenia możliwości diagnozowania) | Zwiększyć możliwość obserwowania działania systemu poprzez dodanie logowania, monitorowania, debugowania itp. |
KATEGORIA | Pytanie, które należy zadać | Przykłady |
Badanie zdarzenia | „Co spowodowało to zdarzenie i dlaczego?” Ostatecznym celem jest ustalenie głównych przyczyn. | analiza dzienników, tworzenie diagramu ścieżki żądania, analiza heap dumpów |
Minimalizowanie skutków zdarzenia | „Jakie natychmiastowe działania podjęliśmy, aby rozwiązać to zdarzenie i nim zarządzać?” | wstrzymanie, przypadkowe wybieranie, wymuszanie konfiguracji, komunikacja z użytkownikami, których dotyczy zdarzenie |
Naprawianie szkód wywołanych zdarzeniem | „Jak usunęliśmy bezpośrednie lub uboczne szkody wynikające z tego zdarzenia?” | przywracanie danych, naprawa urządzeń, usunięcie przekierowania ruchu sieciowego |
Wykrywanie przyszłych zdarzeń | „Jak możemy skrócić czas potrzebny na skuteczne wykrycie posobnej usterki?” | monitorowanie, powiadamianie, kontrole wiarygodności na wejściu/wyjściu |
Minimalizowanie skutków przyszłych zdarzeń | „Jak możemy zmniejszyć wagę lub czas trwania podobnych zdarzeń w przyszłości?” „Jak możemy ograniczyć procent użytkowników dotkniętych usterką tej klasy, gdy wydarzy się następnym razem?” | łaskawa degradacja, pomijanie wyników, których znaczenie nie jest krytyczne, zaniechanie otwarcia, rozbudowanie bieżących praktyk z użyciem pulpitów lub podręczników strategii, zmiany w zakresie przetwarzania zdarzeń |
Zapobieganie przyszłym zdarzeniom | „Jak możemy zapobiec ponownemu wystąpieniu tego typu usterki?” | ulepszenia w zakresie stabilności kodu podstawowego, bardziej dokładne testy modułów, weryfikacja poprawności danych wejściowych i niezawodności w warunkach występowania błędów, zmiany dotyczące udostępniania usług |
Korzystamy także z porad pań Lueder i Beyer na temat formułowania działań w ramach analizy.
Formułowanie działań w ramach analizy:
Prawidłowe sformułowanie działań w ramach analizy może ułatwić ich realizację, zapobiegając opóźnieniom wynikającym z niewykonalności lub prokrastynacji. Dopracowane działanie w ramach analizy powinno posiadać następujące cechy:
Wykonalność: Każde działanie należy zdefiniować zdaniem rozpoczynającym się od czasownika. Rezultatem działania powinien być użyteczny wynik, a nie proces. Na przykład: „Stwórz listę krytycznych zależności” to odpowiednie działanie w odróżnieniu od zdania „Zbadaj zależności”.
Szczegółowość: Określ zakres każdego działania jak najdokładniej, jasno definiując, co należy wykonać, a czego nie.
Ustalone granice: Sformułuj każde działanie w taki sposób, aby wiadomo było, kiedy jest zakończone, a kiedy jest otwarte lub trwa.
Od... | Do... |
Zbadać proces monitorowania dla tego scenariusza. | (Wykonalność) Dodać opcje powiadamiania dla wszystkich przypadków, gdy w usłudze wystąpi >1% błędów. |
Naprawić zdarzenie, które spowodowało przestój. | (Szczegółowość) Zająć się nieprawidłowym kodem pocztowym wprowadzanym w formularzu adresu użytkownika. |
Zadbać, aby inżynier sprawdził, czy da się przetworzyć schemat bazy danych przed uaktualnieniem. | (Ustalone granice) Dodać automatyczną kontrolę przed wysłaniem dla zmian schematów. |
Konfigurowanie harmonogramu dyżurów domowych za pomocą Opsgenie
W tym samouczku nauczysz się konfigurować harmonogram dyżurów domowych, stosować reguły zastępujące, ustawiać powiadomienia o dyżurach domowych oraz wykonywać inne czynności w Opsgenie.
Przeczytaj ten samouczekPoznaj proces informowania o incydentach za pomocą Statuspage
W tym samouczku pokażemy, jak wykorzystać szablony dotyczące incydentów do skutecznej komunikacji w trakcie awarii. Ich elastyczny charakter pozwala na dostosowanie ich do różnego rodzaju przerw w dostawie usług.
Przeczytaj ten samouczek