Deployment Manual (Monolith)
Overview
Dokumentasi ini menjelaskan deployment manual sebagai Environment A dalam pengujian komparatif CI/CD. Deployment manual merepresentasikan cara tradisional yang masih banyak digunakan tanpa automation tools.
Apa itu Deployment Manual?
Deployment manual adalah proses deployment aplikasi yang dilakukan secara manual oleh developer/operator melalui:
- Login SSH ke server
- Git pull untuk update kode
- Install/update dependencies
- Restart aplikasi secara manual
- Verifikasi deployment secara manual
Tidak ada automation - setiap langkah memerlukan intervensi manusia.
Karakteristik Deployment Manual
⚙️ Proses Deployment
Developer → SSH to Server → Git Pull → npm install → Restart Service → Verify
↓ ↓ ↓ ↓ ↓ ↓
Manual Manual Manual Manual Manual Manual
Setiap step = Manual intervention
📊 Metrik yang Diukur
Dalam pengujian, kita akan mengukur:
| Metrik | Deskripsi |
|---|---|
| Deployment Time | Waktu dari mulai SSH sampai aplikasi running |
| Manual Steps | Jumlah command yang harus dijalankan manual |
| Downtime | Waktu aplikasi tidak dapat diakses |
| Error Rate | Kemungkinan error karena human mistake |
| Consistency | Seberapa konsisten hasil deployment |
Real Case: 3 Microservices
Aplikasi yang akan di-deploy secara manual:
Service yang Di-Deploy
-
users-service (Port 3001)
- User management & authentication
-
products-service (Port 3002)
- Product catalog management
-
orders-service (Port 3003)
- Order processing & transactions
Deployment Flow Manual
Untuk SETIAP service (3x repeat):
1. SSH ke server
2. cd ke directory service
3. git pull origin main
4. npm install
5. pm2 restart <service-name>
6. Check logs
7. Test endpoint
Total manual steps: ~21 commands (7 steps × 3 services)
Kelebihan & Kekurangan
✅ Kelebihan
- Simple - Tidak perlu setup CI/CD
- Full control - Operator tahu setiap step
- No learning curve - Familiar dengan command line biasa
- Easy debugging - Langsung lihat error di server
❌ Kekurangan
- Time consuming - 3-5 menit per deployment
- Human error prone - Typo, lupa step, salah command
- Downtime - Service harus di-restart (30-60 detik downtime)
- Not consistent - Hasil bisa beda tergantung operator
- Not scalable - Sulit kalau banyak server/services
- No rollback mechanism - Harus manual rollback
Scope Dokumentasi
Dokumentasi monolith deployment fokus pada:
🎯 Yang Dibahas
- ✅ Manual deployment steps untuk 3 services
- ✅ Command-by-command guide
- ✅ Time measurement untuk setiap step
- ✅ Common issues dan solusinya
🚫 Yang TIDAK Dibahas
- ❌ Setup server dari awal (diasumsikan sudah ready)
- ❌ Advanced monitoring/alerting
- ❌ Horizontal scaling strategies
- ❌ High availability setup
Fokus: Bagaimana deploy 3 service secara manual dan berapa lama waktu yang dibutuhkan.
Asumsi Environment
Sebelum mulai deployment, diasumsikan server sudah memiliki:
- ✅ Ubuntu 22.04 LTS
- ✅ Node.js v18.x installed
- ✅ PM2 process manager installed
- ✅ Git installed
- ✅ SSH access available
- ✅ Application repository accessible
Perbandingan dengan Cloud-Native
| Aspek | Manual Deployment | CI/CD (Cloud-Native) |
|---|---|---|
| Trigger | Manual SSH | Git push (auto) |
| Process | Manual commands | Automated pipeline |
| Time | 3-5 menit | <1 menit |
| Downtime | 30-60 detik | 0 detik (rolling update) |
| Manual Steps | ~21 commands | 1 git push |
| Consistency | Low (human dependent) | High (automated) |
| Rollback | Manual & complex | Automated |
Struktur Dokumentasi
Dokumentasi deployment manual terdiri dari:
-
Pendahuluan (halaman ini)
- Overview deployment manual
- Karakteristik & scope
-
- Step-by-step deployment 3 services
- Time measurement per step
- Troubleshooting
Tujuan Pengujian
Dengan mendokumentasikan deployment manual, kita akan:
- Mengukur baseline - Berapa lama deployment manual?
- Identify pain points - Dimana bottleneck terjadi?
- Count manual steps - Berapa banyak intervensi manusia?
- Measure downtime - Berapa lama aplikasi tidak available?
- Compare dengan CI/CD - Seberapa besar improvement?
Expected Results
Hipotesis pengujian:
- ⏱️ Deployment time: 3-5 menit per deployment
- 🔢 Manual steps: ~21 commands
- ⏰ Downtime: 30-60 detik per service
- ❌ Error rate: 5-10% (human error)
- 📊 Consistency: Low (tergantung operator)
Hasil aktual akan dibandingkan dengan CI/CD deployment di Test Results.
Langkah Selanjutnya
Lanjutkan ke Manual Deployment Guide untuk panduan step-by-step deploy 3 services secara manual.