E-book details

Inżynieria chaosu. Odporność systemów w praktyce

Inżynieria chaosu. Odporność systemów w praktyce

Casey Rosenthal, Nora Jones

Ebook

W miarę rozwoju systemu rośnie jego złożoność. Skomplikowane systemy uważa się za trudniejsze w zarządzaniu i bardziej podatne na awarie. Nie można uniknąć złożoności systemu w czasach błyskawicznego rozwoju mikrousług i technologii rozproszonych, ale można nad nią zapanować. Odpowiednio zaplanowane testy i eksperymenty pozwalają wykryć podatności i zapobiec wystąpieniu problemów, zanim zaczną utrudniać realizację celów biznesowych firmy. Relatywnie nowym, lecz wyjątkowo obiecującym narzędziem służącym do tych celów jest inżynieria chaosu.

Ta książka jest praktycznym wprowadzeniem do inżynierii chaosu w zarządzaniu złożonymi systemami podczas ich optymalizacji - zawiera gruntowne podstawy tej nowej dziedziny wraz z wyjaśnieniem zasad postępowania. Pokazuje też procesy, dzięki którym można doprowadzić do uzyskania wysokiej odporności na awarie. Opisano tu najskuteczniejsze praktyki inżynierii chaosu i poparto je licznymi przykładami. Zaprezentowano techniki testowania, eksperymentowania i wstrzykiwania awarii. Wyczerpująco omówiono znaczenie i sposoby planowania, a także zarządzania zespołami w kontekście budowania odporności złożonych systemów na awarie. Co ciekawe, zasady inżynierii chaosu mogą znaleźć zastosowanie nie tylko w odniesieniu do tworzenia i utrzymywania oprogramowania, ale również do budowania niezawodności innych złożonych systemów.

Najciekawsze zagadnienia:

  • rola inżynierii chaosu w zarządzaniu złożonością
  • metody unikania awarii w aplikacjach, sieci i infrastrukturze
  • rozumienie złożoności w systemach oprogramowania
  • testy i eksperymenty w inżynierii chaosu
  • inżynieria chaosu a optymalizacja systemów

Rośnie złożoność systemu? Potrzebujemy chaosu!


Przedmowa 13

Wprowadzenie. Narodziny chaosu 15

CZĘŚĆ I. PRZYGOTOWANIE GRUNTU 23

1. Spotkanie ze złożonymi systemami 25

  • Rozważanie złożoności 25
  • Napotkanie złożoności 27
    • Przykład 1: niedopasowanie logiki biznesowej i logiki aplikacji 27
    • Przykład 2: wywołany przez klienta natłok ponowień żądań 29
    • Przykład 3: wakacyjne zawieszenie kodu 33
  • Konfrontacja ze złożonością 36
    • Złożoność przypadkowa 36
    • Złożoność zasadnicza 37
  • Przyjęcie złożoności 39

2. Sterowanie złożonymi systemami 40

  • Model Dynamicznego Bezpieczeństwa 40
    • Ekonomia 41
    • Obciążenie pracą 41
    • Bezpieczeństwo 41
  • Model Ekonomicznych Podstaw Złożoności 42
    • Stan 43
    • Relacje 43
    • Środowisko 44
    • Odwracalność 44
    • Model Ekonomicznych Podstaw Złożoności w zastosowaniu związanym z oprogramowaniem 44
  • Perspektywa systemowa 46

3. Przegląd zasad 47

  • Czym jest inżynieria chaosu 47
    • Eksperymenty a testy 48
    • Weryfikacja i walidacja 48
  • Czym nie jest inżynieria chaosu 49
    • Psucie wszystkiego 49
    • Antykruchość 50
  • Zaawansowane zasady 51
    • Zbuduj hipotezę dotyczącą zachowania systemu w stabilnym stanie 51
    • Zróżnicuj rzeczywiste przypadki 51
    • Przeprowadzaj eksperymenty w środowisku produkcyjnym 53
    • Automatyzuj eksperymenty, by uruchamiać je cały czas 53
    • Minimalizuj zakres szkód 54
  • Przyszłość "Zasad" 55

CZĘŚĆ II. ZASADY W DZIAŁANIU 57

4. Teatr Katastroficzny Slacka 59

  • Wsteczne wpasowanie chaosu 59
    • Wzorce projektowe powszechne w starszych systemach 60
    • Wzorce projektowania w nowszych systemach 60
    • Uzyskanie podstawowej odporności na awarie 61
  • Teatr Katastroficzny 62
    • Cele 62
    • Antycele 63
  • Proces 63
    • Przygotowanie 64
    • Próba 65
    • Podsumowanie wydarzeń 68
  • Jak proces ewoluował 69
  • Uzyskanie wsparcia przełożonych 70
  • Wyniki 70
    • Unikaj niespójności pamięci podręcznej 70
    • Próbuj, próbuj (dla bezpieczeństwa) 71
    • Wynik niemożliwy 71
  • Wnioski 72

5. Google DiRT i testowanie odzyskiwania po awarii 73

  • Cykl życia testu DiRT 75
    • Zasady podejmowania działań 76
    • Co testować 79
    • Jak testować 85
    • Zbieranie wyników 87
  • Zakres testów w Google 88
  • Wnioski 91

6. Zróżnicowanie i priorytetyzacja eksperymentów w Microsoft 92

  • Dlaczego wszystko jest takie skomplikowane 92
    • Przykład nieprzewidzianych komplikacji 92
    • Prosty system to wierzchołek góry lodowej 93
  • Kategorie rezultatów eksperymentów 94
    • Znane wydarzenia - nieoczekiwane konsekwencje 95
    • Nieznane wydarzenia - nieoczekiwane konsekwencje 96
  • Priorytetyzacja awarii 97
    • Zbadaj zależności 98
  • Stopień zróżnicowania 99
    • Zróżnicowanie awarii 99
    • Łączenie zróżnicowania i priorytetyzacji 100
    • Poszerzenie zróżnicowania o zależności 101
  • Wdrażanie eksperymentów na dużą skalę 101
  • Wnioski 102

7. LinkedIn uważa na użytkowników 104

  • Uczenie się na podstawie katastrofy 105
  • Dokładne celowanie 106
  • Bezpieczne eksperymentowanie na dużą skalę 107
  • W praktyce: LinkedOut 108
    • Tryby awaryjne 110
    • Użycie LiX do kalibrowania eksperymentów 111
    • Rozszerzenie przeglądarkowe do szybkich eksperymentów 113
    • Zautomatyzowane eksperymenty 116
  • Wnioski 117

8. Wdrożenie i ewolucja inżynierii chaosu w Capital One 119

  • Studium przypadku Capital One 120
    • Ślepe testowanie odporności 120
    • Przejście do inżynierii chaosu 121
    • Eksperymenty z chaosem w CI/CD 121
  • Na co uważać, projektując eksperymenty z chaosem 122
  • Narzędzia 123
  • Struktura zespołu 124
  • Rozpowszechnianie 125
  • Wnioski 126

CZĘŚĆ III. CZYNNIKI LUDZKIE 127

9. Budowanie dalekowzroczności 129

  • Inżynieria chaosu i odporność 130
  • Kroki cyklu inżynierii oprogramowania 130
    • Projektowanie eksperymentu 131
  • Wsparcie narzędziowe w projektowaniu eksperymentów z chaosem 132
  • Skuteczne partnerstwo wewnętrzne 134
    • Zrozumienie procedur operacyjnych 135
    • Omówienie zakresu 136
    • Postaw hipotezę 137
  • Wnioski 138

10. Humanistyczny chaos 140

  • Ludzie w systemie 140
    • Umieszczanie "socjo" w systemach socjotechnicznych 140
    • Organizacje to system systemów 141
  • Inżynieria plastycznych zasobów 142
    • Wykrywanie słabego sygnału 142
    • Sukces i porażka - dwie strony medalu 143
  • Przełożenie zasad na praktykę 143
    • Zbuduj hipotezę 144
    • Zróżnicuj rzeczywiste przypadki 144
    • Minimalizuj zakres szkód 145
    • Studium przypadku 1: grywalizacja testów Wielkiego Dnia 146
    • Komunikacja - sieciowe opóźnienie każdej organizacji 147
    • Studium przypadku 2: łączenie kropek 148
    • Przywództwo jest kształtującą się właściwością systemu 150
    • Studium przypadku 3: zmiana podstawowego założenia 151
    • Bezpieczna organizacja chaosu 153
    • Wszystko, czego potrzebujesz, to wysokość i kierunek 154
    • Domknij pętle 154
    • Jeśli nie zaliczasz upadków, nie uczysz się 155

11. Ludzie w pętli 156

  • Eksperymenty: dlaczego, jak i kiedy 157
    • Dlaczego? 157
    • Jak? 158
    • Kiedy? 159
    • Alokacja funkcjonalna, czyli ludzie są lepsi w / maszyny są lepsze w 160
    • Mit podstawienia 162
  • Wnioski 163

12. Problem doboru eksperymentów (i jego rozwiązanie) 165

  • Wybór eksperymentów 165
    • Wyszukiwanie losowe 166
    • Wiek ekspertów 167
  • Obserwowalność - szansa 171
    • Obserwowalność dla inżynierii intuicji 172
  • Wnioski 174

CZĘŚĆ IV. CZYNNIKI BIZNESOWE 175

13. Zysk z inwestycji w inżynierię chaosu 177

  • Efemeryczna natura ograniczania incydentów 177
  • Model Kirkpatricka 178
    • Poziom 1: reakcja 178
    • Poziom 2: nauka 178
    • Poziom 3: zachowanie 179
    • Poziom 4: wyniki 179
  • Alternatywny przykład zysku z inwestycji 180
  • Poboczny zysk z inwestycji 181
  • Wnioski 182

14. Otwarte umysły, otwarta nauka, otwarty chaos 183

  • Zespołowe nastawienie 183
  • Otwarta nauka, wolne źródła 185
    • Otwarte eksperymenty z chaosem 186
    • Wyniki eksperymentów, rezultaty do upowszechnienia 187
  • Wnioski 188

15. Model Dojrzałości Chaosu 189

  • Przyjęcie 189
    • Kto popiera pomysł 190
    • Jaka część organizacji uczestniczy w inżynierii chaosu 191
    • Warunki wstępne 191
    • Przeszkody w przyswajaniu 192
    • Zaawansowanie 193
  • Podsumowanie 198

CZĘŚĆ V. EWOLUCJA 201

16. Ciągła weryfikacja 203

  • Skąd bierze się CV 203
  • Rodzaje systemów CV 205
  • CV na dziko: ChAP 206
    • ChAP: dobór eksperymentów 207
    • ChAP: przeprowadzanie eksperymentów 207
    • Zaawansowane zasady w ChAP 208
    • ChAP jako ciągła weryfikacja 208
  • Ciągła weryfikacja zbliża się w systemach dookoła Ciebie 209
    • Testy wydajnościowe 209
    • Artefakty danych 209
    • Poprawność 209

17. Cyberfizyczność 211

  • Rozwój systemów cyberfizycznych 212
  • Bezpieczeństwo funkcjonalne spotyka inżynierię chaosu 212
    • Analiza FMEA i inżynieria chaosu 214
  • Oprogramowanie w systemach cyberfizycznych 215
  • Inżynieria chaosu jako krok ponad analizę FMEA 216
  • Efekt próbnika 219
    • Ograniczanie efektu próbnika 220
  • Wnioski 221

18. HOP spotyka inżynierię chaosu 223

  • Czym jest wydajność ludzi i organizacji? 223
  • Główne zasady HOP 224
    • Zasada 1: błędy są normalne 224
    • Zasada 2: obwinianie niczego nie naprawi 224
    • Zasada 3: kontekst kieruje zachowaniem 225
    • Zasada 4: nauka i poprawa są niezbędne 225
    • Zasada 5: zamierzone reakcje mają znaczenie 226
  • HOP spotyka inżynierię chaosu 226
    • Inżynieria chaosu i HOP w praktyce 227
  • Wnioski 229

19. Inżynieria chaosu w bazach danych 230

  • Dlaczego potrzebujemy inżynierii chaosu? 230
    • Solidność i stabilność 230
    • Rzeczywisty przykład 231
  • Zastosowanie inżynierii chaosu 233
    • Nasz sposób akceptowania chaosu 233
    • Wstrzykiwanie błędów 234
  • Wykrywanie awarii 236
  • Automatyzacja chaosu 238
    • Platforma zautomatyzowanych eksperymentów: Schrodinger 238
    • Przepływ pracy Schrodingera 239
  • Wnioski 240

20. Inżynieria chaosu bezpieczeństwa 241

  • Nowoczesne podejście do bezpieczeństwa 242
    • Czynniki ludzkie i awarie 242
    • Usunięcie najsłabszych ogniw 243
    • Pętle informacji zwrotnej 244
  • Inżynieria chaosu bezpieczeństwa i obecne metody 246
    • Problemy czerwonych zespołów 246
    • Problemy fioletowych zespołów 247
    • Korzyści z inżynierii chaosu bezpieczeństwa 247
  • Testy Wielkiego Dnia w zakresie bezpieczeństwa 248
  • Przykładowe narzędzie inżynierii chaosu bezpieczeństwa: ChaoSlingr 248
    • Historia ChaoSlingr 249
  • Wnioski 251
    • Konsultanci i recenzenci 251

21. Wnioski 253

  • Title: Inżynieria chaosu. Odporność systemów w praktyce
  • Author: Casey Rosenthal, Nora Jones
  • Original title: Chaos Engineering: System Resiliency in Practice
  • Translation: Katarzyna Bogusławska
  • ISBN: 978-83-283-8286-2, 9788328382862
  • Date of issue: 2021-12-14
  • Format: Ebook
  • Item ID: inzcha
  • Publisher: Helion