Identyfikowanie problemów w środowisku chmury
Termin „rozwiązywanie problemów” oznacza systematyczne podejście do usuwania problemów. Celem tego procesu jest ustalenie, dlaczego coś nie działa tak jak powinno i jak można usunąć ten problem.
Najczęściej odpowiedzi na powyższe pytania dają dobry opis problemu. Udzielenie tych odpowiedzi jest najlepszym wstępem do rozwiązania problemu.
Jakie są objawy problemu?
Na czym polega problem?Takie pytanie wygląda na łatwe, ale warto je podzielić na precyzyjniejsze pytania, które dadzą ogólny obraz problemu. Pytania te to:
- Który użytkownik lub maszyna zgłasza problem?
- Jakie towarzyszą mu kody błędów i komunikaty?
- Jakie nieprawidłowości występują w systemie? Czy jest to na przykład zapętlenie, zawieszenie, zablokowanie, zmniejszenie wydajności czy niepoprawny wynik?
- Jaki wpływ na prowadzoną działalność ma ten problem?
Gdzie występuje problem?
Określenie miejsca powstania problemu nie zawsze jest łatwe, ale jest bardzo istotne podczas jego rozwiązywania. Pomiędzy komponentem zgłaszającym a niesprawnym może występować wiele warstw technologicznych.
- Jeśli istnieje więcej niż jedna subskrypcja w chmurze, których subskrypcji dotyczy problem?
- Których środowisk serwera przepływów pracy dotyczy problem (np. środowiska programistycznego lub produkcyjnego)?
- Których aplikacji dotyczy problem?
- Które usługi są wywoływane przez te aplikacje, w jakiej są wersji i na jakim działają sprzęcie?
Kiedy występuje problem?
Należy opracować szczegółową oś czasu zdarzeń prowadzących do awarii – jest to szczególnie istotne w przypadku problemów jednorazowych. Najprostszą metodą jest prześledzenie zdarzeń wstecz. Należy zacząć od czasu zgłoszenia błędu (jak najdokładniejszego, nawet co do milisekundy) i cofać się, korzystając z dostępnych dzienników i informacji. Zazwyczaj wystarczy znaleźć pierwsze podejrzane zdarzenie w dzienniku diagnostycznym. Jednak czasami jest to trudne i wymaga doświadczenia. Miejsce, w którym należy przestać szukać, jest szczególnie trudne do określenia w przypadku wielu warstw technologicznych, z których każda dostarcza odrębnych informacji diagnostycznych.
- Czy problem występuje tylko o określonej porze dnia lub nocy?
- Jak często występuje problem?
- Jaka sekwencja zdarzeń poprzedziła zgłoszenie problemu?
- Czy problem występuje po zmianie w środowisku, takiej jak aktualizacja lub instalacja oprogramowania lub sprzętu?
Odpowiedzi na takie pytania pozwalają uzyskać punkt odniesienia do badania problemu.
W jakich warunkach występuje problem?
- Czy problem występuje zawsze podczas wykonywania tego samego zadania?
- Czy problem występuje w wyniku konkretnej sekwencji zdarzeń?
- Czy w jakiejkolwiek innej aplikacji również występuje w tym samym czasie problem?
Udzielenie odpowiedzi na tego typu pytania ułatwia wyjaśnienie, w jakim środowisku problem występuje, oraz identyfikację skorelowanych z nim innych czynników. Należy pamiętać, że choć wiele problemów mogło wystąpić jednocześnie, nie oznacza to, że są one ze sobą na pewno powiązane.
Czy można go odtworzyć?
idealnyproblem to taki, który można odtworzyć. Odtwarzając problem, można skorzystać z obszerniejszego zestawu narzędzi i procedur w celu jego zbadania. Dzięki temu problemy, które można odtworzyć, są łatwiejsze do debugowania i rozwiązywania. Odtwarzalne problemy mają jednak pewną istotną wadę: nie chcemy, aby się powtarzały, jeśli mają duży wpływ na prowadzoną działalność. W razie możliwości należy odtworzyć problem w środowisku testowym lub w środowisku programistycznym, co daje większą elastyczność oraz kontrolę w trakcie analizy.
- Czy można odtworzyć problem w innych środowiskach w chmurze? Jeśli na przykład problem wystąpił w środowisku programistycznym, czy występuje on także w środowisku produkcyjnym?
- Czy ten sam typ problemu występuje u wielu użytkowników lub w wielu aplikacjach?