amazon-web-services - AWS Step Functions - 谷歌云平台有这样的解决方案吗?
问题描述
目前,我正在研究将复杂的 Web 应用程序从 AWS 迁移到 GCP 的可能性和正确方法。将通用计算和网络服务从一个提供商映射到另一个提供商实际上没有问题,但我想知道 GCP 是否有类似于AWS Step Functions的服务?我已经看过 Google Dataflow和 Google Cloud Tasks了。第二个似乎是这样的,但我不确定它是否是最佳解决方案。
所以问题是谷歌的哪些服务提供了与 AWS Step Functions 相同的功能?如果没有这样的 - 那么你会推荐哪些服务的组合来实现分布式任务(主要是云功能)的有效编排。谢谢!
解决方案
2021 更新
正如下面的 Brian de Alwis 所指出的,由于此答案是编写的,因此Cloud Workflows现在普遍可用,并且在功能上类似于 Step Functions。
2019答案
据我所知,没有什么特别像 Step Functions,但我有两种策略可以在 Google Cloud 上创建这些类型的微服务系统。
策略 1:带有 Pub/Sub 的 Cloud Run/Cloud Functions
在这里,我将使用 Cloud Run 或 Cloud Functions 创建微服务,并将这些函数订阅到 Pub/Sub 主题。这意味着当函数 A 执行并完成它的工作时,它会向特定主题发布一条消息,其中包含一个数据包,任何订阅它的函数都将接收并执行该数据包。
例如,您可以创建两个名为FunctionASuccess和FunctionAError的主题,并创建两个单独的函数,订阅一个或另一个并处理成功和错误用例。
策略 2:使用 Firestore/实时数据库的 Firebase 函数
与上面类似,我创建了 Firebase 函数来监视 Firestore 或 RTDB 中的变化。
因此,函数 A执行并完成其任务,它将文档保存到 Firestore 或 RTDB 中的 FunctionAResults 集合中。订阅了 FunctionAResults 集合中更改的函数随后将被执行并将其带到下一步。
它们都可靠地工作,所以我没有偏好,但如果我使用其他 Firebase 服务,我通常会采用第二种策略。
推荐阅读
- node-red - 我无法使用 node-red 中的“exec”节点播放任何声音
- android - 单击 CardView + RecyclerView 时如何打开新片段
- web-services - 我应该在 PhpStorm 旁边安装 XAMPS 吗?
- r - 在 R 的应用函数中引用 x 的列
- c - 命名管道块在其最大大小之前写入
- python - 是否有与 pyinstaller 兼容的 python 视频播放器?
- php - PHP5 - 将类属性作为函数调用时出错
- javascript - 用于多个弹出窗口但在 mouseleave 上触发特定弹出窗口的 JQuery 数据属性
- java - Spring Boot jar 不读取/解析 application.properties 根文件夹
- alexa - 如何让 Alexa 连续执行按钮“SetLight”指令?