Какие плюсы и минусы у микросервисной архитектуры?

«Какие плюсы и минусы у микросервисной архитектуры?» — вопрос из категории Архитектура, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Независимое развертывание и масштабирование: Каждый сервис можно обновлять и масштабировать отдельно.
  • Технологическая гетерогенность: Разные сервисы можно писать на разных языках и использовать разные БД.
  • Устойчивость: Отказ одного сервиса не должен приводить к падению всей системы.
  • Границы по бизнес-доменам: Упрощает понимание и развитие больших команд.

Минусы:

  • Сложность распределенной системы: Необходимо управлять межсервисной коммуникацией, отказоустойчивостью, согласованностью данных (CAP-теорема).
  • Операционные накладные расходы: Требуется оркестрация (Kubernetes), мониторинг, логирование, трассировка запросов.
  • Сложность тестирования: Требуется тестирование интеграции между сервисами, часто нужны сложные стенды.
  • Затраты на сетевые вызовы: Замедление из-за сетевой задержки по сравнению с вызовами внутри монолита.

С точки зрения QA: Плюсы в независимом тестировании сервисов, но резко возрастает сложность интеграционного, end-to-end тестирования и отладки.