Стили архитектуры
Архитектурный стиль определяет семейство подобных систем с точки зрения структурной организации. В частности, стиль определяет набор компонентов и коннекторов, которые можно применять в реализациях этого стиля, а также ряд правил, согласно которым они могут сочетаться.
Виды архитектур
- Клиент-Сервер
- Многослойная n-уровневый Layered
- Горизонтальные уровни, разделенные подсетью
- Традиционный домен для бизнеса. Частота обновления не высокая.
- Модульный монолит
- Сервис-ориентированная SOA
- предполагает модульное приложение
- состоящее из дискретных и слабосвязанных программных агентов, которые выполняют конкретные функции
- Сервисная
- является хорошей отправной точкой в эволюционном переходе от монолитной архитектуры
- затем возможно переход к микросервисам, если возникнет необходимость в новом уровне масштабируемости
- подразумевает наличие ядра и множества сервисов с ним взаимодействующих
- пример: все linux решения
- Distributed System Распределенная архитектура
- Микросервисы Микрослужбы MSA
- Вертикально (функционально) разделенные службы, вызывающие друг друга через API-интерфейсы
- Сложный домен. Частые обновления.
- Высокораспределенная архитектура
- Event Driven Управляемая событиями архитектура EDA
- Производитель и потребитель
- Независимое представление для каждой подсистемы
- Интернет вещей и системы, работающие в режиме реального времени
- Большие данные Big Data
- Разделение большого набора данных на мелкие блоки
- Параллельная обработка для локальных наборов данных
- Пакетная обработка и анализ данных в режиме реального времени
- Прогнозная аналитика с использованием машинного обучения
- Большие вычисления Big Compute
- Распределение данных в тысячах ядер
- Домены с ресурсоемкими вычислениями, например моделированием
- Микросервисы Микрослужбы MSA
- Микроядерная Microkernel
- этот шаблон позволяет вам добавлять дополнительные функции приложения в виде плагинов к основному приложению
- обеспечение расширяемости, а также разделения и изоляции функциональности
- Vertical-slice
- Pipeline
- ZeroMQ
- Интерфейс — очередь — рабочая роль
- Интерфейсные и серверные задания, разделенные асинхронным обменом сообщениями
- Относительно простой домен с ресурсоемкими задачами
- Symmetrically distributed system architectures - peer-to-peer
- пример Torrent
- Hybrid system architectures
- Cloud computing
- edge-cloud computing
- blockchain
- Массово-параллельная архитектура (Massive Parallel Processing, MPP)
Onion Луковая гексагональная архитектура
- состоит из концентрических слоёв
- зависимости идут снаружи в центр
- гексагональная архитектура, или «порты и адаптеры»
- в основе Clean Architecture