⭐️ Монолит, Сервисная и Микросервисная архитектуры - в чём разница и что выбрать? ⭐️
Для аналитиков важно не только знать, какие виды архитектур существуют, но и понимать их ключевые отличия.
В этом посте знакомимся с востребованными видами архитектуры:
🔸 Монолит
Все компоненты приложения находятся в одной кодовой базе и работают как единое целое.
БД:
Обычно одна, но допустимо и несколько.
Внутренние интеграции:
Компоненты взаимодействуют только на уровне кода, интеграции компонентов внутри Backend по API и другими способами НЕ нужны.
🔸 Сервис-ориентированная архитектура, SOA
Разделяет функциональность на отдельные сервисы.
Подходит для средних и крупных проектов, где важно обеспечивать высокий уровень производительности для отдельных частей системы.
БД:
Каждый сервис может использовать свою собственную БД.
Также несколько сервисов могут использовать одну общую БД - это отличает SOA от MSA.
Внутренние интеграции:
Сервисы взаимодействуют между собой через сетевые вызовы - по API, через шину данных (ESB) или другими способами.
🔸 Микросервисная архитектура, MSA
Состоит из множества маленьких, независимо разрабатываемых и развертываемых сервисов, каждый из которых выполняет определенную бизнес-логику.
Микросервисы меньше по функциональности, чем сервисы.
Подход эффективен для больших и быстро развивающихся приложений.
БД:
Каждый микросервис управляет своей собственной БД.
Внутренние интеграции:
Взаимодействие между микросервисами часто строится по API на легких протоколах, таких как REST или gRPC, и может включать брокеры для асинхронной коммуникации.
👉 Выбор архитектуры проекта зависит от специфики и НФТ к системе.
На практике часто используют либо смесь подходов SOA и MSA, либо начинают проекты с монолита и через 3-5 лет задумываются о переезде на SOA в качестве первого этапа деления монолита на микросервисы.
Ключевые подходы к проектированию архитектуры фиксируют в документации. И это не только схемы архитетуры, но и правила, по которым продолжать развивать проект ✅
#АрхитектураGA
Post #2907
5.18K