Architecture
Средний
В чём отличия монолита от микросервисов?
Монолит vs Микросервисы
Монолит
Единое приложение, один deployment unit.
┌─────────────────────────────────┐
│ Монолит │
│ ┌─────┐ ┌─────┐ ┌─────────┐ │
│ │Users│ │Orders│ │Payments │ │
│ └──┬──┘ └──┬──┘ └────┬────┘ │
│ └───────┴─────────┘ │
│ База данных │
└─────────────────────────────────┘
Микросервисы
Независимые сервисы, отдельные deployments.
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Users │ │ Orders │ │Payments │
│ Service │ │ Service │ │ Service │
└────┬────┘ └────┬────┘ └────┬────┘
│ │ │
[DB] [DB] [DB]
Сравнение:
| Аспект | Монолит | Микросервисы |
|---|---|---|
| Развёртывание | Целиком | По отдельности |
| Масштабирование | Всё приложение | Отдельные сервисы |
| Технологии | Единый стек | Разные языки/БД |
| Связность | Сильная | Слабая |
| Сложность | Ниже изначально | Выше изначально |
| Тестирование | Проще E2E | Сложнее интеграция |
| Отказоустойчивость | Один сбой = всё падает | Изолированные сбои |
Плюсы монолита:
- Простота разработки — один проект, одна IDE
- Простота тестирования — всё в одном месте
- Простота деплоя — один артефакт
- Производительность — нет сетевых вызовов между модулями
Плюсы микросервисов:
- Независимый деплой — быстрее релизы
- Масштабируемость — только нужные сервисы
- Технологическая гибкость — подбор под задачу
- Изоляция сбоев — один сервис не роняет все
- Автономные команды — меньше координации
Проблемы микросервисов:
- Сетевые задержки — вызовы между сервисами
- Распределённые транзакции — Saga, eventual consistency
- Сложность отладки — distributed tracing
- Операционная сложность — больше инфраструктуры
Когда выбирать:
Монолит:
- Стартап / MVP
- Маленькая команда
- Простой домен
- Быстрый выход на рынок
Микросервисы:
- Большая команда (по сервису на команду)
- Разные требования к масштабированию
- Независимые домены
- Высокие требования к отказоустойчивости
Паттерн: Monolith First
Начните с монолита, выделяйте микросервисы по мере роста.
Похожие вопросы
Готовитесь к собеседованию?
ENIGMA AI — невидимый ИИ-помощник для технических интервью
Попробовать бесплатно