AWS Step Functions - Google Cloud Platform 是否有这样的解决方案?

AWS Step Functions - is there such a solution for Google Cloud Platform?

目前我正在研究将复杂的 Web 应用程序从 AWS 迁移到 GCP 的可能性和正确方法。 mapping general compute and networking services from one provider to another, but I wonder if GCP has a service similar to AWS Step Functions? I've already taken a look at Google Dataflow and Google Cloud Tasks 实际上没有问题。第二个好像是这样的,不过不知道是不是最优解

所以问题是 google 的哪个服务提供与 AWS Step Functions 相同的功能?如果没有这样的 - 那么您会推荐哪些服务的组合以实现分布式任务(主要是云功能)的有效编排。 谢谢!

2021年更新

正如 Brian de Alwis 在下面指出的那样,由于写了这个答案 Cloud Workflows 现在普遍可用并且在功能上类似于 Step Functions。


2019答​​案

据我所知,没有什么特别像 Step Functions 的东西,但我有两种策略可以在 Google Cloud 上创建这些类型的微服务系统。

策略 1:云 Run/Cloud 函数 Pub/Sub

在这里,我将使用 Cloud 运行 或 Cloud Functions 创建微服务,并将这些功能订阅到 Pub/Sub 主题。这意味着当函数 A 执行并完成其工作时,它会向特定主题发布一条消息,其中包含一个数据包,任何订阅它的函数都将接收并执行该数据包。

例如,您可以创建两个名为 FunctionASuccessFunctionAError 的主题,并创建两个单独的函数来订阅一个或另一个并处理成功和错误用例。

策略 2:Firebase 函数与 Firestore/Realtime 数据库

与上面类似,我创建了 Firebase 函数来监视 Firestore 或 RTDB 中的变化。

因此 Function A 执行并完成其任务,它将文档保存到 Firestore 或 RTDB 中的 FunctionAResults 集合。然后执行订阅 FunctionAResults 集合中更改的函数,并将其带到下一步。


它们都工作可靠,所以我没有偏好,但如果我使用其他 Firebase 服务,我通常会选择第二种策略。

您正在寻找 Cloud Composer. It's based on the open-source library Apache Airflow,它允许您以类似于步骤函数的方式定义和编排工作流。

Cloud Workflows 已在 Cloud Next On Air 2020 上宣布。