Lewati ke konten utama
Versi: 1.0

Langkah 6 β€” Deploy ke Production

Prinsip pembagian peran di production: agent menyiapkan segalanya, manusia menekan tombol untuk yang berisiko. Seiring kepercayaan (dan guardrail) tumbuh, kategori "berisiko" menyempit β€” tapi tidak pernah kosong.

Otomatiskan deploy dari merge

Merge ke main = deploy. Tanpa langkah manual, tanpa "deploy day". Karena setiap PR sudah melewati tiga lapis review (Langkah 5), merge adalah keputusan rilis.

.github/workflows/deploy.yml
name: deploy
on:
push:
branches: [main]
concurrency: production # tidak pernah dua deploy berbarengan
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm ci && npm run build
- run: <PERINTAH_DEPLOY_PLATFORMMU>
# contoh: flyctl deploy --remote-only
# vercel deploy --prod --token=$VERCEL_TOKEN
# ssh deploy@server 'cd app && ./release.sh'

Pilih platform yang punya rollback bawaan (Fly.io, Vercel, Railway, Cloud Run, Coolify) β€” jangan rakit sendiri kalau tidak harus.

:::warning Kredensial deploy milik CI, bukan milik agent Secret deploy (token cloud, SSH key production) hidup di CI secrets. Agent di laptopmu/VPS tidak pernah memegangnya β€” jalur agent ke production hanya satu: lewat PR yang di-merge. Ini satu-satunya pemisahan yang membuat seluruh pola ini aman. :::

Checkpoint: merge PR sepele (mis. copy) β†’ production ter-update otomatis dalam hitungan menit, tanpa satu perintah manual pun.

Pastikan rollback satu perintah β€” dan latih

Sebelum mempercepat laju rilis, pastikan mundurnya lebih cepat lagi:

# contoh per platform
flyctl releases rollback # Fly.io
vercel rollback # Vercel
gcloud run services update-traffic <SVC> --to-revisions=<REV>=100 # Cloud Run

Latih sekali sungguhan (deploy perubahan kecil β†’ rollback β†’ verifikasi). Catat perintahnya di AGENTS.md dan di pesan tersemat (pinned) chat Telegram-mu β€” saat insiden, kamu tidak mau mencari dokumentasi.

Checkpoint: kamu (atau agent, atas perintahmu dari Telegram) bisa rollback production dalam waktu di bawah 2 menit, terukur.

Pisahkan rilis dari exposure dengan feature flags

Kode baru boleh sampai production dalam keadaan mati, lalu dinyalakan bertahap. Untuk operasi solo tidak perlu platform mahal β€” env var atau tabel config sudah cukup:

// pola minimal yang cukup untuk 90% kasus
export const flags = {
exportCsv: process.env.FLAG_EXPORT_CSV === '1',
};

Aturan untuk agent (masukkan ke AGENTS.md): fitur baru yang menyentuh alur penting dirilis di belakang flag, default mati. Menyalakan flag = keputusan manusia via Telegram, bukan bagian dari task agent.

Checkpoint: minimal satu fitur nyata dirilis mati β†’ dinyalakan dari chat β†’ (opsional) dimatikan lagi, tanpa deploy ulang.

Disiplin migrasi database

Migrasi adalah perubahan paling tidak-reversible di sistemmu. Aturan kerasnya:

  1. Selalu backward-compatible per langkah β€” pola expand β†’ migrate β†’ contract: tambah kolom baru (deploy N), tulis-ganda dan backfill (N), baru hapus kolom lama (N+1, setelah yakin).
  2. Migrasi destruktif (DROP, pengubahan tipe, DELETE massal) tidak pernah auto-deploy β€” agent boleh menyiapkan file migrasinya, kamu yang menjalankan setelah membaca dan mem-backup:
pg_dump "$DATABASE_URL" | gzip > backup-$(date +%F-%H%M).sql.gz
npm run migrate:up
  1. Backup otomatis harian + sekali pernah dicoba restore. Backup yang belum pernah di-restore adalah harapan, bukan backup.

Checkpoint: aturan 1–2 tertulis di AGENTS.md; ada backup otomatis; kamu pernah me-restore backup ke database kosong dan aplikasinya jalan.

Definisikan gerbang manusia secara eksplisit

Tulis daftar pendek "yang selalu lewat manusia" β€” sisanya bebas mengalir otomatis. Contoh awal yang sehat:

AGENTS.md (tambahan)
## Gerbang manusia (agent menyiapkan, manusia mengeksekusi)
- Migrasi DB destruktif
- Menyalakan feature flag di production
- Perubahan pada auth, billing, atau penghapusan data user
- Deploy saat sedang ada insiden aktif

Daftar ini hidup: tiap retro mingguan (Langkah 5), pindahkan item yang sudah terbukti aman ke jalur otomatis, tambahkan kategori baru kalau ada insiden.

Checkpoint: daftar gerbang manusia ada di AGENTS.md dan kamu bisa menyebutkan alasannya untuk tiap item.

Selanjutnya: Langkah 7 β€” Monitoring & On-call via Chat