【问题标题】:Which is the best path to take for aws CI/CD workflow? Cloudformation, SAM or Serverless framework?aws CI/CD 工作流程的最佳路径是什么? Cloudformation、SAM 还是无服务器框架?
【发布时间】:2020-02-25 03:47:59
【问题描述】:

需要使用 cloudformation、sam 和 serverless 框架来部署 nodejs 应用程序的专家的意见。

请告知最佳路径我使用了无服务器框架,但没有使用 sam 或 cloudformation,虽然我同意它简化了流程,但我希望了解更多有关底层配置的信息。

我倾向于 cloudformation 只是因为这两个框架都将代码转换为 cloudformation 模板。如果我错了,请纠正我,并感谢学习相同内容的最佳资源。

【问题讨论】:

    标签: node.js amazon-cloudformation serverless-framework serverless serverless-application-model


    【解决方案1】:

    SAM 基本上是 Cloudformation 的扩展。如果您了解 SAM,则您基本上了解 Cloudformation。 SAM 可以而且应该与 Cloudformation 结合使用以进行本地测试。

    无服务器是 Cloudformation 之上的一个抽象层。它有助于加快应用程序的创建和部署。如果你在做更高级的配置,那就不够了

    我总是倾向于 Cloudformation(或 SAM),因为它是由 CSP(即 AWS)提供的。这意味着所有新事物都将自动可用,而不是等待抽象层(如无服务器)获得支持。

    【讨论】:

    • 我会警告这一点,通常立即可用。我知道 AWS cli 上的某些功能仍然无法通过 Cloudformation 获得(即某些 Cognito 属性)
    【解决方案2】:

    我推荐无服务器框架。优点有几个:

    • 语法比 CloudFormation 简单得多
    • 比 CloudFormation 更便携(您可以在云提供商之间进行更改)
    • 如果需要,可以在 serverless.yml 中编写原始 CloudFormation 内联
    • 易于部署(只需运行sls deploy

    如果您有兴趣,我的 gitlab 个人资料中有一个示例项目(适用于 GoLang,但原理与其他运行时相同)https://gitlab.com/montao/aws-lambda-go-gitlab-sls

    【讨论】:

    • OP 希望了解更多底层配置,并且已经熟悉 serverless 框架。抽象层在某种程度上掩盖了幕后发生的事情。
    【解决方案3】:

    LostJon 是绝对正确的,因为 CloudFormation 和 SAM 的支持立即可用,因为它是由 AWS 本机提供的。我倾向于 CloudFormation,因为它具有确定性的结果,这在 DevOps 环境中是需要的。除非您向 CloudFormation 堆栈显式添加转换,否则不会有任何转换。

    当您使用 SAM 部署 CloudFormation 模板时,您将能够在 AWS 控制台中查看 CloudFormation 模板,但您也可以选择显示呈现的模板(例如在转换后),以便了解 SAM 的用途你在水下。您可以复制呈现的资源并将它们用作纯 CloudFormation。这使您可以加快开发速度,同时不会失去了解底层配置的好处。

    【讨论】:

    • 不能再同意了。 Cloudformation 也非常简单,只需执行几次即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 2021-08-14
    • 2020-06-03
    • 2019-08-10
    • 2019-07-16
    相关资源
    最近更新 更多