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!
SPIS TREŚCI
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
Opinie
Na razie nie ma opinii o produkcie.