您如何比较Hashicorp-Terraform与无服务器框架?

时间:2017-11-24 20:41:20

标签: terraform serverless-framework serverless

我想知道Terraform和Serverless有什么区别。他们不是在管理您的基础架构,并将您的基础架构表示为代码吗?

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

由于

4 个答案:

答案 0 :(得分:7)

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

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

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

terraform是完全基础设施代码,涵盖了大部分资源。

无服务器框架是一个中间层,仅用于生成Cloudformation模板,主要用于无服务器相关资源,在aws中,专注于lambda,api网关,dynamodb等。

您可以直接在Cloudformation模板中编写所有内容,但模板文件很大,很难通过其JSON / Yaml模板进行维护。在serverless.yml中有几十行,无服务器框架可以生成一千或几千行的云信息模板。它节省了大量时间来处理云形式编码。顺便说一句,如果你已经知道了云形式语法,你可以轻松地将相同的cloudformation yaml代码直接放在resources部分,无服务器模板知道如何创建它们。

您也可以编写Terraform代码来管理lambda,api网关,Dynamodb。也许你可以获得比Cloudformation模板更少的代码,但仍然太复杂。

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

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

答案 1 :(得分:4)

最明显的区别在于,无服务架构专注于功能即服务,而terraform旨在管理包括您的EC2和ECS实例在内的基础架构.Serveless.com可能更适合AWS Lambda部署(及其#39) ; s在其他云中的等价物)但它无法管理您的虚拟机,负载均衡器和所有其他云。

答案 2 :(得分:1)

2021 年更新:无服务器团队自己在 this blog post 中解释了差异。

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

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

来自博文:

<块引用>

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

答案 3 :(得分:0)

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

实际上,我有一些项目,其中Serverless可以处理Lambda函数+内点,而其他任何资源都可以通过Terraform进行处理。

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