Перейти к содержанию

Виды архитектур

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


Монолитная архитектура

Приложение — единый блок, все компоненты разрабатываются и развёртываются вместе.

  • Всё в одном: интерфейс, логика, БД.

  • Просто разрабатывать и тестировать.

  • Трудно масштабировать, менять и разворачивать частично.


Клиент-серверная архитектура

Разделение на клиента (UI) и сервера (логика + данные). Клиент делает запросы, сервер отвечает.

  • Пример: браузер ↔ веб-сервер.

  • Простая логика разделения.

  • Сервер — потенциальное узкое место.


Трёхуровневая архитектура

Клиент, логика приложения и БД — разделены по слоям.

  • Слои: Presentation → Business Logic → Data.

  • Улучшенная модульность и поддержка.

  • Увеличение сложности и количества связей.


Микросервисная архитектура

Приложение состоит из независимых сервисов, каждый решает свою задачу и взаимодействует через API.

  • Каждый сервис — самостоятельный модуль.

  • Масштабируемость, независимая разработка и развертывание.

  • Сложность в настройке, DevOps, мониторинге и взаимодействии.


Сервис-ориентированная архитектура (SOA)

Похожа на микросервисы, но с централизованным управлением (обычно через ESB — Enterprise Service Bus).

  • Взаимодействие через общие протоколы и стандарты (например, SOAP).

  • Повторное использование сервисов.

  • Зависимость от шины, высокая сложность и накладные расходы.


Событийно-ориентированная архитектура (EDA)

Компоненты обмениваются событиями, а не напрямую вызывают друг друга.

  • Публикация/подписка, очереди сообщений (Kafka, RabbitMQ).

  • Высокая асинхронность, слабая связность.

  • Трудность отладки и отслеживания потока данных.


Serverless (бессерверная архитектура)

Выполнение логики в виде функций по событию, без управления инфраструктурой.

  • Примеры: AWS Lambda, Azure Functions.

  • Платишь только за выполнение, высокая масштабируемость.

  • Ограничение по времени выполнения, холодный старт.


Чистая (Clean) архитектура

Разделение на слои с чёткими зависимостями, бизнес-логика в центре, вне зависимости от фреймворков.

  • Слои: Entities → Use Cases → Interface Adapters → Frameworks.

  • Тестируемость, независимость от технологий.

  • Требует времени на проектирование и соблюдение принципов.


Заключение

Архитектура Подходит для
Монолит Простые или старые приложения
Клиент-сервер Веб-приложения
Трёхуровневая Приложения с чёткой логикой и БД
Микросервисы Большие, распределённые системы
SOA Корпоративные системы и интеграции
Событийная (EDA) Реактивные и потоковые системы
Serverless Лёгкие, триггерные задачи
Clean Architecture Тестируемые и масштабируемые системы