Czym jest obserwowalność i dlaczego ma znaczenie? - Część 1
Zanim zdefiniujesz obserwowalność, rozważ następujący przykład: Prowadzisz stronę e-commerce i chcesz zrozumieć customer experience klientów odwiedzających stronę, a także jak przekłada się to na sprzedaż. Zauważyłeś, że długie czasy wczytywania strony prowadzą do słabego customer experience, co z kolei prowadzi do porzucania koszyków i kupowania konkurencyjnych produktów.
Dlatego jeśli strona bezpośrednio wpływająca na konwersję sprzedaży ładuje się powoli, musisz określić przyczynę, aby jak najszybciej rozwiązać problem i zapewnić szybsze ładowanie. Mniej porzuconych koszyków oznacza wzrost sprzedaży. W dłuższej perspektywie warto również określić, czy można zaimplementować zmiany architektoniczne, aby aktywnie zapobiegać problemom z ładowaniem strony.
Obserwowalność pozwala robić wszystkie te rzeczy. Pozwala zrozumieć, co i dlaczego dzieje się w systemie, dzięki czemu szybciej skoncentrujesz się na kluczowych kwestiach. Przedstawimy to na naszym przykładzie i zbadamy, w jaki sposób obserwowalność pomaga radzić sobie z incydentem na stronie e-commerce.
Amazon CloudWatch Alarm jest uruchamiany, gdy czas renderowania strony szczegółów produktu przekroczy ustawiony przez Ciebie próg. Amazon CloudWatch Service Lens zapewnia całościowy widok aplikacji. Podczas przeglądu ślady pokazują duże opóźnienia na stronie Product Details, więc należy przejrzeć logi. Amazon CloudWatch Contributor Insights pokazuje, że większość żądań przekraczających próg dotyczy pojedynczego ID produktu w katalogu. Śledzenie AWS X-Ray dla jednego żądania zapewnia identyfikator produktu. Śledzenie udostępnia również kontekst skojarzony z tą interakcją, taki jak parametry żądania przekazane przez klienta, wywołania usług zaangażowanych w renderowanie strony szczegółów oraz czas przetwarzania żądania przez każdy komponent. Badanie śladów pokazuje, że strona spędza większość czasu czekając na kilka dużych obrazów osadzonych na stronie produktu. Informacje te umożliwiają podjęcie natychmiastowych działań w celu buforowania tych obrazów za pośrednictwem Amazon CloudFront lub zmniejszenia ich rozmiaru.
Po odkryciu, że alarm został wywołany przez nagle popularny produkt, przeprowadzasz dalsze badania, aby zrozumieć tę popularność. Szukając przyczyn według adresu URL strony odsyłającej, stwierdzasz, że ruch do tej strony szczegółowej pochodzi z witryny mediów społecznościowych, w której infuencer połączył się z tym produktem. Zrozumienie wpływu mediów społecznościowych na sprzedaż może skłonić zespół development’u do nadania priorytetu wdrażaniu zaległych funkcji lub ulepszeń. Mogą nadać priorytet implementacji sieci dostarczania treści (Amazon CloudFront), aby dostarczać treści statyczne, takie jak obrazy i wideo, z mniejszymi opóźnieniami. Mogą też zaimplementować renderowanie zawartości strony produktu jako mikrousługi, które umożliwiają ładowanie podstawowej zawartości i symboli zastępczych niezależnie od plików graficznych i wideo. Może to również zmienić strategię marketingową firmy.
Czym jest obserwowalność?
Obserwowalność pozwala na uzyskanie wglądu w systemy i zadawanie nowych pytań za pomocą metryk, logów lub śladów. Zapewnia całościowy widok workload’u, z bogatymi informacjami kontekstowymi, pozwalającymi zrozumieć, dlaczego system spełnia lub nie spełnia Twoich celów dotyczących poziomu usług (SLO - Service Level Objectives) mierzonych za pomocą kluczowych wskaźników wydajności (KPI - Key Performance Indicators). Obserwowalność jest określana przez kluczowe czynniki biznesowe, a nie skupianie się tylko na wglądach na poziomie komponentów związanych z błędami, konfiguracją, rozliczaniem, wydajnością i bezpieczeństwem.
Monitorowanie i obserwowalność
Monitoring umożliwia posiadanie obserwowalnego systemu. Systemy wykorzystują monitorowanie do pomiaru stanu systemu za pomocą wskaźników KPI, które zapewniają wgląd w jego obserwowalne właściwości, takie jak niezawodność, dostępność i wydajność. Skuteczna strategia obserwowalności nie może istnieć bez skutecznego monitorowania.
Jak zbudować strategię obserwowalności
Twoja strategia obserwowalności musi działać wstecz od Twoich potrzeb biznesowych. Opracowanie czysto technicznej strategii, która nie uwzględnia wymagań biznesowych, przekształci się w niekompletne rozwiązanie.
Obserwowalność wymaga dwóch podstawowych zdolności. Pierwszym z nich jest wyraźne dopasowanie zespołów biznesowych i technologicznych w celu zrozumienia kluczowych potrzeb i celów biznesowych. Architektura aplikacji powinna zostać zoptymalizowana pod kątem potrzeb biznesowych. Pozwala to zidentyfikować kluczowe wskaźniki wydajności potrzebne do pomiaru i budowania możliwości monitorowania tych KPIs. Aby uzyskać więcej informacji na temat zapewniania wspólnego zrozumienia między zespołami, zapoznaj się z Operational Excellence pillar of Well-Architected i dowiedz się, jak budować Cloud Center of Excellence.
Drugim wymaganiem jest oprzyrządowanie systemu do przechwytywania danych telemetrycznych potrzebnych do monitorowania systemu, a następnie określenie kontekstu żądań przyczyniających się do kluczowych wskaźników wydajności. Te przechwycone dane składają się z logów, metryk i śladów. Wykorzystaj standardy open source, takie jak AWS Distro for OpenTelemetry, lub usług AWS, takie jak Amazon CloudWatch i AWS X-Ray, do zbierania danych telemetrycznych z Twojej aplikacji. Ponadto wykorzystaj usługę Amazon Managed Service for Grafana, aby uzyskać zbiorczy widok, a także zagłębić się w metryki aplikacji przechwycone przez Amazon CloudWatch. Usługa Amazon Managed Service for Prometheus pozwala zagłębić się w dane dotyczące kontenerów. AWS X-Ray dostarcza ślady opisujące, w jaki sposób żądania przechodzą przez system, dzięki czemu możesz badać transakcje obejmujące wiele komponentów. Amazon CloudWatch umożliwia także eksplorację, analizę i wizualizację logów, dzięki czemu możesz łatwo rozwiązywać problemy operacyjne.
Wspólnie Twoje KPIs wraz z danymi telemetrycznymi dostarczą informacji, które pozwolą Ci szybko zrozumieć przyczynę alarmów i zdarzeń, które mogą zagrozić wynikom biznesowym. W stale zmieniającym się środowisku obserwowalność jest niezbędna do poprawy stosunku sygnału do szumu w monitorowaniu i pomaga Twoim zespołom skupić się na tym, co naprawdę ma znaczenie dla Twojej firmy.
Droga do obserwowalności
Obserwowalność to podróż. Twoja strategia obserwowalności powinna ewoluować w czasie w oparciu o wnioski wyniesione z obsługi Twoich systemów. Musisz wyregulować źródła, dane i analizy telemetrii, aby szybko i wydajnie identyfikować nowe trendy lub spostrzeżenia. Spostrzeżenia dotyczące obserwowalności powinny być wykorzystywane do ulepszania systemów, a także do tego, jak te systemy są odpowiednio wyposażone do obsługi potrzeb biznesowych. Niezależnie od tego, na jakim etapie drogi znajdują się Twoje zespoły, czy dopiero zaczynają opracowywać strategię monitorowania, czy już wdrażają ciągłe ulepszenia strategii obserwowalności, Twoje monitorowanie i obserwowalność powinny opierać się na wspieraniu potrzeb biznesowych.
Opracowanie obserwowalnego systemu wymaga wstępnych inwestycji w czas, zasoby, umiejętności i narzędzia. Może zaistnieć potrzeba utrzymania go poprzez ciągłe inwestycje. Analiza możliwości określi, które korzyści z obserwowalności należy priorytetowo wdrożyć.
Dowiedz się więcej na temat obserwowalności w AWS.
źródło: AWS