Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Хаос-инжиниринг. Революция в разработке устойчивых систем

Покупка
Артикул: 817209.01.99
Доступ онлайн
999 ₽
В корзину
Хаос-инжиниринг — относительно новое, однако уже широко востребованное направление в разработке ПО. Тысячи компаний разных размеров и разного уровня развития используют этот метод в качестве основного инструмента тестирования и контроля, чтобы сделать свои продукты и услуги более безопасными и надежными. Эта книга охватывает историю рождения хаос-инжиниринга, фундаментальные теории, лежащие в его основе, определения и принципы, примеры реализации в масштабных вычислительных системах, примеры за пределами традиционного программного обеспечения, а также возможные перспективы развития подобных практик. Реальные истории от отраслевых экспертов из Google, Microsoft, Slack, LinkedIn и других компаний помогут читателю оценить преимущества хаос-инжиниринга во всей полноте. Издание предназначено для разработчиков и инженеров по эксплуатации, стремящихся повысить устойчивость сложных корпоративных систем для достижения бизнес-целей.
Розенталь, К. Хаос-инжиниринг. Революция в разработке устойчивых систем : практическое руководство / К. Розенталь, Н. Джонс ; пер. с англ. В. С. Яценкова. - Москва : ДМК Пресс, 2021. - 284 с. - ISBN 978-5-97060-796-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/2109480 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Кейси Розенталь, Нора Джонс

Хаос-инжиниринг

Chaos Engineering

System Resiliency in Practice

Casey Rosenthal
Nora Jones

Хаос-инжиниринг

Революция в разработке  
устойчивых систем

Кейси Розенталь
Нора Джонс

Москва, 2021

УДК 62
ББК 32.972

Р64

Розенталь К., Джонс Н.

Р64 
Хаос-инжиниринг / пер. с англ. В. С. Яценкова. – М.: ДМК Пресс, 2021. – 
284 с.: ил. 

ISBN 978-5-97060-796-1

Хаос-инжиниринг – относительно новое, однако уже широко востребованное 

направление в разработке ПО. Тысячи компаний разных размеров и разного 
уровня развития используют этот метод в качестве основного инструмента тестирования и контроля, чтобы сделать свои продукты и услуги более безопасными 
и надежными.

Эта книга охватывает историю рождения хаос-инжиниринга, фундаментальные 

теории, лежащие в его основе, определения и принципы, примеры реализации 
в масштабных вычислительных системах, примеры за пределами традиционного 
программного обеспечения, а также возможные перспективы развития подобных 
практик. Реальные истории от отраслевых экспертов из Google, Microsoft, Slack, 
LinkedIn и других компаний помогут читателю оценить преимущества хаос-инжиниринга во всей полноте.

Издание предназначено для разработчиков и инженеров по эксплуатации, 

стремящихся повысить устойчивость сложных корпоративных систем для достижения бизнес-целей.

УДК 62
ББК 32.972

Authorized Russian translation of the English edition of Chaos Engineering © 2021 by DMK 

Press. This translation is published and sold by permission of O’Reilly Media, Inc., which owns 
or controls all rights to publish and sell the same. 

Все права защищены. Любая часть этой книги не может быть воспроизведена в ка
кой бы то ни было форме и какими бы то ни было средствами без письменного разрешения 
владельцев авторских прав.

ISBN 978-1-492-04386-7 (англ.) 
©  Casey Rosenthal and Nora Jones, 2020

ISBN 978-5-97060-796-1 (рус.) 
©  Оформление, издание, перевод,  

ДМК Пресс, 2021

Мы посвящаем эту книгу Дэвиду Хассману.  

Дейв был той искрой, которая превратила команду  

Chaos Engineering Team в сообщество

Содержание

Предисловие ....................................................................................................12

Введение. Рождение хаос-инжиниринга .............................................15

Часть I. ОБЗОР ПОЛЯ ДЕЯТЕЛЬНОСТИ ...........................................23

Глава 1. Знакомьтесь: сложные системы ..............................................24
1.1. Размышления о сложности ...........................................................................24
1.2. Столкновение со сложностью ........................................................................26

1.2.1. Несоответствие между бизнес-логикой и логикой приложения .........26
1.2.2. Лавина повторных запросов пользователей .........................................29
1.2.3. Замораживание кода на праздники.......................................................33

1.3. Противодействие сложности .........................................................................36

1.3.1. Случайная сложность ..............................................................................36
1.3.2. Намеренная сложность ...........................................................................37

1.4. Принятие сложности ......................................................................................39

Глава 2. Навигация по сложным системам ..........................................41
2.1. Динамическая модель безопасности ............................................................41

2.1.1. Экономика ...............................................................................................42
2.1.2. Нагрузка ...................................................................................................42
2.1.3. Безопасность ...........................................................................................42

2.2. Экономические факторы сложности ............................................................44

2.2.1. Состояния ................................................................................................45
2.2.2. Отношения ..............................................................................................45
2.2.3. Окружение ...............................................................................................45
2.2.4. Обратимость ............................................................................................46
2.2.5. Экономические факторы сложности и программное обеспечение ....46

2.3. Системный подход .........................................................................................47

Глава 3. Обзор принципов хаос-инжиниринга ...................................49
3.1. Что такое хаос-инжиниринг ..........................................................................49

3.1.1. Эксперименты или тестирование? ........................................................50
3.1.2. Функциональный контроль или аттестация? .......................................51

3.2. Чем не является хаос ......................................................................................52

3.2.1. Разрушающее тестирование производства ...........................................52
3.2.2. Антихрупкость .........................................................................................53

3.3. Ключевые принципы хаос-инжиниринга ....................................................54

3.3.1. Построение гипотезы о стабильном поведении ...................................54
3.3.2. Моделирование различных событий реального мира .........................55
3.3.3. Выполнение экспериментов на производстве .....................................56

Содержание  7

3.3.4. Автоматизация непрерывного запуска экспериментов ......................56
3.3.5. Минимизация радиуса поражения ........................................................57

3.4. Будущее «Принципов» ...................................................................................59

Часть II. ПРИНЦИПЫ ХАОСА В ДЕЙСТВИИ ...................................61

Глава 4. Slack и островок спокойствия среди хаоса ........................63
4.1. Настройка методов хаоса под свои нужды...................................................64

4.1.1. Подходы к проектированию старых систем .........................................64
4.1.2. Подходы к проектированию современных систем ..............................65
4.1.3. Предварительная подготовка отказоустойчивости ..............................65

4.2. Disasterpiece Theater ......................................................................................66

4.2.1. Цели экспериментов ...............................................................................67
4.2.2. Антицели .................................................................................................67

4.3. Процесс проверки по шагам..........................................................................68

4.3.1. Подготовка эксперимента ......................................................................68
4.3.2. Эксперимент ............................................................................................71
4.3.3. Подведение итогов ..................................................................................74

4.4. Как развивался Disasterpiece Theater ............................................................74
4.5. Как получить одобрение руководства ..........................................................75
4.6. Результаты ......................................................................................................76

4.6.1. Избегайте несогласованности кеша .......................................................76
4.6.2. Пробуйте и еще раз пробуйте ................................................................77
4.6.3. Невозможность как результат ................................................................77

4.7. Вывод ...............................................................................................................78

Глава 5. Google DiRT: тестирование аварийного  
восстановления ...............................................................................................79
5.1. Жизненный цикл теста DiRT .........................................................................81

5.1.1. Правила взаимодействия .......................................................................82
5.1.2. Что следует проверить ............................................................................86
5.1.3. Как выполнить тестирование .................................................................93
5.1.4. Сбор результатов .....................................................................................95

5.2. Объем тестов в Google ....................................................................................96
5.3. Вывод ..............................................................................................................99

Глава 6. Вариативность и приоритеты экспериментов 
в Microsoft  ......................................................................................................101
6.1. Почему все так сложно? ...............................................................................101

6.1.1. Пример неожиданных осложнений .....................................................102
6.1.2. Простая система – лишь вершина айсберга ........................................103

6.2. Категории результатов эксперимента ........................................................104

6.2.1. Известные события / непредвиденные последствия .........................105
6.2.2. Неизвестные события / неожиданные последствия ...........................106

6.3. Расстановка приоритетов отказов ..............................................................107

6.3.1. Исследуйте зависимости ......................................................................108

 Содержание

6.4. Глубина варьирования .................................................................................109

6.4.1. Вариативность отказов .........................................................................109
6.4.2. Объединение вариативности и расстановки приоритетов ................111
6.4.3. Расширение вариативности до зависимостей ....................................111

6.5. Развертывание масштабных экспериментов ............................................112
6.6. Вывод ............................................................................................................113

Глава 7. Как LinkedIn заботится о пользователях ...........................115
7.1. Учитесь на примерах катастроф ..................................................................116
7.2. Детализованные эксперименты ..................................................................117
7.3. Масштабные, но безопасные эксперименты..............................................119
7.4. На практике: LinkedOut ................................................................................120

7.4.1. Режимы отказа .......................................................................................121
7.4.2. Использование LiX для нацеливания экспериментов ........................123
7.4.3. Браузерное расширение для быстрых экспериментов .......................126
7.4.4. Автоматизированные эксперименты ..................................................128

7.5. Вывод .............................................................................................................130

Глава 8. Развитие хаос-инжиниринга в Capital One .......................131
8.1. Практический опыт Capital One ..................................................................132

8.1.1. Слепое тестирование устойчивости ....................................................132
8.1.2. Переход к хаос-инжинирингу ..............................................................133
8.1.3. Хаос-эксперименты в CI/CD .................................................................134

8.2. Чего нужно остерегаться при разработке эксперимента ..........................135
8.3. Инструментарий ..........................................................................................136
8.4. Структура команды ......................................................................................137
8.5. Продвижение хаос-инжиниринга ...............................................................139
8.6. Вывод ............................................................................................................139

Часть III. ЧЕЛОВЕЧЕСКИЕ ФАКТОРЫ .............................................141

Глава 9. Формирование предвидения .................................................143
9.1. Хаос-инжиниринг и отказоустойчивость ...................................................144
9.2. Этапы рабочего цикла хаос-инжиниринга ................................................144

9.2.1. Разработка эксперимента.....................................................................145

9.3. Инструменты для разработки хаос-экспериментов ..................................146
9.4. Эффективное внутреннее партнерство ......................................................148

9.4.1. Организация рабочих процедур ..........................................................149
9.4.2. Обсуждение предмета эксперимента ..................................................151
9.4.3. Построение гипотезы ...........................................................................152

9.5. Вывод ............................................................................................................154

Глава 10. Гуманистический хаос .............................................................156
10.1. Люди в cистеме ...........................................................................................156

10.1.1. Значение человека в социотехнических системах ...........................157
10.1.2. Организация – это система систем ....................................................158

Содержание  9

10.2. Инженерно-адаптивный потенциал ........................................................158

10.2.1. Обнаружение слабых сигналов ..........................................................159
10.2.2. Неудача и успех, две стороны одной монеты....................................160

10.3. Применение принципов хаос-инжиниринга на практике .....................160

10.3.1. Построение гипотезы .........................................................................161
10.3.2. Варьирование событий реального мира ...........................................161
10.3.3. Минимизация радиуса поражения ....................................................162
10.3.4. Пример 1: игровые дни .......................................................................163
10.3.5. Коммуникации и сетевая задержка в организациях ........................165
10.3.6. Пример 2: связь между точками ........................................................166
10.3.7. Лидерство как новое свойство системы ............................................169
10.3.8. Пример 3: изменение базового предположения ..............................170
10.3.9. Безопасная организация хаоса ..........................................................172
10.3.10. Все, что вам нужно, – это высота и направление ............................173
10.3.11. Замыкайте петли обратной связи ....................................................173
10.3.12. Если вы не ошибаетесь, вы не учитесь ............................................174

Глава 11. Роль человека в системе ........................................................175

11.1. Эксперименты: почему, как и когда .........................................................176

11.1.1. Почему .................................................................................................176
11.1.2. Как ........................................................................................................177
11.1.3. Когда .....................................................................................................178
11.1.4. Распределение функций, или Каждый хорош по-своему ................179
11.1.5. Миф замещения ..................................................................................181

11.2. Вывод ..........................................................................................................183

Глава 12. Проблема выбора эксперимента и ее решение ..........184

12.1. Выбор экспериментов ................................................................................184

12.1.1. Случайный поиск ................................................................................186
12.1.2. Настало время экспертов ....................................................................186

12.2. Наблюдаемость системы ...........................................................................191

12.2.1. Наблюдаемость и интуиция ...............................................................192

12.3. Вывод ..........................................................................................................194

Часть IV. ФАКТОРЫ БИЗНЕСА .............................................................195

Глава 13. Рентабельность хаос-инжиниринга ..................................196

13.1. Краткосрочный эффект хаос-инжиниринга ............................................196
13.2. Модель Киркпатрика .................................................................................197

13.2.1. Уровень 1: реакция ..............................................................................197
13.2.2. Уровень 2: обучение ............................................................................198
13.2.3. Уровень 3: перенос ..............................................................................198
13.2.4. Уровень 4: результаты .........................................................................199

13.3. Альтернативный вариант оценки рентабельности .................................199
13.4. Побочная отдача от инвестиций ...............................................................201
13.5. Вывод ..........................................................................................................202

 Содержание

Глава 14. Открытые умы, открытая наука и открытый хаос ......203
14.1. Совместное мышление ..............................................................................203
14.2. Открытая наука, открытый исходный код ...............................................205

14.2.1. Открытые хаос-эксперименты...........................................................206
14.2.2. Обмен результатами и выводами ......................................................208

14.3. Вывод ..........................................................................................................208

Глава 15. Модель зрелости хаоса ..........................................................209
15.1. Внедрение ...................................................................................................209

15.1.1. От кого исходит идея внедрения........................................................210
15.1.2. Какая часть организации участвует в хаос-инжиниринге ...............211
15.1.3. Обязательные условия ........................................................................212
15.1.4. Препятствия для внедрения ...............................................................213
15.1.5. Освоение ..............................................................................................214

15.2. Карта состояния хаос-инжиниринга ........................................................219

Часть V. ЭВОЛЮЦИЯ .................................................................................221

Глава 16. Непрерывная проверка..........................................................223
16.1. Происхождение непрерывной проверки..................................................223
16.2. Разновидности систем непрерывной проверки ......................................225
16.3. CV в реальной жизни: ChAP ......................................................................227

16.3.1. Выбор экспериментов в ChAP ............................................................227
16.3.2. Запуск экспериментов в ChAP ...........................................................228
16.3.3. ChAP и принципы хаос-инжиниринга ..............................................228
16.3.4. ChAP как непрерывная проверка .......................................................229

16.4. Непрерывная проверка в системах рядом с вами ...................................229

16.4.1. Проверка производительности ..........................................................230
16.4.2. Артефакты данных ..............................................................................230
16.4.3. Корректность .......................................................................................230

Глава 17. Поговорим о киберфизических системах .......................232
17.1. Происхождение и развитие киберфизических систем ............................233
17.2. Слияние функциональной безопасности с хаос-инжинирингом ...........234

17.2.1. FMEA и хаос-инжиниринг ...................................................................236

17.3. Программное обеспечение в киберфизических системах ......................236
17.4. Хаос-инжиниринг как следующий шаг после FMEA ................................238
17.5. Эффект щупа ...............................................................................................241

17.5.1. Решение проблемы щупа ....................................................................242

17.6. Вывод ...........................................................................................................244

Глава 18. HOP с точки зрения хаос-инжиниринга ...........................246
18.1. Что такое HOP? ...........................................................................................246
18.2. Ключевые принципы HOP .........................................................................247

18.2.1. Принцип 1: ошибка – это норма ........................................................247
18.2.2. Принцип 2: вина ничего не исправляет ............................................247

Доступ онлайн
999 ₽
В корзину