• Czas czytania ~11 min
  • 25.08.2022

Aplikacje mają obecnie coraz większe znaczenie dla firm. Pełnią kluczowe role w kontaktach z klientami, wspomagają działania back-office i pomagają nam uzyskać lepszy wgląd w działalność biznesową.

Korzystanie z oprogramowania zapewnia nam większą wydajność i dźwignię, ale może kosztować przejrzystość.Może być trudno zobaczyć, jak dobrze klienci są obsługiwani, w jakich sytuacjach mają problemy lub zrozumieć, dlaczego części firmy nie działają zgodnie z oczekiwaniami.

Rozwiązania do monitorowania wydajności aplikacji (APM) rozwiązują ten problem, umożliwiając podgląd w czasie rzeczywistym, co dzieje się w aplikacjach.APM może dostarczyć Ci informacji, które pozwolą Ci obniżyć koszty, obniżyć churn i zapobiec przerwom w dostępności Twojej firmy. Lepsze zrozumienie interakcji z klientami może zapewnić również ścieżki do zwiększenia przychodów i retencji.

APM jest coraz bardziej istotny dla każdej firmy, która w dużym stopniu opiera się na oprogramowaniu, zwłaszcza w przypadku klientów- możliwości licowania.

Jeśli jesteś nowy w APM, może to brzmieć onieśmielająco, ale nie martw się – w tym poście opiszemy, jak działa APM i co może dla Ciebie zrobić.

< p>Oto krótki przegląd tego, co omówimy. Możesz przejść do przodu, jeśli ma to dla Ciebie sens:

  1. What is Application Performance Monitoring (APM)?
  2. Why is App Performance Monitoring so important?
  3. APM Software Metrics: What does APM encompass?
  4. Examples of how Application Performance Monitoring can help
  5. Choosing the best APM Tool for your business
  6. Best practices in APM

Co to jest monitorowanie wydajności aplikacji (APM)?

Monitorowanie wydajności aplikacji (APM) pozwala dokładnie zobaczyć, co robią aplikacje (i dlaczego) podczas wykonywania funkcji firmy. To, co sprawia, że ​​APM jest tak potężny, to umiejętności:

Systemy APM działają, dając Twoim aplikacjom możliwość raportowania kluczowych informacji, w tym uruchomionego kodu, liczby żądań, gdzie aplikacja spędza czas na dostarczaniu żądań i kiedy coś się psuje (w tym jak często).

  • See exactly what your applications are doing while interacting with real users
  • Discover problems that may be limiting sales, keeping customers from using your product successfully, or damaging your brand experience
  • Identify when your applications are struggling and why
  • Identify where applications are wasting resources so you can tune to reduce expenses and increase availability
  • See historical trends and proactively prevent service outages

Te informacje są zbierane przez usługę APM i prezentowane w sposób łatwy do zrozumienia i rozwiązywania problemów.Możesz sprawdzić, co dzieje się z Twoją aplikacją jako całością, w tym z ilością żądań, czasem odpowiedzi, odsetkiem błędów, wykorzystaniem pamięci, rozbieżnościami między instancjami aplikacji i wieloma innymi.

Możesz również zagłębić się w szczegóły konkretnych żądań (lub zestawów żądań), aby zrozumieć, co wpływa na ich wydajność lub niepowodzenia.Może to obejmować takie rzeczy, jak identyfikowanie wycieków pamięci, zmarnowanych cykli wykonywania, powolnych zapytań do bazy danych i nie tylko.

APM obejmuje wiele sposobów na uzyskanie lepszego wglądu w aplikacje. Nieco później zagłębimy się w szczegóły dotyczące tego, co APM może dla Ciebie zrobić.

Dlaczego monitorowanie wydajności aplikacji jest tak ważne?

Czy kiedykolwiek próbowałeś kupić coś online, tylko po to, by się poddać, ponieważ strona internetowa firmy działała wolno, zawierała błędy lub nie odpowiadała? Czy kiedykolwiek próbowałeś skorzystać z usługi, za którą płacisz i na której polegasz, tylko po to, by zobaczyć, że jest uszkodzona lub niedostępna? Co myślisz o tych firmach po tym, jak to się stanie? Czy chcesz dalej robić z nimi interesy?

W dobie aplikacji, które zawsze są aktywne, zapewnienie klientom responsywnych i stabilnych doświadczeń ma kluczowe znaczenie. Podobnie jak szybkie identyfikowanie usterek w oprogramowaniu, zrozumienie ich wpływu i możliwość ich szybkiego korygowania.

Ponieważ oprogramowanie i sposób jego wdrażania stają się coraz bardziej złożone, więc rób sposoby, w jakie może zawieść.Złożone wdrożenia w chmurze, elastyczna infrastruktura i konteneryzacja zwiększają skalowalność i wydajność, ale także wprowadzają nowe sposoby na przełamywanie aplikacji w mniej oczywisty sposób. Częściowa degradacja jest teraz bardziej powszechna niż całkowita awaria. Nie jest niczym niezwykłym, że niektóre aspekty aplikacji mogą zostać uszkodzone dla niektórych klientów, nawet jeśli działają dobrze dla Twojego zespołu.

APM pozwala zobaczyć, co naprawdę dzieje się z Twoimi aplikacjami, gdy to się dzieje. Oznacza to, że możesz szybko zidentyfikować problemy i je naprawić – lub jeszcze lepiej przewidzieć je, zanim wpłyną one na klientów.

Korzystanie z APM ma również bezpośrednie korzyści dla zespołów programistycznych. Dokładne zrozumienie tego, co faktycznie dzieje się z aplikacjami produkcyjnymi, pomaga zespołom ustalać priorytety poprzez:

Podsumowując, APM dostarcza krytycznych informacji, aby zrozumieć, co naprawdę dzieje się, gdy służysz swoim klientom. Pozwala to przestać zgadywać i podejmować świadome decyzje w celu zwiększenia stabilności aplikacji, obniżenia kosztów i zwiększenia liczby klientów.

  • Identifying which bugs customers are encountering and at what rate
  • Understanding which areas of your application get the most use
  • Determining opportunities for expanding your application's value or capturing more market share
  • Focusing their efforts on the initiatives that yield the highest returns for your business

Wskaźniki oprogramowania APM: co wpływa na wydajność aplikacji Monitorowanie Encompass?

APM śledzi wiele aspektów uruchomionych aplikacji, pomagając zrozumieć, jak aplikacje działają teraz, a co to oznacza z perspektywy historycznej. APM pomaga:

Powszechne wskaźniki dla rozwiązań APM obejmują:

  1. Understand how your applications are being used: how many users are using the system at once? for how long? where are they having problems? are specific subsets of users poorly served? what is causing a problem for a specific customer?
  2. Understand your requests: how much traffic are you receiving? from where? how fast are you responding? which aspects of the application are slow?
  3. Understand your resource usage: how much CPU are you using? is your application leaking memory? are processes bloated because of poor code execution? are you running unnecessary database queries? will your application scale gracefully with growth?
  4. Track how things are changing: what are the impacts of new deploys? are you introducing new problems? are you fixing the problems you think you are?
  5. Know what isn't working: is your application experiencing errors? why? who is affected? are specific code paths or database queries slowing down your application? what can you do to fix things?

Ponadto niektóre narzędzia bardziej zaawansowane funkcje, w tym:

  • Request rates (traffic throughput) and response time
  • 95% Response time 
  • Load Balancer queue time
  • Application resource usage (CPU, Memory)
  • Apdex (User Satisfaction)
  • Error rates (application degradations and failures)

Przykłady tego, w jaki sposób monitorowanie wydajności aplikacji może pomóc

Przyjrzyjmy się kilku konkretnym przykładom, aby lepiej zrozumieć, w jaki sposób APM może Ci pomóc:

Dlaczego moja aplikacja działa wolno?

Jednym z najczęstszych problemów z aplikacjami jest niska wydajność.Może to objawiać się słabym początkowym czasem ładowania, powolnym działaniem lub przerażającym uczuciem „zawieszenia się”, gdy aplikacja przestaje odpowiadać.

  • Why is my application slow?
  • Are all requests slow or just some of them? Who is affected?
  • How can I optimize my operations to spend less money?
  • How long has this been happening? Who has been affected?
  • What are my users doing? What do they like and want more of?

Słaba wydajność ma również realny wpływ finansowy - niedawne badanie pokazuje, że współczynniki konwersji w sieci spadają o średnia 4.4% na każdą dodatkową sekundę czasu ładowania.

Dobre rozwiązanie APM będzie pokaże czas odpowiedzi (średnie i kluczowe percentyle) dla całej aplikacji, a także ułatwi analizę wydajności dla określonych tras lub ścieżek kodu.Pozwala to szybko określić, które części aplikacji działają tak, jak powinny, a które przyczyniają się do niskiej wydajności i utraty przychodów.

Czy wszystkie żądania są powolne czy tylko niektóre z nich? Kogo dotyczy?

W przypadku większości aplikacji różne typy żądań mogą znacznie różnić się szybkością. Wizualne badanie wydajności ułatwia określenie, które ścieżki kodu są problematyczne i których klientów dotyczy.

Rozwiązania APM, które umożliwiają identyfikację użytkowników lub dodawanie adnotacji do żądań z innymi kontekst niestandardowy jest bardziej skuteczny w przypadku tego rodzaju pytań.Pozwalają na głębszą segmentację i ułatwiają identyfikację żądań wpływających na konkretnego klienta.

Wiedza o tym, kogo dotyczy i w jaki sposób, ma kluczowe znaczenie zarówno w badaniu zgłoszeń klientów dotyczących błędnych zachowań, jak i w proaktywnym identyfikowaniu klientów, których dotyczy problem.

Po zidentyfikowaniu, które żądania powodują problemy z wydajnością, dobre narzędzie APM umożliwi śledzenie zaangażowanego kodu, sprawdzenie, ile czasu zużywają poszczególne części oraz zrozumienie, w jaki sposób wpływają interakcje z usługami zewnętrznymi, pamięcią podręczną i bazami danych do problemów.

Jak mogę zoptymalizować swoje operacje, aby wydawać mniej pieniędzy?

Większość aplikacji ma kilka obszarów, które są często uruchamiane i wykorzystują większość zasobów i napędzają działanie wydatki. Po zidentyfikowaniu te obszary można często zoptymalizować lub rozszerzyć za pomocą rozwiązań do buforowania lub magazynów danych o wyższej wydajności.

W szczególności w przypadku aplikacji o dużej objętości widoczność zapewniana przez narzędzia APM może być przełomowa w zmniejszaniu kosztów operacyjnych.

Od jak dawna to się dzieje? Kogo to dotyczyło?

Gdy w aplikacji pojawia się nowy problem, ważne jest, aby zrozumieć czas trwania problemu i liczbę klientów, których dotyczy. Dobre rozwiązania APM obejmują śledzenie wdrażania, dzięki czemu można łatwo określić, kiedy problem został wprowadzony, i filtrować żądania, aby określić, których klientów mógł dotyczyć.

Możliwość określenia, kiedy pojawiły się problemy, oznacza, że ​​możesz albo szybko rozwiązać problem, albo przywrócić poprzednią wersję aplikacji, której nie dotyczył, podczas gdy Twój zespół pracuje nad rozwiązaniem.

Ponadto APM umożliwia ostrzeganie o niepożądanym zachowaniu aplikacji.Twój zespół zostanie powiadomiony, aby mógł proaktywnie pracować nad łagodzeniem skutków, na długo przed usłyszeniem skarg od klientów.

Co robią moi użytkownicy: z czym zmagają się? Co im się podoba i czego chcą więcej?

Dzięki przemyślanemu oprzyrządowaniu kodu frontendu i backendu za pomocą narzędzi APM możesz obserwować zachowanie użytkowników w czasie rzeczywistym, co pozwala lepiej zrozumieć takie rzeczy, jak:

Doświadczenia klientów mogą złożyć lub złamać wniosek. Zrozumienie, w jaki sposób użytkownicy naprawdę korzystają z Twojej aplikacji, daje kontekst, w którym możesz zapobiegać utracie przychodów i identyfikować nowe możliwości rozwoju firmy.

Ważne kryteria podczas odkrywania rozwiązań APM obejmują:

Wybieranie Narzędzie APM, które jest najlepsze dla Twojej firmy

  • Which parts of your application users are using regularly?
  • Do you have different groups of users with significantly different behavior?
  • What errors are specific users seeing?

Dostępna jest szeroka gama rozwiązań APM, z których każde ma mocne i słabe strony.Przed oceną opcji dobrze jest poświęcić trochę czasu na zastanowienie się nad konkretnymi potrzebami Twojej firmy i aplikacji, aby zapewnić dobre dopasowanie.

Ważne kryteria podczas odkrywania rozwiązań APM obejmują:

Jakość obsługi preferowanych języków:

< strong>Możliwość segmentowania żądań:

Możliwości śledzenia kodu:

Oprzyrządowanie niestandardowe:

  • Does the solution have rich support for the languages you are using? 
  • Are common libraries automatically detected and instrumented? 
  • Does the tool help you identify common issues and bottlenecks for your languages/frameworks?

Połączenie aplikacji zachowanie w stosunku do wyników biznesowych:

  • Can you find requests by user, by application instance, or by other dimensions that matter to you? 
  • Can you filter by custom criteria to find the requests you care about most quickly?

Najlepsze praktyki dotyczące APM

  • Can you easily visualize where your application is spending time during a request? 
  • Can you see how time is used interacting with external resources or between services?
< p>Aby uzyskać najlepsze wyniki z dowolnego narzędzia APM, najpierw zastanów się nad konkretnymi celami biznesowymi: Jak wygląda normalne zachowanie aplikacji? Co wskazuje na prawdziwe problemy?Co, jeśli możesz to osiągnąć za pomocą swojej aplikacji, oznaczałoby, że odniosłeś sukces?

  • How easy is it to create custom events and traces in your preferred language? 
  • You will eventually outgrow built-in instrumentation for any solution so the ability to get visibility into application-specific logic easily is important.

Uzbrojony w te informacje, rozważ następujące kwestie:

  • Can you visualize the key metrics that indicate business success or failure for each of your applications?
  • When application behavior changes can you easily understand what the impact is for your business? 

Co jest mierzone, tym zarządza się

Firmy polegają na oprogramowaniu do prowadzenia kluczowych aspektów swojej działalności. Biorąc to pod uwagę, ważne jest, aby aplikacje były szybkie, wydajne i niezawodne. Jednak wiele firm ma niewielkie możliwości zrozumienia, jak faktycznie zachowują się ich aplikacje.

Podejmowanie decyzji bez jasnych informacji o tym, jak działa Twoje oprogramowanie, jest receptą na kłopoty. Klienci są sfrustrowani powolnymi, błędnymi interakcjami, a krytyczne procesy biznesowe zawodzą, czasami nawet bez wiedzy pracowników.

  • Define your key Service Level Agreements (SLAs) and ensure you can visualize and alert on them
  • Create alerts for meaningful shifts from application norms in request volume, latency, and error rates
  • Pair APM with infrastructure monitoring so you can understand when changes in your applications are driven by changes in environment, rather than changes in code
  • If your applications' resource usage can scale dynamically (common for cloud-based deployments), consider using your key APM metrics as triggers for your auto-scaling processes
  • Last but certainly not least, ensure your engineers are aware of your APM tools and are comfortable using them to their full capability

APM pozwala wyeliminować zgadywanie i zapewnia głęboki wgląd w aplikacje, które napędzają Twoją firmę.Zrozumienie dokładnego zachowania aplikacji umożliwia Tobie i Twojemu zespołowi szybkie lokalizowanie defektów, poprawę dostępności, redukcję kosztów i obsługę klientów w sposób, w jaki chcą być obsługiwani.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297