Monitorowanie aplikacji w chmurze

Nowa generacja rozwiązań monitorowania umożliwia administratorom serwisów utrzymywanie kontroli nad coraz bardziej złożonymi, dynamicznymi i rozproszonymi aplikacjami webowymi. Zespół odpowiedzialny za ich działanie ma szanse dostrzec problem dobrze ukryty w połączonych warstwach mechanizmów i komponentów.

Zdarza się nam, że po zapełnieniu koszyka w sklepie internetowym (poprawnie zadziałała funkcja wyszukiwania, koszyk też działał), zawodzą połączenia związane z płatnością. Taka nieudana sprzedaż daje jednak symptomy, które powinny zainicjować alarm (ktoś za to odpowiedzialny zaloguje się wtedy do konta bankowego w celu skontrolowania sprzedaży z bieżącego dnia i ujrzy tam brak przychodów). Jednak niektóre problemy z aplikacjami webowymi mogą być bardziej ukryte. Nie dają wyraźnych symptomów, a użytkownicy najczęściej mają coś lepszego do roboty niż pisanie szczegółowych raportów o błędach.

Sprawy komplikują się jeszcze bardziej, gdy aplikacja webowa migruje w chmurę, której infrastruktura zachęca do dynamicznych wdrożeń. Problemy związane z działaniem aplikacji cloud computing mogą być trudne, a czasami niemal niemożliwe do wykrycia. Często zakłóceniu ulega komunikacja, czego nie zauważyć - aż do momentu, kiedy usługa przestaje działać na większą skalę.

W środowisku, w którym wirtualne maszyny pojawiają się i znikają (zgodnie z przyjętą strategią), dużo trudniej przygotować program testujący. Duża liczba maszyn w ruchu wręcz uniemożliwia ręczne skonstruowanie harmonogramu testu.

Rozwiązania monitorujące aplikacje webowe są rozwijane tak, by rozpoznawały źródła kłopotów nawet wtedy, gdy problemy nie są oczywiste. Tradycyjna architektura zyskuje mechanizmy adaptacyjne, które reagują na odpowiedzi z witryny i sondują je następnie testami wynikającymi z tych odpowiedzi. Testy te, coraz bardziej wymyślne, pozwalają na wykrywanie ukrytych nieprawidłowości.

Rozwiązania monitorujące uzupełniają swoje testy dodatkowymi danymi. Raporty mogą integrować dane zbierane z serwerów WWW, serwerów aplikacyjnych, serwerów baz danych oraz sieci, a także przeszukiwane są dane od partnerów zewnętrznych (dane z tego źródła mogą pokazywać jak sprawuje się ośrodek z zewnętrznego punktu widzenia). Źródła zewnętrzne zapewniają rzeczywistą kontrolę i jeżeli dane zewnętrzne ujawnią problem, usługa monitorowania może wdrożyć więcej testów, które wysondują witrynę w celu wyjaśnienia problemu.

Opanowanie takich testów też staje się łatwiejsze, ponieważ dostawcy oprogramowania monitorującego zapewniają coraz lepsze pulpity zarządzania (dashboard) i raporty. Przewijane kolumny liczb zostały zastąpione wymyślnymi, kolorowymi wykresami, które szybko uwidoczniają problem. Jeżeli błędy są dostatecznie poważne, narzędzie monitorujące podnosi alarm za pośrednictwem wielu kanałów przekazu.

Nowe podejście do wykrywania problemów

W zasadzie zadanie wykrywania problemów witryny nie zmieniło się. Narzędzia monitorujące nadal kontrolują drogi interakcji użytkowników z serwisem i poszukują nieoczekiwanych odpowiedzi. Z jednej strony oprogramowanie monitorujące wciela się w rolę użytkownika, generując typowe zlecenia. Z drugiej strony współdziała bezpośrednio z witryną w monitorowaniu wewnętrzych statystyk o obciążeniu, czasie odpowiedzi czy przepustowości.

Zadania podstawowe nie uległy zmianie, ale systemy stały się bardziej wyrafinowane. Nie tylko monitorują znacznie więcej elementów, ale też są precyzyjniejsze w interpretowaniu wyników i podnoszeniu alarmów. Mogą wykrywać np. kiedy okazjonalne spowolnienie jest akceptowalne, a kiedy jego wartość może wskazywać na większe uszkodzenie. Mogą też wspomagać zespół monitorujący poprzez wynajdywanie najbardziej istotnych problemów i dostosowywać poziom alarmowy, zawężając problem na tyle, aby administrator nie musiał przekopywać się przez kolumny liczb.

Systemy te opierają się na coraz większej liczbie źródeł informacji. Należą do nich: testy bezpośrednie, testy parametryzowane, testy komponentowe, usługi wewnętrzne (back-end), infrastruktura dostarczania, usługi stron trzecich, usługi poza przeglądarką, narzędzia poziomu systemu operacyjnego, monitorowanie klastrów.