Memahami siklus hidup sebuah sistem dari desain, provisioning, operasi, hingga decommission, serta praktik mendokumentasikan arsitektur dan runbook agar sistem bisa dikelola dan dirawat dengan konsisten

Setelah memahami peran dan tanggung jawab System Engineer di episode 1, sekarang kita membahas cara berpikir utamanya: siklus hidup sebuah sistem. Seorang System Engineer tidak melihat server sebagai objek statis yang "dipasang lalu dilupakan" — melainkan sebagai entitas yang lahir, hidup, dan akhirnya dipensiunkan. Setiap fase punya aktivitas, keputusan, dan dokumentasi masing-masing.
Mengapa ini penting? Karena mayoritas insiden di dunia nyata lahir dari fase yang diabaikan: server dibangun tanpa desain, dokumentasi tidak pernah ditulis, atau mesin yang sudah tidak dipakai masih dibiarkan berjalan — boros biaya dan berisiko keamanan. Memahami lifecycle membuat kalian mengelola sistem secara utuh, bukan menambal di sana-sini.
Sebuah sistem melewati empat fase utama:
Fase paling menentukan, paling sering diremehkan. Di sini kalian menjawab pertanyaan-pertanyaan dasar sebelum menulis satu baris konfigurasi:
Keluaran fase ini adalah dokumen desain dan Architecture Decision Record (ADR) — catatan singkat berisi keputusan penting beserta alasannya. ADR menyelamatkan kalian enam bulan kemudian ketika bertanya "kenapa sih kita pilih begini?"
| Pilihan | Pertimbangan |
|---|---|
| OS | Ubuntu/Debian (mudah), Rocky/RHEL (enterprise, sertifikasi) |
| Hosting | On-prem (kontrol penuh), cloud (fleksibel, bayar sesuai pakai) |
| Compute | VM (isolasi kuat), container (ringan & cepat deploy) |
| Database | PostgreSQL (relasional), Redis (cache), MongoDB (document) |
Fase ini mengubah desain menjadi sistem yang berjalan. Idealnya bersifat reproducible: dari dokumentasi dan kode, sistem yang sama bisa dibangun ulang kapan saja. Perintah manual masih boleh untuk server pertama, tapi untuk produksi harus diotomasi — topik yang kita dalami di episode 9 (Ansible) dan 25 (Terraform).
sudo apt update
sudo apt install -y nginx
sudo systemctl enable --now nginxYang membedakan provisioning baik dari yang buruk adalah dokumentasinya: apakah langkah di atas tertulis di runbook, atau hanya ada di kepala orang yang membuatnya?
Fase terpanjang dalam lifecycle. Aktivitasnya meliputi:
Selama fase operasi, sistem terus berubah: update paket, tambah user, ubah konfigurasi. Runbook — dokumen langkah-demi-langkah untuk tugas rutin dan insiden — menjadi penyelamat. Contoh runbook singkat:
Tujuan: restart layanan nginx saat tidak responsif
1. Periksa status layanan:
systemctl status nginx
2. Cek log kesalahan:
journalctl -u nginx -n 50
3. Restart layanan:
sudo systemctl restart nginx
4. Verifikasi:
systemctl is-active nginx && curl -s -o /dev/null -w "%{http_code}" http://localhostImportant
Aturan emas operasi: jika sebuah prosedur tidak tertulis, prosedur itu tidak ada. Runbook yang hanya ada di kepala seseorang adalah single point of failure — saat orang itu cuti, insiden berikutnya berubah dari masalah teknis menjadi masalah organisasi.
Fase paling sering dilupakan, dan paling berbahaya jika diabaikan. Server yang tidak terpakai tetap membayar biaya listrik/cloud, tetap menerima patch, dan menjadi sasaran empuk penyerang. Prosedur decommission yang benar:
# Di cloud: daftar semua instance termasuk yang berhenti
aws ec2 describe-instances --query \
'Reservations[].Instances[].[InstanceId,State.Name,Tags]'
# Di on-prem: cek uptime & load mesin yang mencurigakan
uptimeSekarang saatnya mempraktikkan fase design. Buat dokumen arsitektur untuk sebuah layanan sederhana — misalnya aplikasi web dengan database. Struktur minimal yang direkomendasikan:
# Arsitektur Sistem: app-web
## 1. Tujuan
Melayani aplikasi web publik, 5.000 request/menit.
## 2. Komponen
- 1x VM Web Server (Ubuntu 24.04, Nginx + Node.js)
- 1x VM Database (PostgreSQL 16)
- Load Balancer (terminasi HTTPS) -> Web Server
## 3. Arsitektur
[diagram komponen: User -> LB -> App -> DB]
## 4. Keputusan Arsitektur (ADR)
ADR-001: Pilih PostgreSQL (kebutuhan transaksional)
ADR-002: Pilih Nginx (ringan, battle-tested)
## 5. Operasi
- Backup DB: pg_dump harian, 02:00 WIB
- Monitoring: CPU/disk/node_exporter
- Runbook: restart, scale-out, restore DB
## 6. Decommission
- Persetujuan pemilik layanan, arsip DB, cabut integrasiDokumen ini bukan untuk formalitas — ia adalah sumber kebenaran (source of truth) tentang sistem kalian. Saat ada pertanyaan "kenapa begini?", dokumen inilah jawabannya.
Inti yang harus dibawa pulang:
Di episode 3 selanjutnya kita mulai praktik keras: Linux System Administration — service management dengan systemd, filesystem, kernel tuning dasar, dan user management. Siapkan VM Linux kalian, karena kita akan banyak mengetik di terminal!