Minggu 11 — Deployment dan Production Workflow
Environment, server, domain, SSL, Docker, CI/CD, backup, dan rollback.
Tiga environment
| Environment | Fungsi | Data |
|---|---|---|
| Development | Tempat kamu (dan AI) menulis kode | Data palsu |
| Staging | Salinan production untuk uji terakhir | Mirip production, tanpa data pelanggan asli |
| Production | Yang dipakai pengguna nyata | Data asli — sangat berharga |
Bagian-bagian server
- VPS: server virtual yang kamu sewa; kamu mengatur sendiri isinya.
- Domain + DNS: nama (kelasit.com) diarahkan ke alamat IP server lewat record A.
- Web server (Nginx): menerima request dan meneruskannya ke aplikasi.
- SSL/HTTPS: enkripsi, gratis lewat Let's Encrypt (
certbot). - Environment variables: sandi dan kunci diisi di server (
.env), bukan di Git.
Checklist deployment
- Semua test lulus di lokal.
- Backup database production.
- Ambil/unggah kode baru.
- Install dependency production (
composer install --no-dev,npm ci). - Jalankan migration.
- Bangun ulang cache/build.
- Cek halaman utama dan fitur kunci (smoke test).
- Pantau log beberapa menit.
Docker dasar
Docker membungkus aplikasi beserta lingkungannya dalam container sehingga "jalan di laptopku" berarti "jalan di server juga".
FROM node:22-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --omit=dev
COPY . .
CMD ["node", "server.js"]
CI/CD
CI (Continuous Integration): setiap push otomatis menjalankan lint dan test. CD (Continuous Delivery/Deployment): jika lulus, otomatis dikirim ke server. Contoh pada GitHub Actions/GitLab CI: berkas YAML berisi langkah install → test → deploy.
Monitoring, backup, rollback
- Log: baca log aplikasi dan web server saat ada error 500.
- Backup: database dan berkas unggahan, terjadwal, dan pernah diuji dipulihkan.
- Rollback: rencana kembali ke versi sebelumnya (kode lama + cadangan database) bila deploy bermasalah. Siapkan sebelum deploy.
Praktik minggu ini
Deploy aplikasi ke VPS atau hosting yang mendukung stack aplikasi. Target: aplikasi online dengan dokumentasi deployment dan rollback.