Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pub/Sub vs Cloud Tasks - その違い、わかりますか?-
Search
Tomonori Hayashi / ぴーはや
July 21, 2025
Technology
510
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pub/Sub vs Cloud Tasks - その違い、わかりますか?-
Tomonori Hayashi / ぴーはや
July 21, 2025
More Decks by Tomonori Hayashi / ぴーはや
See All by Tomonori Hayashi / ぴーはや
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
660
ビジネス要望の翻訳が生む アーキテクチャの複雑性とトレードオフ
phaya72
2
570
設計に疎いエンジニアでも始めやすいアーキテクチャドキュメント
phaya72
34
22k
OpenTelemetry が拡げる Gemini CLI の可観測性
phaya72
3
3.6k
OpenTelemetry SpanProcessor を Let's カスタマイズ!
phaya72
3
410
非同期処理でも分散トレーシングしたい!- OpenTelemetry × Pub/Sub -
phaya72
2
940
エラーバジェット枯渇の原因 - 偽陽性との戦い -
phaya72
2
220
Vertex AI Experimentsの実態 - コードを辿った先にあったもの -
phaya72
3
1.4k
オブザーバビリティと開発優先度との向き合い方
phaya72
5
1k
Other Decks in Technology
See All in Technology
知らん間に、回ってる
ming_ayami
0
500
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
160
Claude Code 珍プレー好プレー
shinyasaita
0
320
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
3.4k
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
1
110
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
290
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
2.3k
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
310
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
110k
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
840
DMM.com 購入改善推進チーム におけるCodeRabbitを用いた レビューフロー改善の一例
ysknsid25
2
620
Keeping applications secure by evolving OAuth 2.0 and OpenID Connect
ahus1
PRO
1
160
Featured
See All Featured
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
290
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
410
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
Being A Developer After 40
akosma
91
590k
Writing Fast Ruby
sferik
630
63k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
KATA
mclloyd
PRO
35
15k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.9k
Transcript
Pub/Sub vs Cloud Tasks その違い、わかりますか? 月末 Tech Lunch #3 -
Tomonori Hayashi 1
Tomonori Hayashi / ぴーはや • NTT ドコモビジネス ◦ ソフトウェアエンジニア ▪
Front:TypeScript - React/Next.js ▪ Infra:Google Cloud • Google Cloud Partner Top Engineer 2024 - 2025 • Google Cloud Tech Blog Challenge 2024 個人カテゴリ受賞 • Google Cloud All Certifications • コミュニティ ◦ Jagu’e’r (Google Cloud 公式ユーザーコミュニティ) ▪ エバンジェリスト ▪ オブザーバビリティ分科会 運営 ▪ 月末 Tech Lunch • カンファレンススタッフ ◦ Observability Conference Tokyo 2025 ◦ SRE kaigi 2026 2 @pHaya72 @t_hayashi
本日お話しすること • Google Cloud における非同期処理の主要サービス、 Pub/Sub と Cloud Tasksに フォーカスします
• これらの中核にある『呼び出しモデル』という観点から、両者の性質の違いに説 明します 本日お話しないこと • 両サービスの詳細な機能比較はしません
4 似て非なるもの 共通点が多くどういった差分があるか見落とされがち 非同期タスクの実行、リクエスト元のプロセスからの処理の切り離し(オフロード)、バッファリングによる急なトラフィックスパイクの吸収、と いった共通する特性を持ち合わせる Pub/Sub Cloud Tasks
5 簡単に Cloud Tasks について 非同期タスクキューやジョブスケジューラのように振る舞う • Cloud Tasks 内にキュー
というリソースを作成して、クライアントから タスク を依頼してワーカーに処理させる仲介役
6 似て非なるもの 共通点が多くどういった差分があるか見落とされがち 非同期タスクの実行、リクエスト元のプロセスからの処理の切り離し(オフロード)、バッファリングによる急なトラフィックスパイクの吸収、と いった共通する特性を持ち合わせる Pub/Sub Cloud Tasks 両者の選択を誤るとシステムの結合度が意図せず高まったり、逆に不要な複雑性を生み出す
7 設計思想の違い:呼び出しモデル 共通点が多くどういった差分があるか見落とされがち 非同期タスクの実行、リクエスト元のプロセスからの処理の切り離し(オフロード)、バッファリングによる急なトラフィックスパイクの吸収、と いった共通する特性を持ち合わせる Pub/Sub Cloud Tasks 両者の選択を誤るとシステムの結合度が意図せず高まったり、逆に不要な複雑性を生み出す Explicit
Invocation Implicit Invocation 参考:https://cloud.google.com/tasks/docs/comp-pub-sub?hl=ja
8 Pub/Sub :Implicit Invocation 暗黙的な呼び出し 概念 Publisher は Topic にイベントを発行するだけ
そのイベントをどの Subscriber がどう処理するかは関与しない 責務 Publisher はイベントの発生を通知するだけ 処理の責務は Subscriber にある キーワード イベント通知パターン , パブリッシュ /サブスクライブ
9 Pub/Sub :Implicit Invocation 暗黙的な呼び出し 概念 Publisher は Topic にイベントを発行するだけ
そのイベントをどの Subscriber がどう処理するかは関与しない 責務 Publisher はイベントの発生を通知するだけ 処理の責務は Subscriber にある キーワード イベント通知パターン , パブリッシュ /サブスクライブ 伝えるメッセージ = 「イベント(出来事)」 事実の発生を知らせる通知であることから関心ごとは「事実の通知」
10 Pub/Sub :Implicit Invocation 暗黙的な呼び出し 概念 Publisher は Topic にイベントを発行するだけ
そのイベントをどの Subscriber がどう処理するかは関与しない 責務 Publisher はイベントの発生を通知するだけ 処理の責務は Subscriber にある キーワード イベント通知パターン , パブリッシュ /サブスクライブ 通信トポロジー One-to-Many の関係性、イベントの広範な伝播 とサービスの疎結合化 が目的
11 Cloud Tasks :Explicit Invocation 明示的な呼び出し キーワード コマンドパターン、ポイントツーポイント・メッセージング 概念 Client
が Worker の HTTP エンドポイントを直接指定して タスクをキューイングする 責務 Client が「誰に」「何を」させるかを完全に制御する
12 Cloud Tasks :Explicit Invocation 明示的な呼び出し キーワード コマンドパターン、ポイントツーポイント・メッセージング 概念 Client
が Worker の HTTP エンドポイントを直接指定して タスクをキューイングする 責務 Client が「誰に」「何を」させるかを完全に制御する 伝えるメッセージ = 「コマンド(命令)」 実行を強制する依頼であることから関心ごとは「処理の実行そのもの」
13 Cloud Tasks :Explicit Invocation 明示的な呼び出し キーワード コマンドパターン、ポイントツーポイント・メッセージング 概念 Client
が Worker の HTTP エンドポイントを直接指定して タスクをキューイングする 責務 Client が「誰に」「何を」させるかを完全に制御する 通信トポロジー One-to-One の関係性、特定のワーカーへの確実な処理依頼 が目的
14 Cloud Tasks を少し詳しく Client が「誰に」「何を」させるかを完全に制御する アーキテクチャ上の位置付け • 非同期タスクキュー •
ジョブスケジューラ 技術的なポイント • 実行ターゲット - 任意のワーカーを明示的に指定 • 実行制御 - 未来時刻での実行を指定可能 - タスク実行のタイムアウトを指定 - QPS や最大並列実行数で Worker への負荷を制御 ユースケース • Webhook の非同期実行 • 外部 API のレートリミットを考慮したリトライ制御 • バッチ処理のトリガーと実行管理
15 Cloud Tasks を少し詳しく Client が「誰に」「何を」させるかを完全に制御する アーキテクチャ上の位置付け • 非同期タスクキュー •
ジョブスケジューラ 技術的なポイント • 実行ターゲット - 任意のワーカーを明示的に指定 • 実行制御 - 未来時刻での実行を指定可能 - タスク実行のタイムアウトを指定 - QPS や最大並列実行数で Worker への負荷を制御 ユースケース • Webhook の非同期実行 • 外部 API のレートリミットを考慮したリトライ制御 • バッチ処理のトリガーと実行管理
16 Cloud Tasks を少し詳しく Client が「誰に」「何を」させるかを完全に制御する アーキテクチャ上の位置付け • 非同期タスクキュー •
ジョブスケジューラ 技術的なポイント • 実行ターゲット - 任意のワーカーを明示的に指定 • 実行制御 - 未来時刻での実行を指定可能 - タスク実行のタイムアウトを指定 - QPS や最大並列実行数で Worker への負荷を制御 ユースケース • Webhook の非同期実行 • 外部 API のレートリミットを考慮したリトライ制御 • バッチ処理のトリガーと実行管理 信頼性の高い非同期処理を実現する
Pub/Sub と Cloud Tasks を呼び出しモデルの違いから説明 • Pub/Sub:発生したイベントを関係する各所に伝搬させたい ◦ 呼び出しモデル:Implicit Invocation
◦ どんなイベントが起きるのか?それに誰が関心を持つのか? → Publisher と Subscriber を分離したい • Cloud Tasks:特定の処理を、制御しつつ非同期に実行したい ◦ 呼び出しモデル:Explicit Invocation ◦ どのワーカーに?実行レートは?リトライ戦略は? → Client の Worker に対する実行依頼を信頼性高く実現したい 設計思想の違いをしっかり理解して技術選択していきましょう! まとめと学び
CREDITS: This presentation template was created by Slidesgo, and includes
icons by Flaticon, and infographics & images by Freepik Thanks! 18 @pHaya72 @t_hayashi