Проверяет понимание trade-off между разделённой на сервисы системой и единой кодовой базой.
Микросервисы дают независимое развертывание, масштабирование и технологическую свободу для каждого сервиса, но требуют сложной инфраструктуры (орchestration, мониторинг, CI/CD) и вводят сетевую задержку и потенциальные точки отказа. Монолит проще разрабатывать и отлаживать, но со временем становится тяжёлым для масштабирования отдельных компонентов и развертывания мелких изменений.
Плюсы микросервисов:
Независимый цикл разработки и деплоя каждой команды.
Горизонтальное масштабирование горячих компонентов.
Устойчивость: сбой одного сервиса не приводит к падению всей системы.
Минусы микросервисов:
Сложность DevOps: контейнеризация, оркестрация (Kubernetes), CI/CD.
Сетевые вызовы добавляют латентность и нестабильность.
Сложности с отладкой распределённых транзакций и трассировкой.
Плюсы монолита:
Простота разработки и отладки: единый процесс, единый стек.
Минимальные сетевые накладные расходы.
Минусы монолита:
Трудно масштабировать отдельные части — масштабируется весь монолит.
Большой артефакт и медленные релизы при малейших изменениях.
Когда выбирать:
Малые команды и простые приложения — монолит.
Большие проекты с независимыми доменами и высокими требованиями к масштабируемости — микросервисы.