Zarządzanie wydajnością aplikacji (APM)

Więc czym dokładnie jest APM?

Tradycyjnie skrót APM był stosowany do określenia terminu „zarządzanie wydajnością aplikacji” („Application Performance Management”). Jednak w ostatnich latach był również, być może bardziej prawidłowo, stosowany do terminu „monitorowanie wydajności aplikacji” („Application Performance Monitoring”). Cytując Wikipedię, „APM ma na celu wykrywanie i diagnozowanie złożonych problemów z wydajnością aplikacji w celu utrzymywania oczekiwanego poziomu usług.”

Sprawdźmy szczegółowo czym tak naprawdę jest oprogramowanie zarządzania wydajnością aplikacji (APM):

Z definicji, oprogramowanie do monitorowania wydajności aplikacji (APM) umożliwia organizacjom monitorowanie metryk wydajności swoich aplikacji krytycznych dla działalności biznesowej, bezzwłoczne otrzymywanie alertów w przypadku problemów z wydajnością, oraz generowanie raportów dla okresowej analizy wydajności.

Według firmy Gartner, zajmującej się analityką oprogramowania, zestaw narzędzi do monitorowania wydajności aplikacji (APM) powinien spełniać trzy główne kryteria funkcjonalne:

  • Monitorowanie doświadczenia cyfrowego (DEM)
  • Odnajdywanie, śledzenie i diagnostyka aplikacji (ADTD)
  • Sztuczna Inteligencja dla operacji IT (AIOps) dla aplikacji

Spójrzmy szybko na każde z tych wymagań dla narzędzia APM:

Monitorowanie doświadczenia cyfrowego (DEM):

Koncentruje się na doświadczeniach użytkownika końcowego w oparciu o dostępność i wydajność usług/aplikacji biznesowych. Składa się z monitorowania użytkowników rzeczywistych oraz monitorowania transakcji syntetycznych, zazwyczaj przy użyciu agentów cyfrowych wchodzących w interakcje z aplikacjami biznesowymi w celu zbierania informacji transakcyjnych.

Odnajdywanie, śledzenie i diagnostyka aplikacji (ADTD):

Podstawowa i niezbędna część systemu Zarządzania wydajnością aplikacji. Obejmuje odnajdywanie aplikacji i mapowanie zależności, monitorowanie kluczowych metryk oraz dogłębną analizę transakcji aplikacji w celu zlokalizowania błędów aplikacji. Większość zespołów IT ocenia możliwości programu w tym segmencie przed podjęciem decyzji o zakupie.

Sztuczna Inteligencja dla operacji IT (AIOps) dla aplikacji:

Dla większości organizacji wykorzystanie sztucznej inteligencji w rozwiązaniach APM nie jest podstawowym wymaganiem na dziś. Jednak istotna część tego segmentu obejmuje Analitykę aplikacji (AA), która jest istotna. Obejmuje alarmowanie o wydajności oraz analizę przyczyn źródłowych. Obejmuje również śledzenie anomalii wydajności dla transakcji HTTP/S obsługiwanych przez serwery aplikacji Java i .NET.

Gartner ocenia oprogramowanie do zarządzania wydajnością aplikacji (APM) przy użyciu tych wymiarów. Jednak należy zdać sobie sprawę, że potrzeby cyfrowego monitorowania aplikacji drastycznie zmieniają się między różnymi organizacjami, w związku z czym wymagania zarządzania aplikacjami są różnie zdefiniowane w różnych kontekstach. Podczas gdy niektóre organizacje radzą sobie z połączeniem kilku narzędzi do monitorowania, alertów i raportów, to idealny system do zarządzania wydajnością aplikacji przedstawia zunifikowaną konsolę dla wszystkich wymagań monitorowania. Przed wyborem rozwiązania do zarządzanie wydajnością aplikacji, profesjonaliści IT i DevOps w sferze APM powinni dokładnie przeanalizować określone możliwości podane poniżej pozwalające na zapewnienie odpowiednich wyników wydajności aplikacji.

Kluczowe funkcje narzędzi do zarządzania wydajnością aplikacji

  1. Szeroka gama wspieranych aplikacji

    Wykorzystywane oprogramowanie do zarządzania wydajnością aplikacji może być zdolne do monitorowania szerokiej gamy aplikacji i struktur, ale najważniejsze jest oszacowanie narzędzia pod kątem indywidualnych potrzeb biznesowych danej organizacji. Ponieważ np. dane narzędzie do zarządzania wydajnością aplikacji może pomagać w monitorowaniu serwera sieci Web oraz statystyk wydajności bazy danych, o którą jest oparty; ale co z zarządzaniem wydajnością zbudowanej wewnętrznie w firmie aplikacji sieci Web? Idealne narzędzie do zarządzania wydajnością aplikacji powinno być elastyczne i obsługiwać wszystkie niezbędne możliwe do monitorowania punkty kontaktu w danej konfiguracji IT.

  2. Pojedyncza konsola dla kompletnego monitorowania

    Jak wspomnieliśmy wcześniej, idealne monitory wydajności aplikacji (narzędzia monitorowania APM) powinny posiadać wszystkie niezbędne funkcje, to jest kompletne monitorowanie, alerty i wszechstronne raporty, eliminując problemy wynikające z konieczności stosowania wielu różnych narzędzi do pomiaru i optymalizowania wydajności aplikacji.

  3. ADDM

    To interesująca i nieunikniona funkcja. Skrót ADDM rozwija się jako: Application Discovery and Dependency mapping, czyli odnajdywanie aplikacji i mapowanie zależności. To zasadniczo oznacza jedną prostą rzecz. Narzędzie do zarządzania wydajnością aplikacji powinno nie tylko automatycznie odnajdywać wszystkie aplikacje i serwery w sieci, powinno być również w stanie je przypisać do kategorii (bazy danych, maszyny wirtualne, serwery etc.) oraz zapewnić użytkownikowi możliwość wizualizacji wzajemnych zależności między aplikacjami. Ta funkcja w szczególności pomaga zaoszczędzić czas, który zwykle jest marnowany przez próbę zlokalizowania wąskiego gardła w dużej liczbie aplikacji.

  4. Główne wskaźniki wydajności

    Kiedy mówimy o głównych wskaźnikach wydajności, to mówimy o metrykach wydajności aplikacji, takich jak czasy odpowiedzi, żądania na minutę, szczegółowe informacje o wątkach i sesjach, wykorzystaniu CPU, wykorzystaniu pamięci i przestrzeni dyskowej, stanach błędów etc. Obejmuje to pierwszy zestaw kluczowych metryk aplikacji i infrastruktury, które się sprawdza w celu zmierzenia wydajności aplikacji. System zarządzania wydajnością aplikacji powinien być w stanie precyzyjnie przedstawiać te dane w regularnych interwałach czasu.

  5. Alerty i automatyczne działania

    Funkcjonalność alertów to jedno z podstawowych wymagań dla narzędzi APM. Progi dla tych alertów powinny być konfigurowane dla indywidualnych metryk, jak również dla aplikacji jako całości. Ułatwiają one szybszą identyfikację problemów z wydajnością aplikacji. Jednak powinny być one w stanie również wykonywać skonfigurowane wstępnie działania dla szybszego rozwiązywania problemów. Kilka przykładów zautomatyzowanych działań to wysłanie powiadomienia (SMS, e-mail), ponowne uruchomienie VM, wykonanie operacji MBean, wygenerowanie zrzutu ze stertą/zrzutu wątków/odzyskanie pamięci etc.

  6. Wgląd na poziomie kodu oraz śledzenie transakcji

    Większość narzędzia do zarządzania wydajnością aplikacji sieciowych zapewniają pełną widoczność aż do poziomu kodu w celu pomocy w odkryciu problemów, które mogłyby w przeciwnym razie pozostać niezauważone aż do momentu, kiedy nie zgłosiłby ich użytkownik końcowy. Wykorzystywane rozwiązanie do zarządzanie wydajnością aplikacji sieciowych powinno być w stanie wykonywać migawki indywidualnych śladów transakcji, oraz pozwalać na zagłębianie się do poziomu zapytań SQL w celu wykrywania powolnie działających zapytań. Twój zespół DevOps prawdopodobnie jest w stanie stwierdzić, jak wartościowe są te rodzaje wglądu w fazie rozwoju aplikacji.

  7. Monitorowanie doświadczeń użytkownika końcowego i monitorowanie transakcji syntetycznych

    Pomyśl przez chwilę o tych pytaniach.

    1. Ile czasu potrzeba na załadowanie aplikacji/strony WWW?
    2. Ile czasu potrzeba na wykonanie transakcji finalizacji zakupu?
    3. Ile czasu potrzeba na wysłanie wiadomości e-mail z serwera poczty etc.?
    4. Ile czasu potrzeba na żądanie wyszukania LDAP?
    5. Ile czasu potrzeba na pobranie załącznika 1 MB z serwisu FTP?

    Jeżeli wykorzystywane przez Ciebie narzędzie do zarządzania wydajnością aplikacji (oprogramowanie APM) odpowiednio odpowiada na te pytania, to będziesz mieć mniej skarg od klientów dotyczących dostarczanych usług. Przy pomocy transakcji syntetycznych, które symulują zachowanie użytkownika na witrynie/w aplikacji, powinieneś być w stanie zlokalizować wszystkie problemy z wydajnością (czas ładowania strony, błędy 404 etc.) przed wdrożeniem aplikacji. Zapewni to również jednolitą wydajność aplikacji po ich wdrożeniu niezależnie od miejsca na planecie, z którego są one uruchamiane.

  8. Dostosowane pulpity nawigacyjne

    Zarządzanie wszystkimi aplikacjami z tym samym poziomem szczegółowości jest niesamowicie wyczerpujące. Wyobraź sobie dodanie do narzędzia do monitorowania kilkuset serwerów/aplikacji; dzięki zorganizowanemu pulpitowi nawigacyjnemu pokazującemu takie statystyki, jak ostatnie alerty krytyczne, zajęte serwery, aktualna dostępność serwerów etc. będziesz jasno wiedzieć, którym serwerem musisz się zająć. Oczywiście najbardziej znaczące statystyki z punktu widzenia wartości dla biznesu mogą zmieniać się między różnymi organizacjami, dlatego pulpit nawigacyjny powinien mieć możliwość dostosowania.

  9. Raportowanie

    Raporty to ważny środek do okresowego analizowania i udostępniania informacji o wydajności aplikacji. Analiza ta może pomóc w zidentyfikowaniu nadmiernie i mało wykorzystywane serwery, zrozumieć trendy wydajności APM, przewidywać przyszłe trendy w oparciu o dane historyczne i w związku z tym planować realokację zasobów i modernizacje infrastruktury. Usługa zarządzanie wydajnością aplikacji dla małych, średnich lub dużych przedsiębiorstw, bez odpowiedniej analityki aplikacji, dowolna instancja APM jest niepełna.

  10. Koszt i skalowalność

    Jednym z najważniejszych czynników przy wybieraniu rozwiązań do zarządzanie wydajnością aplikacji, równie (a może nawet bardziej) ważnym, co jej funkcje jest cena, jaką się za nie płaci. Zazwyczaj dla większości dostawców cena za monitorowanie niewielkiej sieci składającej się z kilkuset serwerów może nie wydawać się zbyt wysoka. Jednak zawsze należy pamiętać, że ewentualne koszty wzrosną w momencie, kiedy dana organizacja zdecyduje się na zwiększenie wydajności swojej infrastruktury. Czy cena skalowania będzie miała istotny wpływ na budżet i utrudni przeprowadzenie transformacji cyfrowej? Warto się nad tym zastanowić.

    Podczas gdy większość narzędzi do zarządzania wydajnością aplikacji dla korporacji obejmuje kilka aspektów omawianych na tym blogu, to rozwiązaniem, które najlepiej spełnia potrzeby danej organizacji jest rozwiązanie, które się samodzielnie oceniło w swoim własnym monitorowanym środowisku. Co powiedziawszy można zauważyć, że jednym z takich dobrych rozwiązań do zarządzanie wydajnością aplikacji (APM) jest Applications Manager, mający wszystkie możliwości monitorowania (monitorowanie, alerty, raporty, pulpit etc.) dostępne za bardzo korzystną cenę.

Application Performance Management (APM) Demo

Uzyskaj szczegółowy wgląd w wydajność swoich serwerów i aplikacji. Zaplanuj już dziś demonstrację Applications Manager!

Zamówienie wersji demonstracyjnej