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ługa Azure Monitor i aplikacja Szczegółowe informacje umożliwiają implementowanie ciągłego monitorowania.
  • Jak Połączenie or 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 aplikacja systemu Azure Szczegółowe informacje. Aplikacja Szczegółowe informacje to funkcja usługi Azure Monitor, której można użyć do monitorowania aplikacji na żywo. Wkrótce przyjrzymy się Szczegółowe informacje aplikacji.

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 Szczegółowe informacje aplikacji, 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?

Aplikacja Szczegółowe informacje 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ą.

Aplikacja Szczegółowe informacje 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.

Aplikacja Szczegółowe informacje zapewnia punkty połączenia, których można użyć do integracji z istniejącymi procesami i narzędziami DevOps. Usługa Application Szczegółowe informacje 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 Szczegółowe informacje aplikacji 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 Szczegółowe informacje. Aplikacja Szczegółowe informacje może następnie zgłaszać alerty lub wypychać dane do innego narzędzia, aby można było wizualizować i interpretować trendy.

A diagram that shows the flow of monitoring data from live services into 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?

Aplikacja Szczegółowe informacje pomaga zespołom deweloperów zrozumieć, jak działa aplikacja i jak jest używana.

Monitory Szczegółowe informacje aplikacji:

  • 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ń. Aplikacja Szczegółowe informacje 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.

    A screenshot showing Smart Detection in 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.

    A screenshot showing the Application Map in 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.

    A screenshot showing the Profiler in Application Insights.

  • Analiza użycia

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

    A screenshot showing Usage analysis in Application Insights.

  • Wyszukaj

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

    A screenshot showing Search in 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.

    A screenshot showing the Metrics Explorer in 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.

    A screenshot showing the Live Metrics Stream in Application Insights,

  • Log Analytics

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

    A screenshot showing the Log Analytics in Azure Monitor.

  • Debuger migawek

    Zbierz migawkę debugowania z aktywnej aplikacji internetowej.

    A screenshot showing the Snapshot Debugger in Application Insights.

  • Power BI

    Integruje metryki użycia z innymi analizami biznesowymi.

    A screenshot showing Power BI.

  • Eksport ciągły

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

    A screenshot showing Continuous Export in Application Insights.

Co to jest Połączenie or zarządzania usługami IT?

Usługa IT Service Management Połączenie or (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.