Skip to main content

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:

MetrikDeskripsi
Deployment TimeWaktu dari mulai SSH sampai aplikasi running
Manual StepsJumlah command yang harus dijalankan manual
DowntimeWaktu aplikasi tidak dapat diakses
Error RateKemungkinan error karena human mistake
ConsistencySeberapa konsisten hasil deployment

Real Case: 3 Microservices

Aplikasi yang akan di-deploy secara manual:

Service yang Di-Deploy

  1. users-service (Port 3001)

    • User management & authentication
  2. products-service (Port 3002)

    • Product catalog management
  3. 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

AspekManual DeploymentCI/CD (Cloud-Native)
TriggerManual SSHGit push (auto)
ProcessManual commandsAutomated pipeline
Time3-5 menit<1 menit
Downtime30-60 detik0 detik (rolling update)
Manual Steps~21 commands1 git push
ConsistencyLow (human dependent)High (automated)
RollbackManual & complexAutomated

Struktur Dokumentasi

Dokumentasi deployment manual terdiri dari:

  1. Pendahuluan (halaman ini)

    • Overview deployment manual
    • Karakteristik & scope
  2. Manual Deployment Guide

    • Step-by-step deployment 3 services
    • Time measurement per step
    • Troubleshooting

Tujuan Pengujian

Dengan mendokumentasikan deployment manual, kita akan:

  1. Mengukur baseline - Berapa lama deployment manual?
  2. Identify pain points - Dimana bottleneck terjadi?
  3. Count manual steps - Berapa banyak intervensi manusia?
  4. Measure downtime - Berapa lama aplikasi tidak available?
  5. 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.