Распределенные системы. Паттерны проектирования - [2]

Шрифт
Интервал

Паттерны в объектно-ориентированном

программировании ........................................................ 22

Расцвет программного обеспечения с открытым исходным кодом ................................................................ 2 3

Ценность паттернов, практик и компонентов ............................... 24

Стоя на плечах гигантов ................................................... 24

Общий язык обсуждения подходов к разработке ............... 25

Общие повторно используемые компоненты ..................... 26

Резюме ........................................................................................ 27

Оглавление 7

Часть I . Одноузловые паттерны проектирования Мотивация ................................................................................... 30

Резюме ........................................................................................ 32

Глава 2. Паттерн Sidecar ............................................................... 34

Пример реализации паттерна Sidecar. Добавление возможности HTTPS-соединения к унаследованному сервису ...... 35

Динамическая конфигурация с помощью паттерна Sidecar .......... 36

Модульные контейнеры приложений ........................................... 39

Практикум. Развертывание контейнера topz ...................... 40

Создание простейшего PaaS-сервиса на основе паттерна Sidecar ................................................................ 42

Разработка модульных и повторно используемых реализаций паттерна Sidecar ....................................................... 43

Параметризованные контейнеры ....................................... 44

Определение API всех контейнеров .................................. 45

Документирование контейнеров........................................ 47

Резюме ........................................................................................ 49

Глава 3 . Паттерн Ambassador ........................................................ 50

Использование паттерна Ambassador

для шардирования сервиса ...................................................51

Практикум. Шардируем Redis-хранилище .......................... 54

Использование паттерна Ambassador для реализации сервиса-посредника..................................................................... 57

Использование паттерна Ambassador для проведения экспериментов и разделения запросов ........................................ 59

Практикум. Реализация 10%-ных экспериментов .............. 60

Глава 4. Адаптеры ......................................................................... 64

Мониторинг ................................................................................. 66

Практикум. Мониторинг с помощью Prometheus ................ 67

8 Оглавление

Ведение журналов ....................................................................... 69

Практикум. Нормализация форматов журналов с помощью fluentd ............................................................. 70

Мониторинг работоспособности сервисов .................................... 72

Практикум. Комплексный мониторинг

работоспособности MySQL ................................................ 73

Часть II. Паттерны проектирования

обслуживающих систем

Введение в микросервисы ........................................................... 78

Глава 5. Реплицированные сервисы с распределением нагрузки ... 82 Сервисы без внутреннего состояния ............................................ 82

Датчики готовности для балансировщика нагрузки ........... 84

Практикум. Создание реплицированного сервиса с помощью Kubernetes ....................................................... 85

Сервисы с закреплением сессий .................................................. 87

Сервисы с репликацией на уровне приложения ........................... 89

Добавляем кэширующую прослойку ............................................ 89

Развертывание кэширующего сервера .............................. 90

Практикум. Развертывание кэширующей прослойки .......... 92

Расширение возможностей кэширующей прослойки .................... 95

Ограничение частоты запросов и защита от атак типа «отказ в обслуживании» (DoS) .......................................... 95

SSL-мост ............................................................................ 96

Практикум. Развертывание nginx и SSL-моста .................... 98

Резюме ...................................................................................... 10 1

Глава 6. Шардированные сервисы ............................................... 102

Шардирование кэша .................................................................. 103

Зачем вам нужен шардированный кэш ............................ 104

Оглавление 9

Роль кэша в производительности системы ...................... 105

Реплицированный и шардированный кэш ........................ 107

Практикум. Развертывание реализации паттерна Ambassador и сервиса memcache

для организации шардированного кэша ..................... 108

Шардирующие функции ............................................................ 114