Ciągłe monitorowanie aplikacji i usług

Ukończone

W tej lekcji dowiesz się:

  • Sposób ciągłego monitorowania pomaga zweryfikować kondycję, wydajność i niezawodność aplikacji i infrastruktury.
  • Sposób obserwowania udostępnia dane z systemów, które należy monitorować.
  • Jak usługi Azure Monitor i Application Insights umożliwiają implementowanie ciągłego monitorowania.
  • Jak łącznik zarządzania usługami IT może pomóc w zaimplementowaniu systemu obsługi biletów.

Co to jest ciągłe monitorowanie?

Zespół chce monitorować witrynę internetową i infrastrukturę podczas testu beta. Tim zrobił kilka badań i nauczył się kilku rzeczy.

Ciągłe monitorowanie odnosi się do procesów i technologii, których można użyć do monitorowania każdej fazy cyklu życia aplikacji. Ciągłe monitorowanie ułatwia weryfikowanie kondycji, wydajności i niezawodności aplikacji oraz infrastruktury w miarę przechodzenia zmian z programowania do środowiska produkcyjnego.

Ciągłe monitorowanie opiera się na pojęciach dotyczących ciągłej integracji/ciągłego wdrażania, które ułatwiają tworzenie i dostarczanie oprogramowania szybciej i bardziej niezawodnie w celu zapewnienia ciągłej wartości użytkownikom.

Co to jest obserwowanie?

Możliwość obserwacji odnosi się do udostępniania danych z poziomu systemu, który chcesz monitorować. Monitorowanie to rzeczywiste zadanie zbierania i wyświetlania tych danych.

Co to jest usługa Azure Monitor?

Azure Monitor to usługa na platformie Azure, która zapewnia wgląd w pełne stosy w aplikacjach i infrastrukturze zarówno w chmurze, jak i lokalnie.

Usługa Azure Monitor współpracuje z narzędziami programistycznymi, takimi jak Visual Studio i Visual Studio Code, dzięki czemu można jej używać podczas faz programowania i testowania. Integruje się z usługą Azure DevOps, aby zapewnić zarządzanie wydaniami i zarządzanie elementami roboczymi w fazie wdrażania.

Usługa Azure Monitor integruje się również z narzędziami do zarządzania usługami IT (ITSM) oraz z narzędziami do zarządzania informacjami i zdarzeniami zabezpieczeń (SIEM), aby ułatwić śledzenie problemów i zdarzeń w istniejących procesach IT.

Włączanie monitorowania w aplikacjach

Aplikacje są złożone i mają wiele połączonych składników. Aby zwizualizować kompleksowe transakcje i połączenia we wszystkich systemach, należy włączyć monitorowanie wszystkich aplikacji internetowych i usług.

Jeśli nie masz istniejącego projektu w usłudze Azure DevOps, możesz zacząć od interfejsu wiersza polecenia dla deweloperów platformy Azure. Interfejs wiersza polecenia dla deweloperów platformy Azure (azd) to narzędzie typu open source, które przyspiesza czas potrzebny na pobranie aplikacji z lokalnego środowiska deweloperskiego na platformę Azure. azd Zapewnia najlepsze rozwiązanie, przyjazne dla deweloperów polecenia mapowane na kluczowe etapy przepływu pracy, niezależnie od tego, czy pracujesz w terminalu, edytorze, czy zintegrowanym środowisku projektowym (IDE), czy ciągłej integracji/ciągłego wdrażania.

Następnie możesz dodać ciągłe monitorowanie do potoku wydania, łącząc usługę Azure Pipelines z usługą aplikacja systemu Azure Insights. Application Insights to funkcja usługi Azure Monitor, której można użyć do monitorowania aplikacji na żywo. Wkrótce przyjrzymy się usłudze Application Insights.

Włączanie monitorowania infrastruktury

Aplikacje są tak niezawodne, jak ich podstawowa infrastruktura. Włączenie monitorowania w całej infrastrukturze pomaga osiągnąć pełną obserwację i ułatwia odnajdywanie głównych przyczyn awarii.

Usługa Azure Monitor ułatwia śledzenie kondycji i wydajności całej infrastruktury hybrydowej, w tym maszyn wirtualnych, kontenerów, magazynu i sieci.

Za pomocą usługi Azure Monitor można zbierać następujące elementy:

Infrastruktura jako kod umożliwia opisanie infrastruktury potrzebnej dla aplikacji za pomocą kodu. Ponieważ opisano infrastrukturę przy użyciu kodu, możesz postępować zgodnie z tymi samymi schematami programowania, testowania i przechowywania wersji używanymi przez zespoły DevOps dla aplikacji.

Aby włączyć monitorowanie przy użyciu infrastruktury jako podejścia do kodu, można użyć:

  • Szablony usługi Resource Manager umożliwiające monitorowanie i konfigurowanie alertów w dużym zestawie zasobów.
  • Usługa Azure Policy wymusza różne reguły dotyczące zasobów. Usługa Azure Policy pomaga zapewnić zgodność tych zasobów ze standardami firmowymi i umowami dotyczącymi poziomu usług (SLA).

Łączenie zasobów przy użyciu grup zasobów platformy Azure

Typowa aplikacja na platformie Azure obejmuje zasoby obliczeniowe, takie jak maszyny wirtualne, usługa aplikacja systemu Azure Service, mikrousługi, klastry usługi Azure Kubernetes Service (AKS) i usługa Azure Service Fabric. Te aplikacje często zależą od usług danych i sieci, takich jak Azure Event Hubs, Azure Storage, Microsoft SQL Database i Azure Service Bus.

Na platformie Azure grupa zasobów zawiera powiązane zasoby platformy Azure. Połącz zasoby w grupie zasobów, aby uzyskać pełną wgląd we wszystkie zasoby tworzące różne aplikacje. Usługa Azure Monitor dla grup zasobów zapewnia podstawowy sposób śledzenia kondycji i wydajności całej aplikacji oraz umożliwia przechodzenie do szczegółów poszczególnych składników, dzięki czemu można rozwiązywać problemy z błędami.

Zapewnianie jakości za pośrednictwem ciągłego wdrażania

Ciągła integracja/ciągłe wdrażanie umożliwia automatyczne integrowanie i wdrażanie zmian kodu w aplikacji na podstawie wyników zautomatyzowanego testowania. Ciągła integracja/ciągłe wdrażanie usprawnia proces wdrażania i weryfikuje jakość kodu przed przejściem zmian do środowiska produkcyjnego.

Poniżej przedstawiono kilka zalecanych sposobów zapewnienia jakości podczas procesu wdrażania:

  • Usługa Azure Pipelines umożliwia zaimplementowanie potoku ciągłej integracji/ciągłego wdrażania, który automatyzuje cały proces, w tym uruchamianie testów automatycznych, od momentu zatwierdzenia kodu do środowiska produkcyjnego.

  • Bramy wdrażania umożliwiają dodawanie monitorowania do środowisk przed wdrożeniem i po wdrożeniu.

    Bramy wdrażania pomagają zapewnić, że kluczowe metryki kondycji i wydajności (KPI) są spełnione podczas przechodzenia aplikacji z programowania do środowiska produkcyjnego. Bramy wdrażania pomagają również upewnić się, że wszelkie różnice w środowisku infrastruktury lub sposób skalowania nie wpływają negatywnie na wskaźniki KPI.

  • Zachowaj oddzielne wystąpienia monitorowania między różnymi środowiskami wdrażania, takimi jak programowanie, testowanie, przemieszczanie i produkcja.

    Oddzielne wystąpienia monitorowania pomagają zagwarantować, że wszystkie zebrane dane są istotne w aplikacjach i infrastrukturze. Jeśli musisz skorelować dane między środowiskami, możesz użyć wielu wykresów zasobów w Eksploratorze metryk lub utworzyć zapytania obejmujące wiele zasobów w usłudze Log Analytics.

Tworzenie alertów, nad którymi można wykonywać działania

Aby upewnić się, że działania związane z monitorowaniem są skuteczne, należy powiadomić administratorów o wszelkich aktywnych problemach, a także o przewidywanych problemach. Oto kilka sposobów osiągnięcia tego celu:

  • Utwórz alerty w usłudze Azure Monitor na podstawie dzienników i metryk, aby zidentyfikować przewidywalne stany awarii.

    Celem jest zapewnienie, że każdy alert reprezentuje warunek krytyczny, nad którym można działać. Wynik fałszywie dodatni występuje, gdy monitorowanie zgłasza problem, który nie istnieje. Użyj progów dynamicznych, aby automatycznie obliczyć linie bazowe na danych metryk, zamiast definiować własne progi statyczne.

  • Zdefiniuj akcje dla alertów, które najbardziej efektywnie powiadamiają administratorów.

    Dostępne akcje dla powiadomień obejmują krótką usługę wiadomości (SMS), pocztę e-mail, powiadomienia wypychane lub połączenia głosowe.

  • Użyj bardziej zaawansowanych akcji, aby nawiązać połączenie z narzędziem ITSM lub innymi systemami zarządzania alertami za pośrednictwem elementów webhook.

  • Użyj elementów Runbook lub elementów webhook usługi Azure Automation, aby skorygować warunki alertu .

  • Skalowanie automatyczne umożliwia dynamiczne dostosowywanie zasobów obliczeniowych na podstawie zbieranych metryk.

Tworzenie pulpitów nawigacyjnych i skoroszytów

Zapewnienie, że zespoły programistyczne i zespoły operacyjne mają dostęp do tych samych danych telemetrycznych i narzędzi, dzięki czemu mogą wyświetlać wzorce w całym środowisku i zminimalizować średni czas wykrywania (MTTD) i czasu średniego do przywrócenia (MTTR). Oto kilka sposobów, aby to zrobić:

  • Utwórz niestandardowe pulpity nawigacyjne oparte na typowych metrykach i dziennikach dla różnych ról w organizacji.

    Pulpity nawigacyjne mogą łączyć dane z wielu zasobów platformy Azure.

  • Tworzenie skoroszytów usługi Azure Monitor w celu dzielenia się wiedzą między zespołami deweloperów i operacji.

    Skoroszyt można przygotować jako dynamiczny raport zawierający wykresy i podsumowania dzienników. Deweloperzy mogą tworzyć przewodniki rozwiązywania problemów, aby ułatwić działowi pomocy technicznej lub operacjom rozwiązywanie problemów.

Ciągła optymalizacja

Monitorowanie jest jednym z podstawowych aspektów popularnej kompilacji — miary — nauka filozofii, która zaleca ciągłe śledzenie wskaźników KPI i metryk zachowania użytkowników, a następnie optymalizowanie ich za pomocą ćwiczeń dotyczących planowania iteracyjnego. Usługa Azure Monitor ułatwia zbieranie metryk i dzienników, które są istotne dla Twojej firmy, oraz dodawanie nowych punktów danych w następnym wdrożeniu.

  • Użyj narzędzi w usłudze Application Insights, aby śledzić zachowanie i zaangażowanie użytkowników końcowych.
  • Użyj analizy wpływu, aby ułatwić określenie priorytetów obszarów, na których należy skoncentrować się na ulepszaniu najważniejszych wskaźników KPI.

Co to jest usługa Azure Application Insights?

Application Insights to usługa zarządzania wydajnością aplikacji (APM) dla deweloperów sieci Web. Umożliwia:

  • Monitorowanie aktywnej aplikacji internetowej.
  • Automatycznie wykrywaj anomalie wydajności.
  • Zdiagnozuj błędy i dowiedz się, co użytkownicy faktycznie robią z aplikacją.

Usługa Application Insights współpracuje z platformami .NET, Node.js, Java i wieloma innymi językami programowania i strukturami. Działa ona z aplikacjami hostowanymi w chmurze lub lokalnie.

Usługa Application Insights udostępnia punkty połączenia, których można użyć do integracji z istniejącymi procesami i narzędziami metodyki DevOps. Usługa Application Insights integruje się również z programem Visual Studio App Center, co umożliwia monitorowanie i analizowanie danych telemetrycznych z aplikacji mobilnych.

Jak działa usługa Application Insights?

Zacznij od dodania małego pakietu instrumentacji do aplikacji. Następnie utworzysz zasób usługi Application Insights w witrynie Azure Portal. Instrumentacja monitoruje aplikację i wysyła dane telemetryczne z powrotem na platformę Azure, do której można uzyskać dostęp z portalu. Pamiętaj, że aplikacja może działać w dowolnym miejscu; nie musi być hostowana na platformie Azure.

Oprócz aplikacji internetowych można instrumentować niemal każdy rodzaj składnika w tle. Można nawet instrumentować kod JavaScript.

Oto diagram przedstawiający przepływ danych monitorowania z usług na żywo do usługi Application Insights. Usługa Application Insights może następnie zgłaszać alerty lub wypychać dane do innego narzędzia, aby można było wizualizować i interpretować trendy.

Diagram przedstawiający przepływ danych monitorowania z usług na żywo do usługi Application Insights.

Możesz również ściągnąć dane telemetryczne ze środowisk hosta. Te dane obejmują liczniki wydajności, Diagnostyka Azure i dzienniki platformy Docker. Można również skonfigurować syntetyczne testy monitorowania . Syntetyczne monitorowanie używa zestawu transakcji do oceny wydajności i dostępności. Transakcje syntetyczne to przewidywalne testy, które umożliwiają porównywanie wyników z wydania do wydania.

Co to jest narzut? Wpływ na wydajność aplikacji jest zwykle niewielki. Wywołania śledzenia nie blokują się i są wsadowe i wysyłane w osobnym wątku.

Co monitoruje usługa Application Insights?

Usługa Application Insights pomaga zespołom deweloperów zrozumieć, jak działa aplikacja i jak jest używana.

Monitory usługi Application Insights:

  • Współczynniki żądań, czasy odpowiedzi i współczynniki niepowodzeń.

    Dowiedz się, które strony są najbardziej popularne, w jakich porach dnia i gdzie znajdują się twoi użytkownicy. Zobacz, które strony działają najlepiej. Zobacz, jak czasy odpowiedzi i współczynniki niepowodzeń są porównywane z poziomami ruchu.

  • Czy usługi zewnętrzne spowalniają Cię.

  • Wyjątki aplikacji.

    Przeanalizuj zagregowane statystyki lub wybierz określone wystąpienia i zbadaj ślad stosu dla powiązanych żądań. Usługa Application Insights zgłasza wyjątki występujące zarówno na serwerze, jak i na kliencie.

  • Wydajność ładowania strony internetowej zgodnie z raportem z przeglądarki internetowej użytkownika.

  • Wywołania AJAX ze stron internetowych, w tym czasy odpowiedzi i współczynniki niepowodzeń.

  • Liczby użytkowników i sesji.

  • Liczniki wydajności z serwerów systemu Windows lub Linux, takie jak użycie procesora CPU, pamięci i sieci.

  • Diagnostyka hosta z platformy Docker lub Azure.

  • Dzienniki śledzenia diagnostycznego z aplikacji. Dzięki temu można skorelować zdarzenia śledzenia z żądaniami.

  • Niestandardowe zdarzenia i metryki zapisywane samodzielnie w kodzie klienta lub serwera. Możesz na przykład śledzić zdarzenia, takie jak sprzedane elementy lub wygrane gry.

Gdzie mogę zobaczyć swoją telemetrię?

Poniżej przedstawiono sposoby wyświetlania i śledzenia danych telemetrycznych:

  • Wykrywanie inteligentne

    Alerty automatyczne dostosowują się do normalnych wzorców telemetrii Twojej aplikacji i są wyzwalane, gdy wystąpi coś poza zwykłym wzorcem. Możesz też ustawić alerty dla konkretnych poziomów metryk niestandardowych lub standardowych.

    Zrzut ekranu przedstawiający wykrywanie inteligentne w usłudze Application Insights.

  • Mapa aplikacji

    Mapa aplikacji pomaga dostrzec wąskie gardła wydajności oraz miejsca najczęstszych awarii we wszystkich składnikach aplikacji rozproszonej.

    Zrzut ekranu przedstawiający mapę aplikacji w usłudze Application Insights.

  • Profiler

    Profiler można uruchamiać w aplikacjach ASP.NET i ASP.NET Core działających w usłudze aplikacja systemu Azure, które korzystają z warstwy usługi Podstawowa lub nowszej.

    Zrzut ekranu przedstawiający profilera w usłudze Application Insights.

  • Analiza użycia

    Ta funkcja umożliwia analizowanie segmentacji i przechowywania użytkowników.

    Zrzut ekranu przedstawiający analizę użycia w usłudze Application Insights.

  • Wyszukaj

    Wyszukiwanie ułatwia znajdowanie i eksplorowanie poszczególnych elementów telemetrii, takich jak widoki stron, wyjątki lub żądania internetowe.

    Zrzut ekranu przedstawiający wyszukiwanie w usłudze Application Insights.

  • Eksplorator metryk

    Eksplorator metryk umożliwia wykreślenie wykresów, wizualne korelowanie trendów oraz badanie skoków i spadków w metrykach.

    Zrzut ekranu przedstawiający Eksploratora metryk w usłudze Azure Monitor.

  • Transmisja strumieniowa metryk na żywo

    Podczas wdrażania nowej kompilacji należy obserwować wskaźniki wydajności niemal w czasie rzeczywistym, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami.

    Zrzut ekranu przedstawiający strumień metryk na żywo w usłudze Application Insights,

  • Log Analytics

    Odpowiedz na trudne pytania dotyczące wydajności i użycia aplikacji przy użyciu zaawansowanego języka zapytań.

    Zrzut ekranu przedstawiający usługę Log Analytics w usłudze Azure Monitor.

  • Debuger migawek

    Zbierz migawkę debugowania z aktywnej aplikacji internetowej.

    Zrzut ekranu przedstawiający debuger migawki w usłudze Application Insights.

  • Power BI

    Integruje metryki użycia z innymi analizami biznesowymi.

    Zrzut ekranu przedstawiający usługę Power BI.

  • Eksport ciągły

    Wyeksportuj nieprzetworzone dane do magazynu zaraz po ich nadejściu.

    Zrzut ekranu przedstawiający eksport ciągły w usłudze Application Insights.

Co to jest łącznik zarządzania usługami IT?

Łącznik zarządzania usługami IT (ITSMC) dla platformy Azure zapewnia dwukierunkową integrację między narzędziami do monitorowania platformy Azure i narzędziami ITSM, w tym:

  • ServiceNow
  • Provance
  • Cherwell
  • System Center Service Manager

Narzędzia do monitorowania platformy Azure można zintegrować z usługą ITSMC w celu:

  • Tworzenie lub aktualizowanie elementów roboczych w narzędziach ITSM na podstawie alertów platformy Azure.
  • Ściąganie zdarzeń i zmienianie danych żądania z narzędzi ITSM do usługi Azure Log Analytics.

Narzędzia do monitorowania platformy Azure umożliwiają identyfikowanie, analizowanie i rozwiązywanie problemów. Jednak elementy robocze związane z problemem są zwykle przechowywane w narzędziu ITSM. Bardziej sensowne jest zaimplementowanie systemu biletów za pomocą kontrolera ITSMC. W ten sposób zamiast wracać do tyłu między narzędziem ITSM i narzędziami do monitorowania platformy Azure, możesz uzyskać wszystkie potrzebne informacje w jednym miejscu. ITSMC ulepsza środowisko rozwiązywania problemów, skracając czas potrzebny na rozwiązywanie problemów.