Глава 1: Why Software Architecture is More Important Than Ever
Архитектура в мире Agile, архитектура в облаке, роль архитектора как «не добавляющего ценность». Определение Continuous Architecture и набор принципов. Описание сквозного case study.
Глава 2: Architecture in Practice — Essential Activities
Случайное условие, которое при возникновении может привести к отказу системы или её компонента.
Failure (отказ)
Ситуация, когда система отклоняется от требуемого поведения. Fault — причина, Failure — следствие.
Availability (доступность)
Измеримая характеристика: отношение времени доступности к общему времени работы системы.
Reliability (надёжность)
Вероятность безотказной работы за указанный период времени в указанном окружении.
High-Availability vs Resilience
Старый подход: High-Availability
Кластеры приложений и баз данных
Cross-site репликация данных
Hot standby для аварийного переключения
Проблемы: сложность, высокая стоимость, долгий failover, полная недоступность во время восстановления
Новый подход: Resilience
Каждая часть системы сама отвечает за устойчивость
Адаптивное поведение при сбоях
Ограничение распространения ошибок (blast radius)
Преимущества: гибкость, graceful degradation, быстрое восстановление отдельных компонентов
Ключевой инсайт: High-Availability был рассчитан на монолитные on-premise системы. Для распределённых микросервисных систем (on-premise или в облаке) Resilience — более подходящий подход.
MTBF vs MTTR
MTBF
Mean Time Between Failures
Среднее время наработки на отказ. Фокус High-Availability подхода: максимизировать время между сбоями.
MTTR
Mean Time To Recover
Среднее время восстановления. Фокус Resilience подхода: минимизировать время восстановления и blast radius.
Сдвиг парадигмы: В современных системах сбои частей происходят достаточно часто. Вместо попыток предотвратить все сбои (MTBF), важнее научиться быстро восстанавливаться (MTTR) и ограничивать влияние сбоев.
Механизмы обеспечения Resilience
Повторные запросы
Retry с exponential backoff
Автоматический перезапуск
Self-healing процессов
Circuit Breaker
Размыкание цепи при сбоях
Bulkhead
Изоляция отсеков системы
Timeout
Корректная работа с latency
Fallback
Запасные варианты ответа
Дополнительные ресурсы
Авторы создали сайт continuous-architecture.org с набором документов: