Архитектурные стили¶
По уровням¶
Одноуровневая¶
Самая простая архитектура приложений для самых простых приложений. Приложения, построенные по данной архитектуре не масштабируются и как правило не содержат 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)¶
Это "что-то", которое предоставляется как готовый сервис. Например:
- Backend as a Service
- Database as a Service И т.д.
Serverless¶
Бессерверная архитектура приложений состоит из функций или микросервисов, которые выполняют определенную задачу и запускаюся контейнерах.
Подробнее здесь.