Фаза D: Технологическая архитектура
Использование микросервисов для обеспечения функций приложения является технологическим решением, которое может быть принято на этапе архитектурного видения. Это решение подтверждается и поддерживается технологической архитектурой на этом этапе.
В соответствии со стандартом TOGAF, целью этого этапа является разработка целевой технологической архитектуры, которая позволит реализовать архитектурное видение, целевые блоки бизнеса, данных и приложений с помощью технологических компонентов и услуг. Это должно соответствовать заявлению об архитектурных работах и интересам заинтересованных сторон.
Кроме того, на этом этапе определяются возможные компоненты архитектурной дорожной карты на основе разрывов между базовой и целевой технологической архитектурой.
Однако, архитектура не обязательно должна строиться только на микросервисах. Поддержка микросервисов может быть лишь частью общей технологической архитектуры.
Микросервисы
Микросервис - это сервис, который выполняет одну задачу и не зависит от других микросервисов. Он разрабатывается и разворачивается независимо.
Как услуга, микросервис имеет определенный контракт на обслуживание, который включает в себя спецификацию интерфейса, обычно называемую API. Микросервисы, доступные другим компонентам архитектуры, перечислены в каталоге сервисов.
Разработка, развертывание и выполнение микросервисов показаны на рисунке ниже.
Каждый микросервис обладает собственным исходным модулем, в котором содержится код, отвечающий за его функционирование. Этот исходный код независим от других микросервисов и не имеет доступа к их данным. Однако, он может использовать сторонние библиотеки для выполнения функций, не относящихся к бизнес-логике.
Кроме того, каждый микросервис имеет модуль развертывания, который создается на основе исходного модуля и библиотек, используемые им. Этот модуль развертывания может включать код только для одного микросервиса.
Модуль развертывания микросервиса может быть развернут как один исполняемый модуль или, в случае масштабирования системы, как несколько исполняемых модулей, выполняющих один и тот же код.
Шаги
Разработка архитектуры для поддержки микросервисов обычно требует дополнительных шагов, помимо стандартных для TOGAF на этой фазе.
Определите функциональность приложения, описанную в архитектурном решении, которая будет поддерживаться микросервисами.
Проанализируйте использование данных в приложениях, выбранных для данной области, учитывая рекомендации по Архитектуре данных.
Проанализируйте требования, акцентируя внимание на транзакционности и масштабируемости.
Укажите принципы и шаблоны, которые будут использоваться при разработке микросервисов для поддержки приложений, работы с данными и удовлетворения требований.
Укажите стандарты, которые будут применяться к контрактам служб, определениям интерфейсов и каталогу услуг.
Укажите механизмы развертывания микросервисов и среду их выполнения.
Независимость в разработке микросервисов является ключевой особенностью MSA. Команды DevOps по микросервисам могут самостоятельно выбирать языки программирования, библиотеки, инструменты разработки и механизмы сборки. Однако эти решения могут быть ограничены технологической архитектурой.