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
Event-driven orchestration with Eventarc and Wo...
Search
Mete Atamel
November 03, 2021
Programming
440
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Event-driven orchestration with Eventarc and Workflows
Mete Atamel
November 03, 2021
More Decks by Mete Atamel
See All by Mete Atamel
Agent-User Interaction Protocol (AG-UI)
meteatamel
0
120
Agent to UI Protocol (A2UI)
meteatamel
1
97
Tour of Agent Protocols: MCP, A2A, AG-UI, A2UI with ADK
meteatamel
2
420
Getting started with Google Antigravity
meteatamel
5
980
Gemini for developers
meteatamel
0
200
Model Context Protocol
meteatamel
1
220
Agent2Agent (A2A) Protocol
meteatamel
2
270
Beyond_the_Prompt__Evaluating__Testing__and_Securing_LLM_Applications.pdf
meteatamel
1
550
Gemini_2.0_for_developers.pdf
meteatamel
0
170
Other Decks in Programming
See All in Programming
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
380
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
230
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
150
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
240
Contextとはなにか
chiroruxx
1
390
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
240
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.6k
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
650
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
2
910
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
0
180
Featured
See All Featured
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.1k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Everyday Curiosity
cassininazir
0
250
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
250
Abbi's Birthday
coloredviolet
3
8.5k
How to Ace a Technical Interview
jacobian
281
24k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.4k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Transcript
Event-driven orchestration with Eventarc and Workflows Mete Atamel Developer Advocate
at Google @meteatamel atamel.dev speakerdeck.com/meteatamel
github.com/priyankavergadia/GCPSketchnote
Event-driven orchestration Orchestrated services communicating via events Orchestrated Services Message
Broker Orchestrated Services Orchestrated Services
Google Cloud GA Your own apps GA Cloud Run GA
Cloud Functions Preview Workflows Preview Targets Sources Cloud Run for Anthos on GKE Preview Eventarc Triggers to filter events CloudEvents format
New message in a Pub/Sub topic → Cloud Run gcloud
eventarc triggers create trigger-pubsub \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION \ --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" --transport-topic=projects/$PROJECT_ID/topics/$TOPIC_ID Pub/Sub Trigger
New Compute Engine VM creation → Cloud Run gcloud eventarc
triggers create trigger-auditlog \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION --event-filters="type=google.cloud.audit.log.v1.written" \ --event-filters="serviceName=compute.googleapis.com" \ --event-filters="methodName=beta.compute.instances.insert" \ --service-account=$PROJECT_NO-compute@developer.gserviceaccount.com Audit Log Trigger
Create a trigger for new object creation in Cloud Storage
→ Cloud Run gcloud eventarc triggers create trigger-gcs \ --destination-run-service=$SERVICE_NAME \ --destination-run-region=$REGION --event-filters="type=google.cloud.storage.object.v1.finalized" \ --event-filters="bucket=$BUCKET_NAME" \ --service-account=$PROJECT_NO-compute@developer.gserviceaccount.com Cloud Storage Trigger
Serverless Compute External API’s Google API’s etc... Workflows - orchestrate
& integrate SaaS API’s Private API’s Other Clouds Workflows
- processPayment: call: http.post args: url: https://payment-processor.run.app/... body: input: ${paymentDetails}
result: processResult - shipItems: call: http.post args: url: https://.../cloudfunctions.net/ship body: input: ${processResult.body} result: shipResult - notifyUser: call: http.post ... Payment Processor Cloud Run Authorize & charge CC Notifier Cloud Run Notify user Shipper Cloud Functions Prepare & ship items YAML or JSON syntax
Deploy, execute, manage workflows # Deploy a workflow gcloud workflows
deploy my-workflow --source=workflow.yaml # Execute a workflow gcloud workflows execute my-workflow # See the result gcloud workflows executions describe <your-execution-id> --workflow my-workflow
None
Image processing pipeline v1 - Eventarc (AuditLog-Cloud Storage) + Cloud
Run End Users Images Input Cloud Storage Images Output Cloud Storage Filter Cloud Run Resizer Cloud Run Labeler Cloud Run Watermarker Cloud Run File uploaded Cloud Pub/Sub File resized Cloud Pub/Sub AuditLog Trigger Eventarc Pub/Sub Trigger Eventarc Pub/Sub Trigger Eventarc
Image processing pipeline v2 - Eventarc (Cloud Storage) + Cloud
Run +Workflows End Users Images Input Cloud Storage Images Output Cloud Storage Filter Cloud Run Cloud Storage Trigger Eventarc Image Processing Workflows Watermarker Cloud Functions Resizer Cloud Functions Labeler Cloud Functions
Image processing pipeline v3 - Eventarc (Cloud Storage) + Workflows
End Users Images Input Cloud Storage Images Output Cloud Storage Cloud Storage Trigger Eventarc Image Processing Workflows Watermarker Cloud Functions Resizer Cloud Functions Labeler Cloud Functions Filter Cloud Functions
@meteatamel atamel.dev speakerdeck.com/meteatamel github.com/GoogleCloudPlatform/eventarc-samples Thank you!