Разработка ПО · 14 октября 2026 · 3 мин чтения

Архитектура приложения: монолит, микросервисы и что выбрать

Эта страница на узбекском: /uz/blog/ilova-arxitekturasi

Архитектура приложения — это то, как система разделена на части и как эти части общаются между собой. Пользователь её не видит, но именно она определяет, сколько будет стоить каждое следующее изменение, выдержит ли система рост и смогут ли разные команды работать параллельно.

Монолит

Всё приложение — один проект и один развёртываемый блок: интерфейс, бизнес-логика, работа с базой. Монолит часто ругают, но для большинства новых проектов он лучший старт.

Плюсы: простая разработка и отладка, одно развёртывание, нет сетевых вызовов между частями, транзакции в одной базе данных. Минусы проявляются с ростом: код разрастается, изменения в одном месте неожиданно ломают другое, вся система масштабируется целиком, даже если нагружена одна функция.

Модульный монолит

Компромисс, о котором забывают. Приложение остаётся одним развёртываемым блоком, но внутри чётко разделено на модули с границами: «заказы», «склад», «клиенты», «платежи». Модули общаются только через объявленные интерфейсы, не лезут в таблицы друг друга. Такой монолит долго остаётся управляемым, а при необходимости отдельный модуль выносится в сервис без переписывания всего.

Микросервисы

Система разбита на независимые сервисы, у каждого своя база данных и свой цикл выпуска. Сервисы общаются по API или через очереди сообщений.

Плюсы: независимое масштабирование, независимые команды, отказ одного сервиса не обязательно роняет всю систему, можно использовать разные технологии. Минусы: сложная инфраструктура, распределённые транзакции, отладка запроса, который прошёл через пять сервисов, необходимость мониторинга и трассировки. Микросервисы оправданы, когда у вас несколько команд и действительно разные нагрузки на части системы.

Serverless и управляемые сервисы

Отдельные функции запускаются в облаке по событию, а инфраструктурой управляет провайдер. Подходит для фоновых задач, обработки файлов, вебхуков, нерегулярной нагрузки. Для основной логики сложной системы используется реже из-за ограничений по времени выполнения и зависимости от провайдера.

Критерии выбора

  • Размер команды: одна команда до десятка человек обычно эффективнее работает с монолитом
  • Ясность предметной области: если границы модулей ещё непонятны, их рано разносить по сервисам
  • Неравномерность нагрузки: если одна функция нагружена несравнимо сильнее остальных, её стоит выделить
  • Требования к надёжности: что должно работать, даже если упало остальное
  • Компетенции команды и поддержки: микросервисы без опыта DevOps превращаются в источник сбоев

Слои внутри приложения

Независимо от выбора, внутри полезно разделять слои: представление (API, интерфейс), бизнес-логика, доступ к данным, интеграции. Бизнес-правила не должны зависеть от того, откуда пришёл запрос — с сайта, из бота или мобильного приложения. Тогда новый канал подключается без дублирования логики.

Признаки, что архитектуру пора менять

  • Небольшая доработка требует изменений во множестве несвязанных мест
  • Выпуск новой версии превращается в рискованное событие и откладывается
  • Одна тяжёлая операция тормозит всю систему
  • Новые разработчики месяцами не могут разобраться в коде
  • Команды мешают друг другу при выпуске изменений

Как менять без остановки бизнеса

Не переписывать всё с нуля. Сначала навести границы внутри монолита, затем выносить отдельные части — обычно самые нагруженные или самые независимые — в сервисы, постепенно перенаправляя на них запросы. Старая и новая части какое-то время работают параллельно.

Что зафиксировать в документах

Схему компонентов, способы взаимодействия, где хранятся какие данные, принятые решения с обоснованием. Короткие записи архитектурных решений помогают через год понять, почему сделано именно так, и не повторять уже отброшенные варианты.

Обсудим задачу

Оставьте имя и телефон — перезвоним, расспросим о процессе и предложим, с чего начать.

Обсудить проект

Статьи по теме

Разработка ПО

ТЗ и бриф: в чём разница и что готовить первым

Бриф и техническое задание часто путают, хотя они решают разные задачи на разных этапах. Разбираем разницу и порядок работы с этими документами.

14 октября 2026

Разработка ПО

ТЗ по ГОСТ 34: когда нужен и как выглядит

ГОСТ 34 задаёт строгую структуру ТЗ на автоматизированные системы. Разбираем, из каких разделов оно состоит, когда без него не обойтись и как использовать стандарт разумно.

14 октября 2026

Разработка ПО

ТЗ как приложение к договору: что зафиксировать

Когда ТЗ становится приложением к договору, каждая формулировка превращается в обязательство. Разбираем, что обязательно зафиксировать, чтобы избежать споров при приёмке.

14 октября 2026

Разработка ПО

Системный аналитик и ТЗ: кто и как пишет требования

Техническое задание пишет не программист и не менеджер, а системный аналитик. Разбираем, что он делает, какие артефакты выдаёт и как понять, что требования готовы к разработке.

14 октября 2026

Разработка ПО

ТЗ и спецификация: в чём разница между документами

Слова «ТЗ» и «спецификация» часто используют как синонимы, но в проектах это разные документы. Разбираем, чем они отличаются и какой из них нужен вашему проекту.

14 октября 2026

Разработка ПО

ТЗ и технический проект: что описывает каждый документ

ТЗ говорит, что должна делать система, технический проект — как она будет устроена. Разбираем содержание обоих документов и когда без технического проекта не обойтись.

14 октября 2026

Заявка

Обсудим задачу

Оставьте имя и телефон — перезвоним, расспросим о процессе и предложим, с чего начать.

Или позвоните

+998 94 444 48 85

Нажимая кнопку, вы соглашаетесь на обработку контактных данных.