Deployment, Domain, DNS, dan Maintenance
Bawa aplikasi dari local ke preview dan production, hubungkan domain dengan aman, lalu rawat aplikasi setelah online.
Daftar isi
Deployment memindahkan versi aplikasi yang sudah diverifikasi ke environment online. Domain memberi alamat yang mudah diingat. DNS menghubungkan nama tersebut ke layanan. HTTPS melindungi koneksi. Setelah launch, aplikasi tetap membutuhkan monitoring, update, backup, dan recovery.
1. Bedakan Local, Preview, dan Production
Local berjalan di komputer developer. Preview adalah deployment untuk review branch atau pull request. Staging meniru production untuk pengujian terkontrol bila project membutuhkannya. Production adalah environment yang digunakan user nyata.
Pisahkan database, credential, domain, dan variable antar environment. Preview tidak boleh diam-diam membaca atau mengubah data production. Label environment pada dashboard provider agar operator tidak salah target.
2. Selesaikan Pre-Deployment Gate
Sebelum deploy, pastikan:
- requirement dan acceptance criteria selesai;
- diff telah direview;
- lint, typecheck, test, dan production build lulus;
- environment variable terdokumentasi tanpa secret;
- migration memiliki urutan dan rollback plan;
- error, loading, empty, unauthorized, dan mobile state diperiksa;
- tidak ada debug endpoint atau test credential;
- repository sudah di-push ke remote yang benar.
Deployment bukan pengganti quality check. Build yang berhasil belum membuktikan auth, data isolation, payment, email, atau user journey bekerja.
3. Hubungkan Repository ke Vercel
Buat account Vercel, hubungkan Git provider, lalu import repository. Periksa framework preset, root directory, install command, build command, output setting, dan versi runtime. Ikuti konfigurasi repository, bukan tebakan dari tutorial generik.
Tambahkan environment variable melalui project settings. Bedakan nilai Development, Preview, dan Production. Jangan memasukkan secret ke vercel.json, README public, atau source code.
4. Kelola Production Database dan Migration
Production menggunakan database managed atau infrastructure yang ditetapkan Technical Foundation. Buat database terpisah dari local dan preview. Terapkan prinsip minimum privilege pada credential aplikasi.
Jalankan migration melalui proses yang dapat diaudit. Untuk migration berisiko, siapkan backup, restore verification, maintenance window bila perlu, dan urutan compatible deployment. Jangan mengandalkan "rollback code" jika schema lama sudah kehilangan data.
5. First Deploy dan Smoke Test
Setelah preview aktif, uji URL hasil deployment sebelum promote ke production. Smoke test minimum:
- landing page dan route penting dapat dibuka;
- login, logout, dan password recovery bekerja bila tersedia;
- satu create, read, update, dan delete yang aman diuji sesuai scope;
- permission negatif menolak akses;
- asset, font, metadata, robots, dan sitemap tersedia;
- log tidak menampilkan secret;
- layout diuji pada desktop dan smartphone;
- refresh pada nested route tidak menghasilkan 404.
Catat commit SHA dan deployment URL agar hasil dapat ditelusuri.
6. Preview versus Production
Gunakan preview untuk review visual, acceptance test, dan integrasi sebelum production. Jangan menganggap preview private hanya karena URL sulit ditebak. Aktifkan protection jika materi sensitif.
Promote hanya commit yang sudah disetujui. Setelah production deploy, ulangi smoke test terhadap domain production dan periksa log, error rate, serta koneksi database.
7. Membeli dan Menghubungkan Domain
Domain dapat dibeli melalui provider deployment atau registrar pihak ketiga. Gunakan account organisasi bila domain milik bisnis. Aktifkan multi-factor authentication, recovery contact, dan auto-renew.
Tambahkan domain ke project lebih dahulu, lalu ikuti record DNS yang ditampilkan provider. Record yang umum adalah A/AAAA untuk apex, CNAME untuk subdomain, atau nameserver delegation. Nilai aktual dapat berbeda, jadi jangan menyalin record dari screenshot lama.
Jangan menghapus MX, SPF, DKIM, atau DMARC ketika mengubah website jika domain juga dipakai untuk email.
8. DNS, HTTPS, dan Callback URL
Perubahan DNS memerlukan waktu untuk tersebar dan cache lama dapat bertahan. Periksa domain apex dan www, redirect canonical, serta sertifikat HTTPS. Jangan menonaktifkan HTTPS untuk mengatasi konfigurasi sementara.
Setelah domain berubah, update URL aplikasi, OAuth callback, email link, CORS allowlist, webhook, cookie domain, analytics, canonical metadata, dan sitemap jika project memakainya. Uji login dari sesi baru, bukan hanya browser yang masih memiliki cookie lama.
9. Rollback dan Incident Dasar
Jika production gagal, hentikan perubahan lanjutan, catat waktu dan deployment, lalu tentukan apakah masalah berasal dari code, config, database, DNS, atau provider. Rollback ke deployment sehat jika schema tetap compatible.
Jangan melakukan banyak perubahan acak sekaligus. Pulihkan service, simpan evidence, lalu lakukan root-cause analysis. Rotasi credential jika secret mungkin terekspos.
10. Maintenance Setelah Online
Setiap minggu, periksa error, failed job, backup, security alert, dependency penting, domain, SSL, dan penggunaan resource. Setiap bulan, review akses user, credential, recovery contact, biaya provider, restore readiness, dan halaman yang sudah usang.
Feature baru kembali melalui workflow branch, preview, review, test, dan production. Jangan mengedit production langsung karena perubahan kecil sekalipun dapat memengaruhi auth, data, caching, atau SEO.
11. Checklist Production Ready
- Commit production dapat diidentifikasi.
- Variable dan secret berada pada environment yang benar.
- Production database terpisah dan memiliki backup.
- Migration selesai dan diverifikasi.
- Domain, DNS, HTTPS, redirect, dan callback benar.
- Smoke test utama lulus.
- Monitoring dan log dapat diakses tanpa mengekspos data sensitif.
- Rollback serta pemilik respons insiden jelas.
Sumber resmi dan referensi
Gunakan sumber berikut untuk memeriksa command, fitur, pricing, atau limit terbaru.
Apakah panduan ini membantu?
Beritahu kami bila langkahnya berhasil atau ada informasi yang perlu diperbarui.