我想知道Terraform和Serverless之间的区别。他们不是在做同样的事情吗,比如管理你的基础设施,并将你的基础设施表示为代码?
你真的需要一个无服务器框架(serverless.com)吗?
谢谢
发布于 2017-11-25 12:28:48
我对无服务器框架和其他类似的专注于服务器的工具的理解是:
Serverless Framework和Terraform都支持不同的云提供商。在下一条语句中使用AWS作为示例。
比较无服务器框架和Terraform,无服务器框架是serverless Compare ,Terraform是GP
terraform是完全基础架构的代码,涵盖了大部分资源。
无服务器框架是一个只生成Cloudformation模板的中间层,主要用于无服务器相关的资源,在aws中,主要关注lambda、api网关、dynamodb等。
你可以直接在Cloudformation模板中编写所有内容,但是模板文件会很大,而且它的JSON/Yaml模板也很难维护。在serverless.yml中只需要几十行代码,无服务器框架就可以生成上千行甚至几千行的云表单模板。处理cloudformation编码可以节省大量时间。顺便说一句,如果你已经知道cloudformation语法,你可以很容易地将相同的cloudformation yaml代码直接放在resources部件中,serverless模板知道如何创建它们。
您可以编写Terraform代码来管理lambda、api网关和Dynamodb。也许你可以得到比Cloudformation模板更少的代码,但仍然太复杂了。
另一方面,让无服务器框架处理所有亚马逊网络服务资源是没有意义的,因为其他工具已经做得很好了,比如EC2、VPC、ECS等。
无服务器框架仍在开发中,由于它的普及,许多开发人员每天都会参与到其中添加功能。也许有一天你可以得到你需要的东西,但现在你必须在某些情况下将无服务器框架与Cloudformation或Terraform或其他工具混合在一起。
发布于 2017-11-25 10:09:03
最明显的区别是,无服务器架构专注于功能即服务,而terraform旨在管理基础架构,包括您的EC2和ECS instances.Serveless.com可能更适合AWS Lambda部署(在其他云中相当于它),但它不能管理您的虚拟机,负载均衡器和所有其他。
发布于 2018-10-29 23:32:21
我发现Serverless能更好地处理Lambda和API Gateway的配置。部署也不是那么麻烦。
事实上,我有几个项目,其中Serverless处理Lambda函数+endopint,而任何其他资源都由Terraform处理。
您甚至可以使用local-exec命令使用Terraform来部署无服务器项目。
https://stackoverflow.com/questions/47479757
复制相似问题