Workflows #
Dalam arsitektur cloud modern—terutama yang berbasis microservices dan event-driven—kebutuhan untuk mengorkestrasi banyak service menjadi satu alur bisnis (business flow) semakin penting. Kita sering dihadapkan pada skenario seperti:
- Memanggil beberapa API secara berurutan
- Menjalankan proses paralel
- Menangani retry, timeout, dan error
- Menjaga konsistensi alur tanpa harus menulis banyak kode glue
Di sinilah Google Cloud Workflows berperan. Ia menyediakan cara serverless-native untuk mendefinisikan, mengeksekusi, dan memonitor alur kerja lintas service di Google Cloud maupun external service.
Artikel ini membahas GCP Workflows secara mendetail dan terstruktur: apa itu, kenapa serverless, jenis workflow, konfigurasi, monitoring, pros & cons, hingga best practice.
Apa Itu Google Cloud Workflows? #
Google Cloud Workflows adalah layanan serverless orchestration yang memungkinkan kita mendefinisikan alur kerja (workflow) menggunakan YAML atau JSON.
Workflow ini dapat:
- Memanggil Google Cloud APIs (Cloud Functions, Cloud Run, Pub/Sub, BigQuery, dll)
- Memanggil HTTP endpoint eksternal
- Mengelola control flow: kondisi (
switch), loop (for), paralel (parallel) - Menangani error, retry, dan timeout secara deklaratif
Secara konsep, Workflows adalah:
State machine terkelola (managed state machine) yang sepenuhnya serverless.
Ia tidak menjalankan compute berat, tetapi mengoordinasikan eksekusi service lain.
Kenapa GCP Workflows Bersifat Serverless? #
Workflows sepenuhnya mengikuti prinsip serverless computing:
Tidak Perlu Infrastruktur #
- Tidak ada VM, container, atau cluster
- Tidak perlu scaling rules
- Tidak perlu patching atau maintenance
Auto Scaling #
- Workflow akan scale otomatis berdasarkan jumlah eksekusi
- Tidak ada limit concurrency manual seperti di VM-based orchestrator
Pay-as-you-go #
- Biaya dihitung berdasarkan jumlah langkah (steps) yang dieksekusi
- Tidak ada biaya idle
High Availability by Default #
- Dijalankan di infrastruktur Google
- Fault-tolerant dan highly available tanpa konfigurasi tambahan
Inilah yang membuat Workflows sangat cocok sebagai control plane, bukan data plane.
Posisi GCP Workflows dalam Arsitektur #
Workflows biasanya berada di lapisan orkestrasi, bukan eksekusi bisnis utama.
Contoh perannya:
- Mengatur urutan pemanggilan Cloud Run services
- Mengorkestrasi pipeline ETL ringan
- Mengelola proses approval / saga pattern
- Glue antar microservices
Rule of thumb: Logika bisnis berat → Cloud Run / Cloud Functions Alur & koordinasi → Workflows
Jenis-Jenis Workflow di GCP #
Sequential Workflow #
Langkah dieksekusi satu per satu secara berurutan.
Contoh use case:
- Validasi → proses → notifikasi
Karakteristik:
- Sederhana
- Mudah di-debug
- Cocok untuk flow deterministik
Conditional Workflow (Branching) #
Menggunakan switch untuk menentukan jalur eksekusi.
Use case:
- If-else logic
- Business rule sederhana
Contoh:
- Jika status = SUCCESS → lanjut
- Jika FAILED → rollback
Looping Workflow #
Menggunakan for atau loop berbasis kondisi.
Use case:
- Proses batch ringan
- Iterasi daftar resource
Catatan penting:
- Hindari loop dengan jumlah besar (bukan untuk heavy batch processing)
Parallel Workflow #
Menjalankan beberapa step secara paralel.
Use case:
- Fan-out API calls
- Eksekusi task independen
Keunggulan:
- Lebih cepat
- Efisien untuk IO-bound process
Event-Driven Workflow #
Workflow dipicu oleh event, misalnya:
- Pub/Sub
- Eventarc
- HTTP trigger
Use case:
- Reaksi terhadap event sistem
- Orkestrasi berbasis event
Konfigurasi yang Bisa Diset #
Workflow Definition (YAML / JSON) #
Berisi:
- Step definition
- Control flow
- Variable
- Error handling
YAML lebih umum karena lebih readable.
Service Account & IAM #
Workflow dijalankan menggunakan service account.
Hal yang perlu dikonfigurasi:
- Permission ke Cloud Run
- Permission ke Pub/Sub
- Permission ke API lain
Best practice:
- Gunakan least privilege
- Satu workflow ≠ satu service account jika perlu isolasi
Retry & Timeout #
Workflows mendukung:
- Retry policy
- Backoff
- Timeout per step
Ini penting untuk:
- API eksternal yang tidak stabil
- Transient error
Environment Variables & Input #
Workflow bisa menerima:
- Input parameter saat eksekusi
- Data dari trigger
Digunakan untuk:
- Konfigurasi dinamis
- Reusable workflow
Execution Region #
Workflow dijalankan di region tertentu.
Pertimbangan:
- Latency ke service lain
- Compliance & data residency
Apa Saja yang Bisa Dimonitor? #
Execution Status #
Setiap workflow execution memiliki status:
- SUCCEEDED
- FAILED
- CANCELLED
Lengkap dengan:
- Start time
- End time
- Error detail
Step-Level Logs #
- Log tiap step
- Input & output data
- Error stack
Terintegrasi dengan Cloud Logging.
Metrics #
Melalui Cloud Monitoring:
- Jumlah execution
- Durasi workflow
- Error rate
Bisa dibuat:
- Dashboard
- Alerting
Audit Log #
- Siapa yang menjalankan workflow
- Siapa yang mengubah definisi
Penting untuk:
- Security
- Compliance
Pros & Cons #
✅ Pros #
- Serverless murni (zero ops)
- Integrasi native dengan GCP services
- Deklaratif & mudah dibaca
- Observability bawaan
- Cocok untuk orchestration & saga pattern
❌ Cons #
- Bukan untuk compute berat
- Kurang cocok untuk long-running batch besar
- Debugging kompleks jika workflow terlalu besar
- Vendor lock-in ke GCP
- Struktur YAML bisa menjadi sulit dirawat jika tidak modular
Kapan Sangat Tepat Digunakan? #
Gunakan GCP Workflows jika:
- Anda membangun arsitektur serverless di GCP
- Banyak service perlu dikoordinasikan
- Butuh visibility alur bisnis
- Ingin mengurangi glue code
Hindari jika:
- Proses CPU-intensive
- Streaming data besar
- Workflow sangat dinamis dan kompleks secara algoritmik
Best Practice #
Keep Workflow Thin #
- Jangan taruh logika bisnis kompleks
- Fokus ke orchestration
Gunakan Cloud Run untuk Business Logic #
- Workflow → koordinasi
- Cloud Run → eksekusi
Modularisasi Workflow #
- Pecah workflow besar menjadi beberapa workflow kecil
- Gunakan workflow-to-workflow call
Batasi Parallelism & Loop #
- Hindari fan-out berlebihan
- Perhatikan limit API downstream
Logging & Error Handling yang Jelas #
- Selalu handle error
- Tambahkan context di log
Gunakan IaC (Terraform) #
- Versioning workflow
- Reproducible deployment
Penutup #
Google Cloud Workflows adalah fondasi orkestrasi serverless di ekosistem GCP. Ia bukan pengganti Cloud Run atau Cloud Functions, melainkan pelengkap yang membuat arsitektur lebih rapi, terobservasi, dan terkelola.
Jika digunakan dengan tepat—tipis, modular, dan fokus pada koordinasi—Workflows dapat secara signifikan meningkatkan maintainability, reliability, dan clarity dari sistem cloud modern.