Designing Data-intensive Applications with Martin Kleppmann
Как изменились фундаментальные подходы к построению распределённых систем за последнее десятилетие?
Martin Kleppmann, автор культовой книги Designing Data-Intensive Applications (2017), выпустил в этом месяце второе, существенно обновлённое издание.
В обсуждении он делится тем, как эволюционировали требования и практики построения систем.
Ниже — три ключевых тезиса из разговора:
1. Multi-region и multi-cloud — это не best practice, а компромисс
По мнению Клеппмана, не существует универсального правильного ответа, стоит ли использовать multi-region или multi-cloud архитектуру. Это всегда компромисс между рисками и затратами. Решение должно приниматься на уровне бизнеса, а задача инженеров — уметь чётко формулировать эти trade-offs, а не следовать догмам.
2. Репликация важнее шардинга для большинства команд
Хотя в книге подробно разбирается шардирование, сегодня его необходимость снизилась благодаря развитию облаков. Современные машины стали мощнее, и многие нагрузки помещаются в пределах одного узла.
В результате:
шардирование становится более нишевой, специализированной задачей,
а репликация для обеспечения отказоустойчивости остаётся критически важной практически на любом масштабе.
3. Понимание внутренних механизмов систем — конкурентное преимущество
Книга изначально не задумывалась как руководство для разработчиков баз данных или инфраструктуры.
Однако глубокое понимание внутренних механизмов систем даёт разработчикам приложений важное преимущество:
помогает принимать более обоснованные архитектурные решения,
упрощает диагностику проблем с производительностью,
формирует инженерную интуицию, которая становится критичной по мере роста системы.
В целом, за последние годы акцент сместился с жёстких архитектурных паттернов к осознанному выбору компромиссов, где инженерия тесно связана с бизнес-контекстом.
@tldr_data
Post #77
79