Szczegóły ebooka

Inżynieria obserwowalności. Doskonalenie produkcyjnych systemów oprogramowania

Inżynieria obserwowalności. Doskonalenie produkcyjnych systemów oprogramowania

Charity Majors, Liz Fong-Jones, George Miranda

Ebook

Obserwowalność jest często mylnie uznawana za monitorowanie systemu. Tymczasem system jest obserwowalny, jeśli dzięki pochodzącym z niego danym można zrozumieć, jak on działa, jakie występują w nim problemy i jak wpływają one na jego działanie. Cechę tę można z powodzeniem wykorzystać w produkcyjnych systemach oprogramowania.

Wprowadzenie obserwowalności do systemów jest wyzwaniem technicznym i kulturowym. Dzięki tej praktycznej książce zrozumiesz wartość obserwowalnych systemów i nauczysz się praktykować programowanie sterowane obserwowalnością. Przekonasz się, że dzięki jej wdrożeniu zespoły mogą szybko i bez obaw dostarczać kod, identyfikować wartości odstające i nietypowe zachowania, a ponadto lepiej zrozumieją doświadczenia użytkownika. Znajdziesz tu szczegółowe wyjaśnienia, co jest potrzebne do uzyskania wysokiej obserwowalności, a także szereg wskazówek, jak ulepszyć istniejące rozwiązania i pomyślnie dokonać migracji ze starszych narzędzi, takich jak wskaźniki, monitorowanie i zarządzanie dziennikami. Dowiesz się również, jaki wpływ ma obserwowalność systemu na kulturę organizacji ― i odwrotnie.

W książce:

  • stosowanie obserwowalności do zarządzania oprogramowaniem w dużej skali
  • obserwowalność w procesie dostarczania złożonych aplikacji i systemów natywnych dla chmury
  • wpływ obserwowalności na cały cykl życia oprogramowania
  • stosowanie obserwowalności w połączeniu z poziomami SLO
  • instrumentacja kodu
  • debugowanie nieuchwytnych problemów

To ważna lektura dla każdego, kto chce zrozumieć obserwowalność systemów oprogramowania!

Alex Hidalgo, autor książki Implementing Service Level Objectives

Przedmowa

Wprowadzenie

Część I. Droga do obserwowalności

1. jest obserwowalność?

  • Matematyczna definicja obserwowalności
  • Zastosowanie obserwowalności do systemów oprogramowania
  • Błędne opisy obserwowalności oprogramowania
  • Dlaczego obserwowalność jest obecnie ważna
    • Czy to naprawdę najlepszy sposób?
    • Dlaczego wskaźniki i monitorowanie nie wystarczają?
  • Debugowanie z wykorzystaniem wskaźników a obserwowalność
    • Znaczenie kardynalności
    • Znaczenie liczby wymiarów
  • Debugowanie przy zapewnionej obserwowalności
  • Obserwowalność jest dostosowana do nowoczesnych systemów
  • Podsumowanie

2. Różnice w procesie debugowania przy stosowaniu monitorowania i obserwowalności

  • W jaki sposób dane systemów monitorowania są używane do debugowania?
    • Zachowania typowe dla rozwiązywania problemów z wykorzystaniem pulpitów nawigacyjnych
    • Ograniczenia rozwiązywania problemów na podstawie intuicji
    • Tradycyjne monitorowanie jest z natury reaktywne
  • W jaki sposób obserwowalność umożliwia lepsze debugowanie?
  • Podsumowanie

3. Lekcje wyciągnięte ze skalowania bez zapewnienia obserwowalności

  • Zapoznanie z firmą Parse
  • Skalowanie w firmie Parse
  • Ewolucja w kierunku nowoczesnych systemów
  • Ewolucja w kierunku nowoczesnych praktyk
  • Zmiana praktyk w firmie Parse
  • Podsumowanie

4. Związki obserwowalności z DevOps, inżynierią niezawodności i natywnym przetwarzaniem chmurowym

  • Natywne przetwarzanie chmurowe, DevOps i inżynieria niezawodności w pigułce
  • Obserwowalność a debugowanie kiedyś i dzisiaj
  • Obserwowalność umożliwia stosowanie praktyk z podejścia DevOps i inżynierii niezawodności
  • Podsumowanie

Część II. Podstawy obserwowalności

5. Ustrukturyzowane zdarzenia są elementami składowymi obserwowalności

  • Debugowanie z wykorzystaniem ustrukturyzowanych zdarzeń
  • Ograniczenia wskaźników jako podstawowych elementów składowych
  • Ograniczenia tradycyjnych dzienników jako podstawowych elementów składowych
    • Dzienniki nieustrukturyzowane
    • Dzienniki ustrukturyzowane
  • Właściwości zdarzeń przydatne w trakcie debugowania
  • Podsumowanie

6. Łączenie zdarzeń w ślady

  • Czym jest śledzenie rozproszone i dlaczego jest obecnie ważne
  • Komponenty śledzenia
  • Trudny sposób instrumentacji śledzenia
  • Dodawanie niestandardowych pól do przedziałów śladu
  • Łączenie zdarzeń w ślady
  • Podsumowanie

7. Instrumentacja z wykorzystaniem projektu OpenTelemetry

  • Krótkie wprowadzenie do instrumentacji
  • Otwarte standardy instrumentacji
  • Instrumentacja przy użyciu przykładów zilustrowanych kodem
    • Zacznij od instrumentacji automatycznej
    • Dodaj instrumentację niestandardową
    • Dane uzyskane dzięki instrumentacji wyślij do systemu backendowego
  • Podsumowanie

8. Analizowanie zdarzeń w celu uzyskania obserwowalności

  • Debugowanie na podstawie znanych warunków
  • Debugowanie według podstawowych zasad
    • Korzystanie z podstawowej pętli analiz
    • Automatyzacja "ataku siłowego" w podstawowej pętli analiz
  • Zwodnicze obietnice związane z podejściem AIOps
  • Podsumowanie

9. Jak połączyć obserwowalność z monitorowaniem?

  • Gdzie sprawdza się monitorowanie?
  • Gdzie sprawdza się obserwowalność?
  • Rozważania dotyczące systemu i oprogramowania
  • Ocena potrzeb organizacji
    • Wyjątki - monitorowanie infrastruktury, którego nie można zignorować
    • Praktyczne przykłady
  • Podsumowanie

Część III. Obserwowalność na poziomie zespołów

10. Stosowanie praktyk z obszaru obserwowalności w zespole

  • Dołącz do grupy społecznościowej
  • Zacznij od największych problemów
  • Kup zamiast budować
  • Iteracyjne opracowywanie instrumentacji
  • Szukaj okazji do wykorzystania już realizowanych projektów
  • Przygotuj się na najtrudniejszy ostatni krok
  • Podsumowanie

11. Programowanie sterowane obserwowalnością

  • Programowanie sterowane testami
  • Obserwowalność w cyklu rozwoju oprogramowania
  • Określanie miejsca debugowania
  • Debugowanie w epoce mikrousług
  • W jaki sposób instrumentacja umożliwia obserwowalność?
  • Przesunięcie obserwowalności na wcześniejsze etapy prac
  • Wykorzystanie obserwowalności do przyspieszenia udostępniania oprogramowania
  • Podsumowanie

12. Używanie poziomów SLO do zapewniania niezawodności

  • Tradycyjne metody monitorowania powodują niebezpieczne zmęczenie alertami
  • Alerty oparte na wartościach progowych dotyczą tylko "znanych niewiadomych"
  • Doświadczenie użytkownika jest drogowskazem
  • Czym są poziomy SLO?
    • Niezawodne alerty z wykorzystaniem poziomów SLO
    • Zmiana kultury w kierunku alertów opartych na poziomach SLO - studium przypadku
  • Podsumowanie

13. Podejmowanie działań i debugowanie na podstawie alertów opartych na poziomach SLO

  • Zgłaszanie alertów przed wyczerpaniem budżetu błędów
  • Reprezentowanie czasu w formie okna przesuwnego
  • Przewidywania w celu utworzenia prognostycznego alertu dotyczącego spalania
    • Okno wyprzedzające
    • Okno bazowe
    • Działanie na podstawie alertów dotyczących spalania opartych na poziomach SLO
  • Obliczanie poziomów SLO na podstawie obserwowalności i z użyciem danych z szeregów czasowych
  • Podsumowanie

14. Obserwowalność a łańcuch dostarczania oprogramowania

  • Dlaczego Slack wymagał wdrożenia obserwowalności?
  • Instrumentacja - współdzielone biblioteki klienckie i wymiary
  • Studia przypadków: operacjonalizacja łańcucha dostarczania
    • Jak zrozumieć kontekst za pomocą narzędzi
    • Dodawanie alertów umożliwiających podejmowanie działań
    • Zrozumienie, co się zmieniło
  • Podsumowanie

Część IV. Obserwowalność w dużej skali

15. Zbudować czy kupić? Zwrot z inwestycji

  • Jak analizować zwrot z inwestycji w obserwowalność?
  • Rzeczywiste koszty budowania własnego rozwiązania
    • Ukryte koszty korzystania z "darmowego" oprogramowania
    • Korzyści z budowania własnych narzędzi
    • Zagrożenia związane z tworzeniem własnego rozwiązania
  • Rzeczywiste koszty zakupu oprogramowania
    • Ukryte koszty finansowe oprogramowania komercyjnego
    • Ukryte koszty niefinansowe oprogramowania komercyjnego
    • Korzyści z zakupu oprogramowania komercyjnego
    • Zagrożenia związane z zakupem oprogramowania komercyjnego
  • Zakup lub budowanie nie jest wyborem albo jedno, albo drugie
  • Podsumowanie

16. Wydajny magazyn danych

  • Wymagania funkcjonalne z obszaru obserwowalności
    • Bazy danych dla szeregów czasowych są nieodpowiednie do zapewniania obserwowalności
    • Inne możliwe magazyny danych
    • Strategie przechowywania danych
  • Studium przypadku: implementacja magazynu danych Retriever z systemu Honeycomb
    • Podział danych według czasu
    • Przechowywanie danych w segmentach według kolumn
    • Wykonywanie procesów pracy związanych z zapytaniami
    • Zapytanie dotyczące śladów
    • Zapytania o dane w czasie rzeczywistym
    • Obniżanie kosztów dzięki poziomom
    • Zapewnianie szybkości dzięki przetwarzaniu równoległemu
    • Radzenie sobie z wysoką kardynalnością
    • Strategie dotyczące skalowania i trwałości
    • Uwagi na temat budowania własnego wydajnego magazynu danych
  • Podsumowanie

17. Tanie i wystarczająco dokładne - próbkowanie

  • Próbkowanie w celu udoskonalenia gromadzenia danych
  • Różne metody próbkowania
    • Próbkowanie ze stałym prawdopodobieństwem
    • Próbkowanie na podstawie natężenia ruchu w ostatnim okresie
    • Próbkowanie na podstawie treści zdarzenia (kluczy)
    • Łączenie metody opartej na kluczu z historyczną
    • Wybór technik próbkowania dynamicznego
    • Kiedy podejmować decyzję o pobieraniu próbek dla śladów?
  • Przekładanie strategii próbkowania na kod
    • Przypadek podstawowy
    • Próbkowanie ze stałą częstotliwością
    • Rejestrowanie częstotliwości próbkowania
    • Spójne próbkowanie
    • Próbkowanie z docelową częstotliwością
    • Stosowanie więcej niż jednej statycznej częstotliwości próbkowania
    • Próbkowanie na podstawie klucza i docelowej częstotliwości
    • Próbkowanie z dynamicznie określaną częstotliwością dla dowolnej liczby kluczy
    • Łączenie wszystkich elementów - próbkowanie przed zdarzeniem i po zdarzeniu z docelową częstotliwością dla poszczególnych kluczy
  • Podsumowanie

18. Zarządzanie telemetrią z wykorzystaniem potoków

  • Cechy potoków telemetrycznych
    • Przekazywanie danych
    • Bezpieczeństwo i zgodność z przepisami
    • Izolacja obciążeń
    • Buforowanie danych
    • Zarządzanie zasobami
    • Filtrowanie i rozszerzanie danych
    • Transformacja danych
    • Zapewnienie jakości i spójności danych
  • Zarządzanie potokiem telemetrycznym - struktura
  • Wyzwania związane z zarządzaniem potokiem telemetrycznym
    • Wydajność
    • Poprawność
    • Dostępność
    • Niezawodność
    • Izolacja
    • Świeżość danych
  • Przypadek użycia - zarządzanie telemetrią w firmie Slack
    • Agregacja wskaźników
    • Wpisy z dziennika i zdarzenia ze śladu
  • Otwartoźródłowe zastępniki
  • Zarządzanie potokiem telemetrycznym - rozwijać czy kupować?
  • Podsumowanie

Część V. Rozpowszechnianie kultury obserwowalności

19. Biznesowe uzasadnienie wprowadzania obserwowalności

  • Reaktywne podejście do wprowadzania zmian
  • Zwrot z inwestycji w obserwowalność
  • Proaktywne podejście do wprowadzania zmian
  • Wprowadzenie obserwowalności jako praktyki
  • Korzystanie z odpowiednich narzędzi
    • Instrumentacja
    • Przechowywanie i analiza danych
    • Wdrażanie narzędzi w zespołach
  • Kiedy obserwowalność jest wystarczająca?
  • Podsumowanie

20. Interesariusze i sojusznicy przy wprowadzaniu obserwowalności

  • Rozpoznawanie nieinżynieryjnych potrzeb z obszaru obserwowalności
  • Zdobywanie sojuszników w obszarze obserwowalności w praktyce
    • Zespoły wsparcia klienta
    • Zespoły ds. sukcesu klienta i produktu
    • Zespoły sprzedażowe i wykonawcze
  • Obserwowalność a narzędzia do analityki biznesowej
    • Czas wykonywania zapytań
    • Dokładność
    • Aktualność
    • Struktura
    • Okna czasowe
    • Efemeryczność
  • Jednoczesne korzystanie z narzędzi do zapewniania obserwowalności i narzędzi do analityki biznesowej w praktyce
  • Podsumowanie

21. Model dojrzałości obserwowalności

  • Uwaga na temat modeli dojrzałości
  • Dlaczego obserwowalność wymaga modelu dojrzałości?
  • O modelu dojrzałości obserwowalności
  • Kompetencje wymienione w modelu dojrzałości obserwowalności
    • Odporność na awarie systemu
    • Dostarczanie wysokiej jakości kodu
    • Zarządzanie złożonością i długiem technicznym
    • Udostępnianie w przewidywalnym cyklu
    • Zrozum zachowanie użytkownika
  • Korzystanie z modelu dojrzałości obserwowalności dla organizacji
  • Podsumowanie

22. Dalsze działania

  • Obserwowalność kiedyś i dziś
  • Dodatkowe materiały
  • Prognozy dalszego rozwoju obserwowalności
  • Tytuł: Inżynieria obserwowalności. Doskonalenie produkcyjnych systemów oprogramowania
  • Autor: Charity Majors, Liz Fong-Jones, George Miranda
  • Tytuł oryginału: Observability Engineering: Achieving Production Excellence
  • Tłumaczenie: Tomasz Walczak
  • ISBN: 978-83-289-1199-4, 9788328911994
  • Data wydania: 2024-09-03
  • Format: Ebook
  • Identyfikator pozycji: inzobs
  • Wydawca: Helion