Adopsi ArgoCD di skala perusahaan: struktur organisasi dengan platform team, strategi repository monorepo vs polyrepo, manajemen environment, change management dengan approval workflow, serta dokumentasi runbook dan troubleshooting.

Di episode 31 sebelumnya kita membawa pola GitOps ke tiga cloud dan kombinasi multi-cloud. Namun jika kalian perhatikan, semua episode sejauh ini membahas teknologi. Di dunia nyata, kegagalan adopsi GitOps hampir tidak pernah disebabkan oleh teknologi — melainkan oleh struktur tim, strategi repo, proses approval, dan dokumentasi yang tidak ikut berubah. GitOps yang hebat di atas kertas bisa mati di tengah jalan karena platform team menjadi bottleneck atau karena tidak ada runbook saat insiden.
Episode ini adalah bagian organisasi dan proses. Kita membahas pola enterprise: bagaimana platform team bekerja, bagaimana repo disusun, bagaimana environment dikelola, bagaimana perubahan disetujui, dan bagaimana dokumentasi dirawat.
Model yang paling berhasil memiliki dua peran yang jelas:
| Peran | Tanggung Jawab | Bukan Tanggung Jawab |
|---|---|---|
| Platform team | ArgoCD, project, cluster, template, policy, observability | Men-deploy aplikasi setiap tim |
| Application team | Manifest, values, image, rollout, kesehatan aplikasi | Mengelola platform, mengubah project |
Tujuan platform team adalah menghilangkan dirinya dari jalur kritis untuk perubahan rutin. Tim aplikasi men-deploy sendiri lewat self-service (episode 28); platform team hanya turun tangan untuk perubahan platform, insiden, dan governance. Jika tim aplikasi harus menunggu platform team untuk deploy, GitOps belum berhasil.
Tiga model governance yang umum:
CoE adalah tim kecil (2-4 orang) yang bukan pemilik platform penuh, melainkan penjaga standar: menyusun template, golden path, pola yang disepakati, dan menjawab pertanyaan tim lain. CoE mencegah fragmentasi — lima tim membuat lima pola ArgoCD yang berbeda. Dokumentasi CoE juga menjadi jalur karier: anggotanya silih berganti sehingga pengetahuan menyebar.
| Aspek | Monorepo | Polyrepo |
|---|---|---|
| Satu sumber kebenaran | Mudah, semua manifest satu tempat | Tersebar, perlu koordinasi antar repo |
| Perubahan atomik | PR tunggal lintas aplikasi | Beberapa PR, urutan commit penting |
| Akses | Semua orang melihat semua | Bisa dikunci per repo (per tim) |
| Skala ArgoCD | Satu repo besar, klon lebih berat | Banyak repo kecil, klon ringan |
Praktik umum: monorepo manifest per environment (satu repo berisi dev/, staging/, prod/) adalah titik awal yang paling sederhana. Berpindah ke polyrepo ketika ukuran repo membuat klon lambat atau kebutuhan isolasi akses semakin kuat.
Repo shared berisi nilai yang dipakai semua tim: versi image base, storage class, sertifikat. Di-refer lewat Kustomize base atau nilai Helm. Perubahan di sini berpengaruh ke semua orang — jadi repo ini yang paling ketat review-nya.
Template repo (episode 28) adalah golden path: struktur aplikasi yang sudah sesuai standar platform. Tim aplikasi memulai dari template ini, bukan dari nol. Template dikelola CoE dan menjadi mekanisme penyebaran best practice secara otomatis.
release-1.2.3 berarti sekumpulan manifest yang konsisten.Environment dev, staging, dan prod harus sedekat mungkin — bedanya hanya nilai (ukuran, traffic, quota), bukan perilaku. Parity membuat pengujian di staging benar-benar bermakna. GitOps membantu: manifest yang sama dipromosikan ke atas, bukan ditulis ulang per environment.
Pisahkan manifest dan konfigurasi: manifest identik lintas environment, konfigurasi (nilai) berbeda per environment. Di Helm: satu values.yaml per environment; di Kustomize: satu overlay per environment (episode 8).
Promotion = memindahkan manifest dari satu environment ke environment berikutnya, biasanya lewat:
git tag -a release-1.2.3 -m "promote api 1.2.3"
git push origin release-1.2.3
argocd app set api-staging --revision release-1.2.3Setelah staging terbukti sehat (health + smoke test di episode 13), hal yang sama dilakukan untuk prod. Catat: yang dipromosikan adalah manifest, bukan hasil deploy — deployment di cluster adalah turunan, bukan artefak yang dipindah tangan.
Override per environment dijaga tetap sedikit dan eksplisit: replicaCount, resources, ingress host, storageClass. Setiap override adalah tempat potensi drift — semakin sedikit, semakin aman.
Git adalah mekanisme approval terbaik: PR + review = approval workflow. Semakin tinggi environment, semakin ketat jumlah reviewer:
branch-protection:
- branch: prod
required_pull_request_reviews:
required_approving_review_count: 2
required_status_checks:
- argocd-healthUntuk perubahan besar, pertahankan CAB (Change Advisory Board) — tetapi batasi cakupannya pada perubahan berisiko tinggi (migrasi platform, perubahan infra), bukan setiap bump image. Emergency procedure untuk insiden produksi harus lebih cepat dari proses normal: mekanisme hotfix dengan akses khusus, misalnya token sementara yang valid selama 60 menit, atau override sync window (episode 14). Proses darurat yang lambat justru mendorong orang memotong jalur — yang lebih berbahaya.
Karena Git adalah kebenaran, rollback = argocd app rollback api <revision> atau revert commit. Kebijakannya harus ditulis, bukan tersirat: kapan rollback dilakukan (misalnya error rate > 5 persen selama 5 menit), siapa yang boleh, dan bagaimana reporting-nya. Rollback bukan penyelesaian masalah — ia mengembalikan ke kondisi terakhir yang diketahui baik, lalu insiden didokumentasikan.
Warning
Proses yang dibuat untuk keselamatan bisa menjadi musuh pemulihan. Jika approval untuk hotfix memakan waktu 45 menit saat produksi down, tim akan mencari jalan pintas yang tidak terdokumentasi. Rancang jalur darurat yang resmi, cepat, dan diaudit — bukan sekadar mengetatkan semua jalur.
Dokumentasi adalah infrastruktur yang jarang di-deploy tetapi selalu dipakai saat panik. Empat dokumen yang wajib ada:
as-code (misalnya Mermaid di repo) lebih mudah dirawat daripada gambar statis.Simpan semua di repo (misalnya di bawah docs/) sehingga dokumentasi ikut versi bersama kode dan bisa di-review lewat PR.
Episode ini menyusun sisi organisasi: struktur platform team dengan otonomi tim aplikasi, model governance dari centralized hingga autonomous, strategi repo monorepo vs polyrepo dengan shared config dan template repo, manajemen environment dengan parity dan promotion pipeline, change management dengan approval, CAB, dan jalur darurat, serta dokumentasi runbook, diagram, onboarding, dan troubleshooting.
Poin yang harus kalian bawa:
Organisasi sudah siap. Sekarang mari kita bicara tentang hal yang selalu ditanyakan manajemen. Di episode 33 selanjutnya kita membahas cost optimization — right-sizing resource, optimasi cluster dengan spot instance dan autoscaling, efisiensi GitOps, serta monitoring biaya dengan cost allocation dan deteksi anomali. Sampai jumpa di episode 33!