【问题标题】:How would you compare Hashicorp-Terraform with serverless framework?您如何将 Hashicorp-Terraform 与无服务器框架进行比较?
【发布时间】:2018-05-08 20:26:09
【问题描述】:

我想知道 Terraform 和 Serverless 有什么区别。他们不是在做同样的事情,比如管理您的基础架构,以及将您的基础架构表示为代码吗?

您真的需要无服务器框架 (serverless.com) 吗?

谢谢

【问题讨论】:

    标签: terraform serverless-framework serverless


    【解决方案1】:

    最明显的区别是无服务架构专注于功能即服务,而 terraform 旨在管理基础设施,包括您的 EC2 和 ECS 实例。Serveless.com 可能更适合 AWS Lambda 部署(它在其他云),但它无法管理您的虚拟机、负载平衡器和所有其他。

    【讨论】:

      【解决方案2】:

      我对无服务器框架和其他类似无服务器工具的理解:

      无服务器框架和 Terraform 都支持不同的云提供商。在接下来的语句中使用 AWS 作为示例。

      将无服务器框架与 Terraform 进行比较,无服务器框架是 无服务器专家,Terraform 是 GP

      terraform 完全是基础架构即代码,涵盖了大部分资源。

      Serverless 框架只是一个中间层,仅生成 Cloudformation 模板,主要用于 serverless 相关资源,在 aws 中,专注于 lambda、api gateway、dynamodb 等。

      您可以直接在Cloudformation模板中编写所有内容,但是模板文件会很大,使用JSON/Yaml模板也很难维护。只需serverless.yml 中的几十行,Serverless 框架就可以生成上千行或上千行的 cloudformation 模板。它节省了大量处理cloudformation编码的时间。顺便说一句,如果你已经知道 cloudformation 语法,你可以很容易地将相同的 cloudformation yaml 代码直接放在resources 部分,无服务器模板知道如何创建它们。

      您也可以编写 Terraform 代码来管理 lambda、api gateway、Dynamodb。也许你可以得到比 Cloudformation 模板更少的代码,但还是太复杂了。

      另一方面,让无服务器框架处理所有 AWS 资源是没有意义的,其他工具已经做得最好了,例如 EC2、VPC、ECS 等。

      无服务器框架仍在开发中,由于它的流行,许多开发人员每天都参与其中,为其添加功能。也许有一天你可以得到你需要的东西,但现在你必须在某些情况下将无服务器框架与 Cloudformation 或 Terraform 或其他工具混合在一起。

      【讨论】:

      • 这个 GP 是什么?
      • 全科医生(GP)
      • @Rohmer 很确定它的意思是“通用”
      • @ub_marco 当你看医生时,我用这个词来比较专家和全科医生——
      【解决方案3】:

      我发现 Serverless 只是更好地处理了 Lambda 和 API Gateway 的配置。部署也不那么麻烦。

      事实上,我有几个项目,其中 Serverless 处理 Lambda 函数 + endopints,而任何其他资源都由 Terraform 处理。

      您甚至可以使用 Terraform 使用 local-exec 命令部署无服务器项目。

      【讨论】:

        【解决方案4】:

        2021 年更新:Serverless 团队在 this blog post 中自行解释了差异。

        它的要点是两者可以一起使用:

        • 无服务器更适合管理应用特定的基础架构,这些基础架构在每次部署时都会被拆除并重新创建
        • Terraform 更适合处理共享的、更有状态的基础架构

        来自博文:

        例如 如果您有一个共享数据库和两个在其中创建表的无服务器应用程序,则该数据库应由 Terraform 管理。在应用部署和拆卸过程中,具体的表应该由无服务器框架创建和销毁。

        【讨论】:

          猜你喜欢
          • 2011-03-11
          • 1970-01-01
          • 2018-03-18
          • 2011-06-20
          • 1970-01-01
          • 2011-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多