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

Архитектурные стили

По уровням

Одноуровневая

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

Двухуровневая архитектура (Клиент-серверная)

Архитектура, позволяющая разделять ответственность между слоем отображения данных и слоем их обработки (бизнес логикой). Такие приложения проще обновлять и масштабировать. Но если нужно будет обновить клиент - с этим могут возникнуть проблемы.

Многоуровневая архитектура (N-tier)

Зачастую, когда упоминают многоуровневую архитектуру, в качестве примера выбирают трехзвенную архитектуру. В данной архитектуре есть слой презентации, слой приложения (логики) и слой хранения (БД).

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

По организации

MVC

Model-View-Controller — схема разделения данных приложения и управляющей логики на три отдельных компонента: модель, представление и контроллер — таким образом, что модификация каждого компонента может осуществляться независимо.

SOA

SOA - сервис ориентированная архитектура, ключевой концепцией которой является создание независимых сервисов. В качестве примеров можно использовать веб-сервисы, микросервисы, сервисы использующие шину сообщений и т.д.

EDA

EDA (Event-Driven Architecture) - этот стиль подразумевает вместо отправки команд сервисам отправку событий. Стиль подразумевает асинхронную коммуникацию. Включает в себя такие подходы как CQRS, Event-Sourcing.

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

Микросервисы - этот стиль подразумевает разделение приложений на сервисы, которые независимы, но связаны между собой. Бывают как асинхронные так и синхронные по стилю коммуникации. Подробнее здесь.

Cloud-based

Архитектура, которая подразумевает использование облачного провайдера (AWS, Yandex Cloud), который предоставляет ресурсы для выполнения и хранения чего-то.

X as a service (XaaS)

Это "что-то", которое предоставляется как готовый сервис. Например:

Serverless

Бессерверная архитектура приложений состоит из функций или микросервисов, которые выполняют определенную задачу и запускаюся контейнерах.

Подробнее здесь.