Какой наилучший путь выбрать для работы с AW / CI / CD? Cloudformation, SAM или безсерверный фреймворк? - PullRequest
1 голос
/ 29 октября 2019

Требуется мнение эксперта, который использовал облачную среду, sam и безсерверную инфраструктуру для развертывания приложения nodejs.

Пожалуйста, посоветуйте, какой путь лучше всего выбрать, я использовал безсерверную среду, но не sam или cloudformation, хотя я согласенчто это упрощает процесс, я хотел бы узнать больше о базовой конфигурации.

Я склоняюсь к облачной информации только потому, что обе платформы преобразуют код в шаблоны облачной информации. Пожалуйста, поправьте меня, если я ошибаюсь, и оцените лучшие ресурсы, чтобы узнать то же самое.

Ответы [ 3 ]

2 голосов
/ 30 октября 2019

SAM - это в основном расширение Cloudformation. Если вы знаете SAM, вы в основном знаете Cloudformation. SAM можно и нужно использовать совместно с Cloudformation для локального тестирования.

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

Я всегда склоняюсь к Cloudformation (или SAM), потому что это обеспечивается CSP (то есть AWS). Это означает, что все новое будет автоматически доступно, вместо того, чтобы ждать, пока слой абстракции (например, без сервера) начнет работать в поддержке.

1 голос
/ 30 октября 2019

LostJon абсолютно прав в том, что поддержка CloudFormation и SAM сразу же доступна, поскольку она изначально предоставляется AWS. Я склоняюсь к CloudFormation по той причине, что она имеет детерминированный результат, который желателен в ландшафте DevOps. Преобразований не будет, если вы явно не добавите преобразования в свой стек CloudFormation.

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

1 голос
/ 30 октября 2019

Я рекомендую Serverless Framework. Есть несколько преимуществ:

  • Синтаксис намного проще, чем CloudFormation
  • Более переносим, ​​чем CloudFormation (вы можете переключаться между облачными провайдерами)
  • Возможность писать необработанные встроенные CloudFormation вserverless.yml при необходимости
  • Простота развертывания (просто запустите sls deploy)

В моем профиле gitlab есть пример проекта, если вы заинтересованы (для GoLang, но принципы таковы:так же, как и для других сред выполнения) https://gitlab.com/montao/aws-lambda-go-gitlab-sls

...