Предисловие .................................................................................. 14
Введение ........................................................................................ 17
Для кого предназначено издание .................................................. 17
Почему была написана эта книга................................................... 18
Современные проблемы масштабирования.................................... 18
Структура книги ............................................................................ 19
Сетевые ресурсы ........................................................................... 23
Соглашения, принятые в книге...................................................... 23
Об авторе...................................................................................... 24
Благодарности............................................................................... 24
Об обложке ................................................................................... 26
Часть I. Доступность
Глава 1. Что такое доступность ....................................................... 28
Доступность и надежность ............................................................ 29
Что ухудшает доступность............................................................. 31
Глава 2. Пять приоритетных направлений
для улучшения доступности приложения .......................................... 33
1. Учитывайте возможные отказы.................................................. 35
2. Всегда помните о масштабировании .......................................... 36
3. Смягчайте последствия рисков .................................................. 38
4. Контролируйте доступность....................................................... 40
5. Разработайте процедуру решения проблем с доступностью....... 42
Будьте подготовлены .................................................................... 43
8 Оглавление
Глава 3. Измерение доступности ..................................................... 44
Девятки......................................................................................... 45
Что считать разумной доступностью.............................................. 45
Не обманывайте себя .................................................................... 46
Доступность в цифрах ................................................................... 47
Глава 4. Улучшение неудовлетворительной доступности ................ 48
Измеряйте и отслеживайте текущий уровень
доступности................................................................................... 49
Автоматизируйте ручные процессы ............................................... 50
Совершенствуйте свои системы..................................................... 55
Рост и перемены в вашем приложении.......................................... 56
Удерживайте доступность на высоком уровне ............................... 56
Часть II. Управление рисками
Глава 5. Что такое управление рисками .......................................... 58
Управление рисками...................................................................... 59
Выявление рисков ......................................................................... 60
Начните с самого страшного.......................................................... 62
Смягчите последствия ................................................................... 62
Регулярно пересматривайте матрицу............................................. 63
Принципы управления рисками ..................................................... 64
Глава 6. Критичность и вероятность ................................................ 65
Список топ-10: низкая вероятность
и низкая критичность риска........................................................... 66
База данных с заказами: низкая вероятность
и высокая критичность риска ........................................................ 67
Специфические шрифты: высокая вероятность
и низкая критичность риска........................................................... 68
Фотографии футболок: высокая вероятность и высокая
критичность риска......................................................................... 70
Оглавление 9
Глава 7. Матрица рисков ................................................................. 71
Объем матрицы рисков.................................................................. 74
Создание матрицы рисков ............................................................. 75
Использование матрицы для планирования................................... 79
Глава 8. Смягчение рисков .............................................................. 83
Планы восстановления .................................................................. 85
Планы аварийного восстановления ............................................... 87
Улучшение ситуации ..................................................................... 87
Глава 9. Дни большой игры ............................................................. 89
Среда: стейджинговая или продуктовая?....................................... 89
Недостатки запуска Дней большой игры
в производственной среде............................................................. 92
Дни большой игры......................................................................... 94
Глава 10. Создание систем со сниженными рисками ....................... 95
Избыточность ................................................................................ 95
Примеры идемпотентных интерфейсов.......................................... 96
Повышение избыточности, ведущее к росту сложности ................. 97
Независимость............................................................................... 98
Безопасность............................................................................... 100
Простота ..................................................................................... 100
Самовосстановление ................................................................... 101
Оперативные процессы ............................................................... 103
Часть III. Сервисы и микросервисы
Глава 11. Зачем нужны сервисы .................................................... 106
Монолитное приложение............................................................. 106
Сервисно-ориентированное приложение ..................................... 107
Преимущества выделенного владения сервисами........................ 109
Преимущества масштабирования................................................. 112
10 Оглавление
Глава 12. Использование микросервисов ...................................... 114
Что должно быть сервисом? ........................................................ 115
Не переходите границ разумного................................................. 123
Соблюдение баланса ................................................................... 124
Глава 13. Обработка отказов сервисов .......................................... 126
Каскадные аварии сервисов ........................................................ 126
Реагирование на отказ сервиса ................................................... 128
Сдавайтесь как можно раньше..................................................... 136
Ошибки, создаваемые пользователями........................................ 138
Часть IV. Масштабирование приложений
Глава 14. Запас на две ошибки ..................................................... 142
Что такое запас на две ошибки?.................................................. 143
Запас на две ошибки на практике................................................ 144
Управление приложениями ......................................................... 153
Космический корабль .................................................................. 154
Глава 15. Владение сервисами ...................................................... 156
Отдельная команда, владеющая сервисной архитектурой ........... 156
Преимущества организаций и приложений,
соответствующих принципам ОКВСА ........................................... 159
Что значит быть владельцем сервиса .......................................... 159
Глава 16. Классы сервисов ............................................................ 163
Сложность приложения ............................................................... 163
Что же такое классы сервисов..................................................... 165
Присвоение сервисам меток сервисных классов .......................... 165
Что дальше? ................................................................................ 171
Глава 17. Использование классов сервисов ................................... 172
Ожидания.................................................................................... 172
Реагирование .............................................................................. 173
Оглавление 11
Зависимости ................................................................................ 174
Резюме........................................................................................ 177
Глава 18. Соглашения сервисного уровня ..................................... 178
Что такое соглашения сервисного уровня.................................... 178
Внутренние и внешние SLA.......................................................... 181
Почему внутренние SLA так важны.............................................. 182
SLA создают доверие................................................................... 182
SLA помогают в диагностике проблем.......................................... 183
Измерение производительности для SLA ..................................... 185
Сколько и какие внутренние SLA установить ............................... 190
Дополнительно о SLA .................................................................. 191
Глава 19. Непрерывное совершенствование ................................. 192
Регулярно проверяйте приложение ............................................. 193
Микросервисы ............................................................................. 193
Владение сервисами.................................................................... 193
Сервисы без сопровождения состояния ....................................... 194
А где же данные? ........................................................................ 194
Партиционирование данных ........................................................ 195
Значение непрерывного совершенствования............................... 200
Часть V. Облачные сервисы
Глава 20. Облака и перемены в них .............................................. 202
Что изменилось в облаках ........................................................... 202
Изменения продолжаются ........................................................... 205
Глава 21. Распределение облака ................................................... 206
Архитектура AWS......................................................................... 206
Обзор архитектуры...................................................................... 208
Зоны доступности и дата-центры не одно и то же ....................... 212
Поддержка распределения локаций
для обеспечения доступности...................................................... 215
12 Оглавление
Глава 22. Управление инфраструктурой ........................................ 216
Структура облачных сервисов ..................................................... 216
Особенности использования управляемых ресурсов .................... 222
Особенности использования неуправляемых ресурсов ................ 223
CloudWatch и мониторинг ............................................................ 224
Глава 23. Распределение облачных ресурсов ................................ 225
Ресурсы, основанные на выделении мощности ............................ 225
Ресурсы с расчетом задействования ............................................ 231
Преимущества и недостатки технологий
распределения ресурсов.............................................................. 234
Глава 24. Другие средства масштабирования ................................ 235
Облачные серверы ...................................................................... 236
Вычислительные слайсы.............................................................. 237
Динамические контейнеры .......................................................... 239
Микровычисления ....................................................................... 240
Дальнейшие действия ................................................................. 242
Глава 25. AWS Lambda .................................................................. 243
Использование Lambda................................................................ 244
Преимущества и недостатки Lambda ........................................... 247
Часть VI. Заключение
Глава 26. Общий обзор всех аспектов масштабирования .............. 250
Доступность ................................................................................ 250
Управление рисками.................................................................... 251
Сервисы ...................................................................................... 252
Масштабирование ....................................................................... 253
Облачные технологии.................................................................. 253
Архитектура под масштабирование ............................................. 254