BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleがタスクキューサービスのCloud Tasksを発表

GoogleがタスクキューサービスのCloud Tasksを発表

ブックマーク

原文(投稿日:2018/10/03)へのリンク

Googleは、Google Cloud PlatformのApp Engineサービス用のタスクキューサービスであるCloud Tasksを発表した。アプリケーションからのタスクの非同期実行、サービスのデカップリング、長期実行型のバックグラウンドアクティビティ実装のサポートを実現する。

Google Cloud Tasksを使うことで、アプリケーション開発者が定義した作業単位であるタスクを分散キューに配置し、ワーカサービスにプッシュすることが可能になる。タスクキューの概念は、AWSのSQSやAzureのService Busなど、すべての大規模クラウドプロバイダによって提供されている、実績のあるものだ。実際にCloud Tasksは、同じ概念を提供するGoogleのTask Queueサービスを進化させたものである。今回の発表で、Google Cloud PlatformプロダクトマネージャのMorgan Hallmon氏は、既存のタスクキューと新しいタスクキューの管理はすべてCloud Taskの下で統合される、と説明している。

長年にわたって、App Engineのユーザは、タスクの非同期実行を可能にするApp EngineサービスとしてTask Queueを利用してきました。今回のリリースによって、タスクキューの管理はすべて、Cloud Tasksのコンソールとコマンドライン、APIに集中化されます。

タスクキューの使用には、システムの疎結合化、バックグラウンドサービスへの作業のオフロード、システム間で受け渡されるタスクストレージの提供による信頼性向上など、複数のメリットがある。

出典: https://en.wikipedia.org/wiki/Scheduling_(computing)#task_queue

初見では、Googleの別のキューサービスであるPub/Subと大きくオーバーラップしているように見えるかも知れないが、While similarities are noticeable, the use cases between the two do certainly differ. 類似点はあるものの、ゆーすGoogleはPub/Subをビッグデータやネットワークオペレーションに重点を置いたサービスとして位置づけているため、高いスループットを提供する一方で、コンテンツやターゲットアプリケーションには関心を払っていない。それに対して、Cloud Tasksは実行管理サービスであり、明示的なコマンドが多数用意されており、それらを専用のバックグラウンドワーカが処理する。

さらに、Google Cloud Platformに限定されているTask Queuesに対して、Cloud TasksはGCPサービス全体を対象として統合されている。Cloud Tasksに関する資料には、一般的なユースケースとして、ユーザエクスペリエンスのスピードアップ、インシデント時の耐久性向上、トラフィック急増時の緩和などが挙げられている。

  • データベース更新など時間を要する可能性のあるタスクをワーカに委託することによる、ユーザ応答時間の短縮
  • 予期しない運用インシデント発生時のリクエストの保存
  • 非ユーザ対応タスクをメインのユーザフローから削除することによる、トラフィックスパイクの円滑化支援

Cloud Tasksはマネージドサービスであり、プロビジョニングやリソース管理は自身で行うため、開発者はタスクの開発や操作に専念することができる。さらに課金は、実際の実行時間のみに基づいて行われる。JavaやNode.js、PHP、Goといった一般的な言語用に、Googleからクライアントライブラリが提供される他、REST APIを通じてタスクをエンキューすることも可能なので、任意のアプリケーションからタスクを追加することができる。

出典: https://cloud.google.com/blog/products/application-development/announcing-cloud-tasks-a-task-queue-service-for-app-engine-flex-and-second-generation-runtimes

Cloud Tasksを利用するには、いくつかの手順を実行する必要がある。まず最初に、タスクキューを生成する。キューが作成されれば、タスクを公開するアプリケーションがタスクをキューにプッシュすると、メッセージが格納されてOKが返される。その後、Cloud Tasksサービスがそのタスクをバックグラウンドワーカアプリケーションに送信し、それが実行される。タスク処理が終了すると、ワーカは、200~299のHTTPステータスコードとしてOKをキューに返送し、タスクが削除される。また、ワーカが所定の時間内に処理を終了しない場合には、Cloud Tasksが自動的にタスクを再送信し、再試行と最低1回のデリバリを実行する。

 
 

この記事を評価

採用ステージ
スタイル
 
 

この記事に星をつける

おすすめ度
スタイル

BT