Найти в Дзене
HowToSchool

SD-EP39: Как выглядит типичная микросервисная архитектура?

Балансировщик нагрузки (Load Balancer): распределяет входящий трафик между несколькими экземплярами шлюза API для обеспечения высокой доступности.

Сеть доставки контента (CDN – Content Delivery Network): это группа географически распределенных серверов, на которых хранится статический контент для более быстрой доставки. Клиенты сначала ищут контент в CDN, а затем переходят к серверным сервисам.

Шлюз API (API Gateway): обрабатывает входящие запросы и направляет их соответствующим сервисам. Он общается с сервисом идентификации и сервисом обнаружения.

Сервис идентификации (Identity Provider): занимается аутентификацией и авторизацией пользователей.

Сервис регистрации и обнаружения (Service Registry & Discovery): регистрация микросервисов происходит в этом компоненте, как и обнаружение шлюзом API соответствующих сервисов для дальнейшего передачи запросов.

Управление (Management): этот компонент отвечает за мониторинг состояния микросервисов.

Микросервисы (Microservices): разрабатываются и развертываются в разных областях. Каждый домен (область) имеет свою базу данных. Шлюз API взаимодействует с микросервисами через REST API или другие протоколы, а микросервисы в одном домене взаимодействуют друг с другом с помощью RPC (удаленный вызов процедур).

Преимущества микросервисов:

- Их можно быстро спроектировать, развернуть и масштабировать по горизонтали.

- Каждый домен может независимо обслуживаться отдельной командой разработчиков.

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

P.S. Каковы недостатки микросервисной архитектуры?

P.S.S. Вы когда-нибудь видели, как монолитная система трансформируется в микросервисную архитектуру?

P.S.S.S. Вы начинаете стартап. Какую архитектуру вы выберите?