GCP Dataflow против облачных функций - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть система, в которой данные публикуются в теме Pub / Sub, читаются подписчиком облачных функций и отправляются в Big Query для их сохранения (дополнительные преобразования в CF подписчика не выполняются).

Isэто хорошая идея, чтобы изменить моего подписчика CF на потоковое задание потока данных с использованием шаблона pub / sub-BQ? Каковы плюсы / минусы их использования?

1 Ответ

0 голосов
/ 09 ноября 2019

Все зависит от вашего варианта использования и скорости передачи данных.

  • В случае редких данных, публикуемых в теме PubSub, облачная функция работает хорошо и почти ничего не стоит
  • В случаеустойчивый трафик, вы должны заботиться о своем времени обработки. Простой поток данных будет стоить всего 1vm (основной vm, n1-standard-1). Стоимость часа облачных функций дороже, чем 1vm вверх (n1-standard-1). В случае одновременного сообщения, несколько экземпляров будут порождены, и это увеличит стоимость обработки.

Вы также должны принять во внимание легкость развертывания функции (в противоположность потоку данных, где вам нужно опустошить свой конвейер, остановить и перезапустить его) и возможность делать гораздо больше. (и в течение более длительного периода времени) с потоком данных (вы ограничены в возможностях обработки с функцией, и продолжительность обработки каждого сообщения не может превышать 9 минут).

В зависимости от перспективы вашего проекта, одно или другое решение может быть лучше.

В качестве бонуса у меня есть третий вариант: Cloud Run. Cloud Run почти так же просто, как и функция обновления и развертывания, продолжительность обработки немного больше (15 минут на сообщение), и вы можете обрабатывать несколько сообщений в одном экземпляре, и, таким образом, цены могут быть гораздо интереснее, чем сфункция из-за этой факторизации. Если вам интересно, посмотрите эту статью, которую я написал

...