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

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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

Author(s): Кейси Розенталь, Нора Джонс
Edition: 1
Publisher: ДМК Пресс
Year: 2021

Language: Russian
Commentary: Vector PDF
Pages: 284
City: М.
Tags: Management; Databases; Security; Google; Slack; Best Practices; LinkedIn; Software Architecture; Complexity; Chaos; Performance Management; Business Logic; Microsoft; Capital One; Continuous Verification; Cyber-Physical Systems; Human and Organizational Performance

Обложка
Предисловие
Введение. Рождение хаос-инжиниринга
Часть I. Обзор поля деятельности
Глава 1. Знакомьтесь: сложные системы
1.1. Размышления о сложности
1.2. Столкновение со сложностью
1.2.1. Несоответствие между бизнес-логикой и логикой приложения
1.2.2. Лавина повторных запросов пользователей
1.2.3. Замораживание кода на праздники
1.3. Противодействие сложности
1.3.1. Случайная сложность
1.3.2. Намеренная сложность
1.4. Принятие сложности
Глава 2. Навигация по сложным системам
2.1. Динамическая модель безопасности
2.1.1. Экономика
2.1.2. Нагрузка
2.1.3. Безопасность
2.2. Экономические факторы сложности
2.2.1. Состояния
2.2.2. Отношения
2.2.3. Окружение
2.2.4. Обратимость
2.2.5. Экономические факторы сложности и программное обеспечение
2.3. Системный подход
Глава 3. Обзор принципов хаос-инжиниринга
3.1. Что такое хаос-инжиниринг
3.1.1. Эксперименты или тестирование?
3.1.2. Функциональный контроль или аттестация?
3.2. Чем не является хаос
3.2.1. Разрушающее тестирование производства
3.2.2. Антихрупкость
3.3. Ключевые принципы хаос-инжиниринга
3.3.1. Построение гипотезы о стабильном поведении
3.3.2. Моделирование различных событий реального мира
3.3.3. Выполнение экспериментов на производстве
3.3.4. Автоматизация непрерывного запуска экспериментов
3.3.5. Минимизация радиуса поражения
3.4. Будущее «Принципов»
Часть II. Принципы хаоса в действии
Глава 4. Slack и островок спокойствия среди хаоса
4.1. Настройка методов хаоса под свои нужды
4.1.1. Подходы к проектированию старых систем
4.1.2. Подходы к проектированию современных систем
4.1.3. Предварительная подготовка отказоустойчивости
4.2. Disasterpiece Theater
4.2.1. Цели экспериментов
4.2.2. Антицели
4.3. Процесс проверки по шагам
4.3.1. Подготовка эксперимента
4.3.2. Эксперимент
4.3.3. Подведение итогов
4.4. Как развивался Disasterpiece Theater
4.5. Как получить одобрение руководства
4.6. Результаты
4.6.1. Избегайте несогласованности кеша
4.6.2. Пробуйте и еще раз пробуйте
4.6.3. Невозможность как результат
4.7. Вывод
Глава 5. Google DiRT: тестирование аварийного восстановления
5.1. Жизненный цикл теста DiRT
5.1.1. Правила взаимодействия
5.1.2. Что следует проверить
5.1.3. Как выполнить тестирование
5.1.4. Сбор результатов
5.2. Объем тестов в Google
5.3. Вывод
Глава 6. Вариативность и приоритеты экспериментов в Microsoft
6.1. Почему все так сложно?
6.1.1. Пример неожиданных осложнений
6.1.2. Простая система – лишь вершина айсберга
6.2. Категории результатов эксперимента
6.2.1. Известные события / непредвиденные последствия
6.2.2. Неизвестные события / неожиданные последствия
6.3. Расстановка приоритетов отказов
6.3.1. Исследуйте зависимости
6.4. Глубина варьирования
6.4.1. Вариативность отказов
6.4.2. Объединение вариативности и расстановки приоритетов
6.4.3. Расширение вариативности до зависимостей
6.5. Развертывание масштабных экспериментов
6.6. Вывод
Глава 7. Как LinkedIn заботится о пользователях
7.1. Учитесь на примерах катастроф
7.2. Детализованные эксперименты
7.3. Масштабные, но безопасные эксперименты
7.4. На практике: LinkedOut
7.4.1. Режимы отказа
7.4.2. Использование LiX для нацеливания экспериментов
7.4.3. Браузерное расширение для быстрых экспериментов
7.4.4. Автоматизированные эксперименты
7.5. Вывод
Глава 8. Развитие хаос-инжиниринга в Capital One
8.1. Практический опыт Capital One
8.1.1. Слепое тестирование устойчивости
8.1.2. Переход к хаос-инжинирингу
8.1.3. Хаос-эксперименты в CI/CD
8.2. Чего нужно остерегаться при разработке эксперимента
8.3. Инструментарий
8.4. Структура команды
8.5. Продвижение хаос-инжиниринга
8.6. Вывод
Часть III. Человеческие факторы
Глава 9. Формирование предвидения
9.1. Хаос-инжиниринг и отказоустойчивость
9.2. Этапы рабочего цикла хаос-инжиниринга
9.2.1. Разработка эксперимента
9.3. Инструменты для разработки хаос-экспериментов
9.4. Эффективное внутреннее партнерство
9.4.1. Организация рабочих процедур
9.4.2. Обсуждение предмета эксперимента
9.4.3. Построение гипотезы
9.5. Вывод
Глава 10. Гуманистический хаос
10.1. Люди в cистеме
10.1.1. Значение человека в социотехнических системах
10.1.2. Организация – это система систем
10.2. Инженерно-адаптивный потенциал
10.2.1. Обнаружение слабых сигналов
10.2.2. Неудача и успех, две стороны одной монеты
10.3. Применение принципов хаос-инжиниринга на практике
10.3.1. Построение гипотезы
10.3.2. Варьирование событий реального мира
10.3.3. Минимизация радиуса поражения
10.3.4. Пример 1: игровые дни
10.3.5. Коммуникации и сетевая задержка в организациях
10.3.6. Пример 2: связь между точками
10.3.7. Лидерство как новое свойство системы
10.3.8. Пример 3: изменение базового предположения
10.3.9. Безопасная организация хаоса
10.3.10. Все, что вам нужно, – это высота и направление
10.3.11. Замыкайте петли обратной связи
10.3.12. Если вы не ошибаетесь, вы не учитесь
Глава 11. Роль человека в системе
11.1. Эксперименты: почему, как и когда
11.1.1. Почему
11.1.2. Как
11.1.3. Когда
11.1.4. Распределение функций, или Каждый хорош по-своему
11.1.5. Миф замещения
11.2. Вывод
Глава 12. Проблема выбора эксперимента и ее решение
12.1. Выбор экспериментов
12.1.1. Случайный поиск
12.1.2. Настало время экспертов
12.2. Наблюдаемость системы
12.2.1. Наблюдаемость и интуиция
12.3. Вывод
Часть IV. Факторы бизнеса
Глава 13. Рентабельность хаос-инжиниринга
13.1. Краткосрочный эффект хаос-инжиниринга
13.2. Модель Киркпатрика
13.2.1. Уровень 1: реакция
13.2.2. Уровень 2: обучение
13.2.3. Уровень 3: перенос
13.2.4. Уровень 4: результаты
13.3. Альтернативный вариант оценки рентабельности
13.4. Побочная отдача от инвестиций
13.5. Вывод
Глава 14. Открытые умы, открытая наука и открытый хаос
14.1. Совместное мышление
14.2. Открытая наука, открытый исходный код
14.2.1. Открытые хаос-эксперименты
14.2.2. Обмен результатами и выводами
14.3. Вывод
Глава 15. Модель зрелости хаоса
15.1. Внедрение
15.1.1. От кого исходит идея внедрения
15.1.2. Какая часть организации участвует в хаос-инжиниринге
15.1.3. Обязательные условия
15.1.4. Препятствия для внедрения
15.1.5. Освоение
15.2. Карта состояния хаос-инжиниринга
Часть V. Эволюция
Глава 16. Непрерывная проверка
16.1. Происхождение непрерывной проверки
16.2. Разновидности систем непрерывной проверки
16.3. CV в реальной жизни: ChAP
16.3.1. Выбор экспериментов в ChAP
16.3.2. Запуск экспериментов в ChAP
16.3.3. ChAP и принципы хаос-инжиниринга
16.3.4. ChAP как непрерывная проверка
16.4. Непрерывная проверка в системах рядом с вами
16.4.1. Проверка производительности
16.4.2. Артефакты данных
16.4.3. Корректность
Глава 17. Поговорим о киберфизических системах
17.1. Происхождение и развитие киберфизических систем
17.2. Слияние функциональной безопасности с хаос-инжинирингом
17.2.1. FMEA и хаос-инжиниринг
17.3. Программное обеспечение в киберфизических системах
17.4. Хаос-инжиниринг как следующий шаг после FMEA
17.5. Эффект щупа
17.5.1. Решение проблемы щупа
17.6. Вывод
Глава 18. HOP с точки зрения хаос-инжиниринга
18.1. Что такое HOP?
18.2. Ключевые принципы HOP
18.2.1. Принцип 1: ошибка – это норма
18.2.2. Принцип 2: вина ничего не исправляет
18.2.3. Принцип 3: контекст определяет поведение
18.2.4. Принцип 4: обучение и улучшение имеют жизненно важное значение
18.2.5. Принцип 5: важны осмысленные ответы
18.3. Хаос-инжиниринг в мире HOP
18.3.1. Практический пример хаос-инжиниринга в мире HOP
18.4. Вывод
Глава 19. Хаос-инжиниринг и базы данных
19.1. Зачем нам нужен хаос-инжиниринг?
19.1.1. Надежность и стабильность
19.1.2. Пример из реального мира
19.2. Применение хаос-инжиниринга
19.2.1. Наш особый подход к хаос-инжинирингу
19.2.2. Внедрение отказов
19.2.3. Отказы приложений
19.2.4. Ошибки процессора и памяти
19.2.5. Отказы сети
19.2.6. Внедрение ошибок в файловую систему
19.3. Обнаружение сбоев
19.4. Автоматизация хаоса
19.4.1. Автоматизированная платформа для экспериментов Schrodinger
19.4.2. Рабочий процесс на платформе Schrodinger
19.5. Вывод
Глава 20. Хаос-инжиниринг в информационной безопасности
20.1. Современный подход к безопасности
20.1.1. Человеческий фактор и отказы
20.1.2. Устраните легкодоступные цели
20.1.3. Петли обратной связи
20.2. Хаос-инжиниринг и новая методология безопасности
20.2.1. Проблемы с Red Teaming
20.2.2. Проблемы с Purple Teaming
20.2.3. Преимущества хаос-инжиниринга в кибербезопасности
20.3. Игровые дни в кибербезопасности
20.4. Пример инструмента безопасности: ChaoSlingr
20.4.1. История ChaoSlingr
20.5. Вывод
Глава 21. Заключение
Предметный указатель