首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候使用terraform vs serverless框架来部署AWS lambdas和周围资源?

什么时候使用terraform vs serverless框架来部署AWS lambdas和周围资源?
EN

Stack Overflow用户
提问于 2018-10-16 08:29:12
回答 3查看 5.8K关注 0票数 7

使用无服务器部署AWS lambdas时,您可以创建AWS资源。然而,现在我开始使用Terraform来开发资源,我不确定哪些资源应该通过Terraform文件和serverless来定义。

EN

回答 3

Stack Overflow用户

发布于 2018-10-16 16:02:20

首先,您可以在https://serverless.com/learn/comparisons/页面中读取terraform/serverless比较。

实际上,你可以选择其中的一个或者同时使用它们,因为它们在技术上并不是相互排斥的,一个专注于一件事情,另一个专注于解决类似问题空间中的另一件事情,而不是相同的问题,等等。选择哪一个实际上取决于许多因素。

基本思路可能是这样的:

当您想要关注与无服务器应用程序相关的资源时,您可能会考虑使用无服务器框架(serverless.yml)

但是,如果你想专注于定义完整的基础设施或更传统风格的云基础设施(即自己定义网络、服务器、存储、负载均衡器等),你可能会考虑使用Terraform。

最好的方法是实验,一次只选择其中的一个进行实验。然后,你将看到什么适合你的特定任务,什么让你的自我更容易。

票数 9
EN

Stack Overflow用户

发布于 2018-10-18 00:46:56

我认为这是一个很难回答的问题,因为它取决于许多因素,比如公司的内部结构。

根据经验,我认为应该在serverless.yml文件中定义仅供无服务器服务使用的每个资源,并且应该使用terraform (或其他技术)项目定义共享资源。我在过去使用过这个近似值,它工作得很好。

Yan Cui有一篇很好的文章谈到了共享代码和基础设施(https://hackernoon.com/aws-lambda-how-best-to-manage-shared-code-and-shared-infrastructure-827bed395eb7)。

票数 3
EN

Stack Overflow用户

发布于 2021-03-09 01:44:02

回答可能有点晚了,但我最近有一些经验,可能对分享这个话题很有用。

我曾经使用Serverless Framework为客户开发应用程序。客户已经有了一个中间件团队,他们有自己的方式来管理与基础设施相关的AWS资源。我有一个类似的问题:我应该在我的无服务器项目中投入哪些AWS资源?

对于第一次尝试,我使用无服务器框架来创建VPC和网络内容以及lambda函数。这个解决方案的问题是,我的项目与中间件团队的工作方式有很多冲突。它们有一个中心文档来跟踪子网和IP地址。它们具有适用于整个组织的单个Internet、NAT和VPN网关,其他VPC必须通过中转网关连接到这些网关。它们使用第三方软件来管理防火墙规则。我不得不多次修改我的代码,使其与他们的网络先决条件保持一致。

对于第二次尝试,我只在我的无服务器项目中放置了Lambda函数和一些内容,并通过中间件团队的现有IT请求流程预先提供了其他内容,如DynamoDB表、S3、SQS、S3、IAM角色、安全组、VPC等,并将引用ID放入我的配置中。此解决方案出现了一个新问题:随着应用程序的增长,始终需要新的亚马逊网络服务资源,例如DynamoDB表,资源调配计划应与开发周期保持一致。IT请求流程通常与开发周期不同步。由于所需AWS资源的待定供应,该项目被推迟。但值得一提的是,随着我们在开发过程中发现更多,资源规范通常会发生变化。发出另一个更改规范的IT请求会使这个过程变得非常糟糕。

从这次经历中,我学到了将“与应用程序相关的资源”与“与基础设施相关的资源”分开的重要性。将它们混合在一起会导致上面提到的问题。

对我来说起作用的是不要把网络问题放到一个无服务器的项目中。相反,可以通过其他方式预先配置这些资源,例如在单独的项目中使用Terraform或通过手动配置,并将它们的引用ID放在无服务器项目的配置中。

对于无服务器项目中应该包含哪些资源,我通常列出的最小列表是Lambda函数、DynamoDB表、SNS主题、SQS队列和CloudWatch事件(EventBridge)。

我通常从这些虚拟对象开始,然后开始分析需求,看看我的应用程序在其增长过程中是否需要其他类型的资源。将这些资源添加到与应用程序相关的列表中,并与中间件、架构师和安全团队等相关方进行讨论,以确定列表中的所有资源是否都可以在无服务器框架项目中进行控制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52826389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档