Di episode ini kalian mempelajari cara mengadopsi FluxCD di skala enterprise: platform engineering, struktur tim platform dan aplikasi, strategi repositori, manajemen perubahan dengan pull request, serta onboarding tim lewat dokumentasi dan self-service.

Di episode 30 kalian sudah menerapkan FluxCD di cloud provider yang berbeda. Teknisnya sudah kuat, tetapi mengadopsi FluxCD di organisasi besar bukan persoalan perintah — melainkan persoalan manusia, proses, dan struktur. Di episode 31 ini kalian belajar pola adopsi enterprise: bagaimana membangun platform engineering, membagi tanggung jawab antara tim platform dan tim aplikasi, memilih strategi repositori, mengelola perubahan, dan membawa pengembang baru ke dalam alur GitOps.
Tujuan akhirnya sederhana: GitOps harus menjadi jalur jalan raya, bukan jalan tol yang hanya bisa dipakai segelintir orang.
Di banyak enterprise, FluxCD adalah komponen dari Internal Developer Platform (IDP) — satu lapisan yang menyembunyikan kompleksitas Kubernetes di balik antarmuka yang ramah pengembang. IDP menyatukan FluxCD, manajemen secret, ingress, observability, dan template aplikasi ke dalam satu pengalaman self-service.
Pola paling umum: pengembang tidak pernah memegang kubectl atau folder di repositori fleet secara langsung. Sebagai gantinya mereka mengajukan perubahan melalui mekanisme yang lebih tinggi — sebuah PR, sebuah form, atau sebuah scaffolding tool. Platform menerima permintaan, memvalidasi, lalu meng-generate kandidat konfigurasi.
Golden path adalah jalur yang sudah teruji dan didukung penuh oleh platform. Untuk FluxCD, golden path berarti template repositori aplikasi yang sudah berisi:
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: myapp
namespace: apps
spec:
interval: 5m
path: ./apps/myapp
prune: true
sourceRef:
kind: GitRepository
name: myapp
postBuild:
substitute:
image: ghcr.io/devvnull/myapp:1.2.0Pengembang cukup mengisi nilai pada postBuild.substitute, dan Flux yang menyelesaikan sisanya.
Note
Golden path bukan berarti "satu-satunya jalan". Ia adalah jalur yang direkomendasikan dan dijamin; jalur lain boleh ada, tetapi tanpa jaminan dukungan tim platform.
Tim platform mengelola fondasi: repositori fleet, controller Flux, kebijakan secret, upgrade cluster, dan hal-hal lintas tim. Mereka menetapkan standar — bukan mengeksekusi deployment aplikasi.
Tim aplikasi bertanggung jawab penuh atas deployment-nya sendiri. Mereka mengubah Deployment, Service, dan HorizontalPodAutoscaler aplikasi mereka melalui PR ke repositori aplikasi, sementara Flux yang berada di sisi cluster menariknya.
Layanan bersama seperti ingress controller, monitoring, dan policy engine dikelola tim platform sebagai shared services. Governance dijalankan lewat mekanisme Git yang sama: codeowners, branch protection, dan policy as code — bukan lewat lisan.
# file CODEOWNERS di repositori fleet
/clusters/prod @platform-leads
/apps/ @platform-leads @squad-web
/.github/ @platform-leadsTip
Batasan "siapa boleh mengubah apa" sebaiknya diletakkan di Git (CODEOWNERS, branch protection), karena ia tercatat, dapat diaudit, dan tidak bergantung pada ingatan siapa pun.
Keputusan berikutnya adalah di mana kode tinggal. Ada tiga pola utama:
Perbandingannya:
| Kriteria | Monorepo | Polyrepo | Hybrid |
|---|---|---|---|
| Koordinasi perubahan | Mudah | Sulit | Sedang |
| Otonomi tim | Rendah | Tinggi | Tinggi |
| Skalabilitas | Sulit di besar | Mudah | Mudah |
| Review lintas tim | Terkadang berat | Tidak ada | Terkendali |
| Cocok untuk | Tim kecil | Banyak tim independen | Enterprise |
Important
Di FluxCD, repositori aplikasi dipisah dari repositori fleet secara natural: aplikasi punya GitRepository sendiri, fleet punya Kustomization yang merujuknya. Pola hybrid ini selaras dengan arsitektur Flux.
Semua perubahan ke lingkungan berjalan lewat PR. CI memvalidasi YAML, memeriksa render kustomize build, dan menjalankan flux diff terhadap state cluster sebelum di-merge:
kustomize build ./clusters/prod > /tmp/prod.yaml
flux diff kustomization prod --path ./clusters/prodEnvironment staging cukup di-review oleh rekan satu tim. Production memerlukan approval tambahan — misalnya oleh tim platform atau Change Advisory Board (CAB) untuk perubahan besar. Untuk keadaan darurat, sediakan jalur hotfix yang cepat namun tetap tercatat: PR kecil yang langsung di-merge oleh on-call engineer, dengan aturan audit ketat sesudahnya.
Warning
Jalur darurat bukan berarti mengabaikan proses. Ia justru harus lebih terdokumentasi: siapa yang memutuskan, apa yang diubah, dan kapan review sesudahnya dilakukan.
Siapkan tiga lapis dokumentasi: panduan singkat satu halaman untuk "cara deploy aplikasi saya", referensi mendalam untuk konsep GitOps, dan runbook operasional untuk insiden. Latih pengembang dengan sesi workshop memakai environment sandbox yang aman untuk dirusak.
Semakin sedikit pertanyaan yang harus ditanyakan ke tim platform, semakin sukses adopsi. Portal self-service yang meng-generate PR, contoh konfigurasi yang bisa disalin, dan saluran dukungan yang jelas (misalnya Slack channel) menutup sisa kesenjangan.
Tip
Ukur adopsi dengan metrik sederhana: berapa lama waktu dari ide sampai deploy untuk pengembang baru, dan berapa banyak intervensi manual tim platform per minggu.
Di episode ini kalian mempelajari pola adopsi enterprise: platform engineering dengan golden path, pembagian tanggung jawab tim platform dan tim aplikasi, strategi monorepo/polyrepo/hybrid, manajemen perubahan berbasis PR, serta jalur onboarding pengembang.
Inti yang harus dibawa pulang:
Di episode 32, kita beralih ke sisi yang tak terhindarkan dalam produksi: troubleshooting & debugging — membaca log dan event Flux, menelusuri kegagalan rekonsiliasi, serta teknik debug lewat CLI. Sampai jumpa!