Архитектура: монолит vs микросервисы
Как растут большие приложения и когда нужно разбивать монолит на сервисы.
🏢 Монолит
✅ Плюсы
Просто начать
Один деплой
Лёгкий дебаг
❌ Минусы
Деплоить всё целиком
Нельзя масштабировать часть
Страх рефакторинга
Монолит — один большой сервис
Что такое монолит?
Монолит — приложение, где весь код развёртывается как одна единица.
┌──────────────────────────────────┐
│ Монолит │
│ ┌───────┐ ┌───────┐ ┌────────┐ │
│ │ Users │ │Orders │ │Payment │ │
│ └───────┘ └───────┘ └────────┘ │
│ ↕ одна БД │
└──────────────────────────────────┘Плюсы монолита
✅ Просто начать — один репозиторий, один деплой ✅ Просто разрабатывать — нет сетевых вызовов между компонентами ✅ Легко дебажить — один стек вызовов, один лог ✅ Транзакции — легко делать атомарные операции в одной БД
Минусы при росте
❌ Деплой всего из-за одной строчки — поменял кнопку → нужно задеплоить всё приложение ❌ Страх изменений — "а вдруг что-то сломается" ❌ Масштабирование — нельзя масштабировать только нагруженную часть ❌ Технологический стек — всё на одном языке/фреймворке
Вывод: монолит — не плохо. Это правильный старт для большинства проектов.