Почему все хотят микросервисы
Микросервисы — это модно. Netflix, Uber, Amazon — все используют микросервисы. Значит, и нам нужны? Нет.
Netflix переходил на микросервисы при нагрузке в миллионы пользователей и с командой в тысячи инженеров. Стартап с 5 разработчиками и 1 000 пользователей, строящий микросервисную архитектуру с нуля — это классическая преждевременная оптимизация.
Монолит: плюсы и когда это правильный выбор
Плюсы монолита: простое локальное окружение, нет сетевых задержек между сервисами, транзакции работают из коробки, один деплой, проще дебажить.
Когда монолит — правильный выбор: команда до 10–15 разработчиков, продукт на этапе поиска product-market fit, нагрузка до 10 000 запросов в минуту, бизнес-домен ещё не устоялся.
Правильно написанный модульный монолит легко превращается в микросервисы по мере роста. Плохо написанные микросервисы не превращаются ни во что хорошее.
Микросервисы: когда они реально нужны
Микросервисы оправданы когда: разные части системы нужно масштабировать независимо (например, обработка видео vs API для клиентов), команды работают над разными доменами без зависимостей, нужен разный технологический стек для разных задач, система уже выросла из монолита и начала трещать по швам.
Реальные сложности микросервисов: распределённые транзакции, eventual consistency, service discovery, distributed tracing, сложный деплой, оверхед на коммуникацию между сервисами.
Модульный монолит как золотая середина
Лучшая архитектура для большинства проектов — модульный монолит. Это монолит, где границы между доменами чёткие, зависимости между модулями минимальные и явные.
Когда придёт время, конкретный модуль можно вынести в отдельный сервис без переписывания всей системы. Это называется «monolith-first» подход, и его рекомендует сам Мартин Фаулер.
Практический совет
Начинайте с монолита. Хорошо структурированного, с чёткими границами модулей. Переходите к микросервисам когда у вас есть конкретная проблема которую монолит не решает, команда понимает операционную сложность которую это добавит, есть DevOps-культура и инфраструктура под оркестрацию.
Микросервисы — это не архитектурное решение, это операционная стратегия. И она стоит дорого.