AWS Step Functions - есть ли такое решение для Google Cloud Platform?

В настоящий момент я изучаю возможность и правильный способ миграции сложных веб-приложений с AWS на GCP. На самом деле нет проблем с сопоставлением общих вычислительных и сетевых сервисов от одного поставщика к другой, но мне интересно, есть ли у GCP сервис, похожий на AWS Step Functions? Я уже ознакомился с Google Dataflow и Google Cloud Tasks. Второй вариант выглядит примерно так, но я не уверен, что это оптимальное решение.

Итак, вопрос в том, какой сервис от Google предоставляет ту же функциональность, что и AWS Step Functions? А если такового нет - то сочетание каких сервисов вы бы порекомендовали для достижения эффективной оркестровки распределенных задач (в первую очередь облачных функций). Спасибо!


person Artem Arkhipov    schedule 25.11.2019    source источник


Ответы (3)


Обновление 2021 года

Как отметил ниже Брайан де Алвис, поскольку этот ответ был написан, Cloud Workflows теперь общедоступны и функционально аналогичны Шаговые функции.


Ответ 2019 г.

Насколько мне известно, нет ничего лучше Step Functions, но у меня есть две стратегии для создания таких типов систем микросервисов в Google Cloud.

Стратегия 1. Cloud Run / Cloud Functions с Pub / Sub

Здесь я бы создал микросервисы с помощью Cloud Run или Cloud Functions и подписал эти функции на темы Pub / Sub. Это означает, что когда функция A выполняет и завершает свою работу, она публикует сообщение в определенной теме с пакетом данных, который любая функция, на которую она подписана, получит и выполнит.

Например, вы можете создать две темы с именами FunctionASuccess и FunctionAError и создать две отдельные функции, которые подписываются на одну или другую и обрабатывают успешные и ошибочные варианты использования.

Стратегия 2. Работа Firebase с Firestore / базой данных в реальном времени

Как и выше, я создаю функции Firebase, которые следят за изменениями в Firestore или RTDB.

Итак, Function A выполняет и завершает свою задачу, она сохраняет документ в коллекцию FunctionAResults в Firestore или RTDB. Затем выполняются функции, которые подписаны на изменения в коллекции FunctionAResults, и переходят к следующему шагу.


Они оба работают надежно, поэтому у меня нет предпочтений, но я обычно использую вторую стратегию, если использую другие службы Firebase.

person Brian Burton    schedule 25.11.2019
comment
Спасибо за ответ. Да, стратегию №2 легче контролировать, поскольку я могу не только запускать задачи через firebase, но и сохранять состояние выполнения каждого конкретного рабочего процесса. - person Artem Arkhipov; 25.11.2019
comment
Приму этот ответ как наиболее подходящий на сегодня. Спасибо. - person Artem Arkhipov; 26.11.2019
comment
Хотя функционально обе стратегии будут работать - как насчет части визуализации - где вы могли бы визуально спроектировать поток? - person David Tam; 02.04.2020

Cloud Workflows был анонсирован на Cloud Next On Air 2020.

person Brian de Alwis    schedule 17.09.2020
comment
Облачные рабочие процессы, безусловно, являются закрытыми для пошаговых функций существующими сегодня - person godot; 09.12.2020

Вы ищете Cloud Composer. Он основан на библиотеке с открытым исходным кодом Apache Airflow, которая позволяет определять и организовывать рабочие процессы аналогично пошаговые функции.

person Travis Webb    schedule 25.11.2019
comment
Спасибо за Ваш ответ. Но если я правильно понимаю этот подход - я потеряю преимущества бессерверной версии, потому что, похоже, мне нужно запустить среду композитора на какой-то выделенной машине. Я прав? - person Artem Arkhipov; 25.11.2019
comment
Вещи в трубе. Будьте на связи! - person guillaume blaquiere; 25.11.2019
comment
@guillaumeblaquiere так как дела в трубе? ^^ - person Edmund Rosewright; 19.06.2020
comment
Я не могу поделиться. Только менеджеры по продукту Google (менеджеры по продукту) имеют эту возможность, потому что я подписал соглашение о неразглашении. Однако этим летом выйдет Cloud Next on Air. Ожидайте запуск нового продукта в бета-версии. - person guillaume blaquiere; 19.06.2020
comment
Огромное спасибо. Я с нетерпением жду этого. - person Edmund Rosewright; 23.06.2020