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.

Pierwszym krokiem w procesie rozwiązywania problemów jest wyczerpujące opisanie problemu. Bez opisu problemu ani użytkownik, ani firma IBM® nie mogą wiedzieć, od czego zacząć, aby znaleźć przyczynę problemu. Ten etap obejmuje zadanie sobie pewnych podstawowych pytań, takich jak:

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?

Kiedy przystępuje się do opisania problemu, najbardziej oczywistym pytaniem jest 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.

Należy pamiętać, że jeśli jedna warstwa zgłasza problem, nie oznacza to, że problem pojawił się w tej warstwie. Częścią procesu identyfikacji przyczyny problemu jest zrozumienie środowiska, w którym się on pojawia. Należy uważnie i dokładnie opisać środowisko problemu. Poniższe pytania ułatwiają sprecyzowanie miejsca występowania problemu:
  • 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.

Aby opracować szczegółową oś czasu zdarzeń, należy odpowiedzieć na następujące pytania:
  • 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?

Podczas rozwiązywania problemów ważna jest wiedza na temat innych systemów i aplikacji działających w chwili wystąpienia problemu. Korzystając z poniższych pytań i innych pytań dotyczących środowiska, można precyzyjniej określić podstawową przyczynę problemu:
  • 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ć?

Z punktu widzenia rozwiązywania problemów idealny problem 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.
Wskazówka: Uprość scenariusz, aby zlokalizować problem do podejrzewanego komponentu.
Poniższe pytania ułatwiają odtworzenie problemu:
  • 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?