Фаза D: Технологическая архитектура

 Использование микросервисов для обеспечения функций приложения является технологическим решением, которое может быть принято на этапе архитектурного видения. Это решение подтверждается и поддерживается технологической архитектурой на этом этапе.

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

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

Однако, архитектура не обязательно должна строиться только на микросервисах. Поддержка микросервисов может быть лишь частью общей технологической архитектуры.

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

Микросервис - это сервис, который выполняет одну задачу и не зависит от других микросервисов. Он разрабатывается и разворачивается независимо.

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

Разработка, развертывание и выполнение микросервисов показаны на рисунке ниже.

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

Кроме того, каждый микросервис имеет модуль развертывания, который создается на основе исходного модуля и библиотек, используемые им. Этот модуль развертывания может включать код только для одного микросервиса.

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

Шаги

Разработка архитектуры для поддержки микросервисов обычно требует дополнительных шагов, помимо стандартных для TOGAF на этой фазе.

Независимость в разработке микросервисов является ключевой особенностью MSA. Команды DevOps по микросервисам могут самостоятельно выбирать языки программирования, библиотеки, инструменты разработки и механизмы сборки. Однако эти решения могут быть ограничены технологической архитектурой.