Шаблон SAM для приложения, содержащего независимые модули - PullRequest
0 голосов
/ 24 января 2019

Я разрабатываю бэкэнд для веб-приложения. Бэкэнд разделен на несколько модулей, например заказы, продукты и т. д. Эти модули используют некоторые общие ресурсы, такие как таблица DynamoDB, тема SNS. Я хотел бы иметь возможность развертывать модули самостоятельно. Какова лучшая практика для этого сценария? Должен ли API-шлюз быть общим для всех модулей или каждый модуль должен иметь свой собственный API-шлюз? Спасибо за ваши ответы

1 Ответ

0 голосов
/ 27 января 2019

Я бы начал с простого и держал все внутри одного шаблона SAM, единого шлюза API и единого репозитория.При развертывании с помощью SAM / Cloudformation обновляются только измененные ресурсы, поэтому нет лишних затрат.

Так же проще построить свой конвейер CD.Вы можете добиться независимого развертывания модуля, только фиксируя и отправляя изменения этого модуля.

Как только (если) вы переросли модель инфраструктуры с одним шаблоном, не слишком сложно разделить ваши ресурсы на несколько шаблонов и перекрестноссылаться на общие ресурсы, используя функции Outputs и !ImportValue Cloudformation.Что может быть трудным, так это синхронизация зависимых развертываний (т. Е. Функция A в модуле 1 нуждается в функции B в модуле 2 для правильной работы и наоборот), но это проблема для другого дня.

...