Gymterview
junior

Что такое монолитная архитектура, каковы её плюсы и минусы

Монолитная архитектура — это архитектурный стиль, при котором всё приложение разрабатывается, развёртывается и масштабируется как единое целое. Весь код находится в одном развёртываемом артефакте (например, один WAR/JAR-файл).

Схема монолита

Пример
┌─────────────────────────────────────────┐
│              Монолит (WAR/JAR)          │
│  ┌──────────┐ ┌──────────┐ ┌────────┐  │
│  │    UI    │ │ Бизнес-  │ │ Доступ │  │
│  │  слой    │ │ логика   │ │ к БД   │  │
│  └──────────┘ └──────────┘ └────────┘  │
│  ┌──────────┐ ┌──────────┐ ┌────────┐  │
│  │ Модуль   │ │ Модуль   │ │ Модуль │  │
│  │ платежей │ │ клиентов │ │ отчётов│  │
│  └──────────┘ └──────────┘ └────────┘  │
└─────────────────────────────────────────┘
                    │
              ┌─────┴─────┐
              │    БД     │
              └───────────┘

Плюсы

  • Простота разработки — единая кодовая база, один процесс сборки.
  • Простота развёртывания — один артефакт для деплоя.
  • Простота отладки — можно пройти весь поток выполнения в одном процессе.
  • Нет накладных расходов на сетевое взаимодействие — все вызовы локальные (in-process).
  • Транзакционная целостность — легко обеспечить ACID в рамках одной БД.
  • Низкий порог входа — не нужна экспертиза в распределённых системах.

Минусы

  • Сложность масштабирования — нельзя масштабировать отдельный модуль, только всё приложение целиком.
  • Долгий цикл развёртывания — изменение одной строки требует пересборки и передеплоя всего приложения.
  • Связанность (coupling) — изменения в одном модуле могут сломать другой.
  • Технологическая привязка — весь код использует один стек технологий.
  • Сложность для больших команд — конфликты при слиянии кода, сложная координация.
  • Рост кодовой базы — со временем становится трудно понять и поддерживать.

Когда монолит оправдан

  • На старте проекта, когда границы домена ещё не ясны.
  • Для небольших команд (до 5-7 разработчиков).
  • Когда важна транзакционная целостность и простота.
  • В MVP и прототипах.

На собеседовании: Интервьюер ожидает не только список плюсов/минусов, но и понимание, когда монолит — правильный выбор. Частая ошибка — безусловно критиковать монолит и предлагать микросервисы для любого проекта.