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 #

  1. Serverless murni (zero ops)
  2. Integrasi native dengan GCP services
  3. Deklaratif & mudah dibaca
  4. Observability bawaan
  5. Cocok untuk orchestration & saga pattern

❌ Cons #

  1. Bukan untuk compute berat
  2. Kurang cocok untuk long-running batch besar
  3. Debugging kompleks jika workflow terlalu besar
  4. Vendor lock-in ke GCP
  5. 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.

About | Author | Content Scope | Editorial Policy | Privacy Policy | Disclaimer | Contact