Что такое микросервисная архитектура? Чем отличается от монолита?
Подробный ответ
Что такое монолит
Монолит — приложение, в котором основные части системы поставляются и развёртываются как единый артефакт. Модули могут быть хорошо разделены внутри кода, но обычно используют общий runtime и часто общую базу данных.
Что такое микросервисы
Микросервисы — набор небольших сервисов, каждый из которых отвечает за ограниченную бизнес-возможность: например, пользователи, каталог, заказы, платежи или уведомления. Сервисы взаимодействуют через API, очереди или события и могут развёртываться независимо.
Сравнение
| Критерий | Монолит | Микросервисы |
|---|---|---|
| Деплой | Единый артефакт | Независимый деплой сервисов |
| Масштабирование | Часто масштабируется всё приложение | Можно масштабировать отдельный сервис |
| Данные | Часто общая БД | Желательно владение данными каждым сервисом |
| Сложность разработки | Ниже на старте | Выше из-за сети и распределённых систем |
| Наблюдаемость | Проще собирать логи и debugging | Нужны tracing, централизованные логи и метрики |
| Сбои | Сбой модуля может затронуть весь процесс | Можно изолировать сбои, но появляются каскадные отказы |
Преимущества микросервисов
независимое масштабирование горячих компонентов;
автономные команды и релизы;
разделение больших доменов на bounded contexts;
возможность выбирать технологию для конкретной задачи.
Недостатки
сетевые задержки, частичные отказы, retries и timeouts;
распределённые транзакции и eventual consistency;
сложнее тестирование, локальная разработка и отладка;
выше требования к CI/CD, мониторингу, безопасности и инфраструктуре.
Как ответить на собеседовании
Монолит проще разрабатывать и эксплуатировать на старте, поэтому часто это правильный первый выбор. Микросервисы дают независимый deploy и масштабирование вокруг бизнес-доменов, но добавляют сложности распределённой системы: сеть, consistency, observability и эксплуатацию. Я выбираю микросервисы только при реальных границах домена, масштабе команды и готовности поддерживать эту инфраструктуру.
Оцени свой прогресс