【发布时间】:2021-04-16 12:51:56
【问题描述】:
过去几年我一直在 AWS 上构建无服务器应用程序,利用 Lambda、DynamoDB、SNS、SQS、Kinesis 等服务,依靠无服务器框架进行本地开发和部署。由于职业原因,我现在不得不切换到谷歌云,我一直在探索那个平台上的无服务器空间。不幸的是,乍一看它似乎没有AWS那么成熟,我不知道这是真的还是只是由于我缺乏专业知识造成的。让我这么说的原因基本上有以下几点:
- 没有对函数和资源进行逻辑分组:在 AWS 上,Lambda 函数被分组在应用程序中,并且可以通过 SAM 或无服务器框架作为一个整体进行部署,这也允许创建任何关联的资源(数据库、队列、事件总线等)。似乎在 GCP 上,函数被视为单独的实体,这使得管理和编排它们变得更加困难。
- 缺乏工具:SAM cli 和 Serverless 框架都为本地开发和部署提供了工具。我在 GCP 上没有发现任何像前者那样的东西(Functions Framework 似乎部分涵盖了它,但它不处理部署),即使后者支持 GCP,它也缺少基本功能,例如创建其他资源比功能。更何况GCP不在核心框架和plugin is looking for maintainers中。
- 事件源更少:Lambda 直接与a long list of services 集成。另一方面,Cloud Functions 与 just a few services 集成,使得 HTTP 触发器成为大多数情况下的唯一选择。他们似乎正在尝试通过Eventarc 解决此问题,但我认为它尚未普遍可用。
有人对如何为此类应用程序设置本地环境以及如何有效管理它们有任何提示吗?
【问题讨论】:
-
如果您将 AWS 和 GCP 之间的比较缩小到 Cloud Functions,那么是的,AWS 更加成熟。但是,试试 Cloud Run,您可以对端点进行分组,并且不需要工具,因为它是云原生的(不仅在 GCP 上到处运行)。您拥有更好的灵活性、可扩展性、超棒的定价……您还可以查看旧的但仍然存在的 App Engine 标准。这是一种新的范式,具有不同的模式和实践。没有好坏之分,只是不同!
标签: google-cloud-platform google-cloud-functions serverless-framework serverless