Provisioning dengan Terraform & Stack Observability
Infrastruktur lab didefinisikan sebagai kode dengan Terraform, lalu dilengkapi Prometheus, Grafana, dan Loki agar kondisi server dan aplikasi dapat dipantau dari satu tempat.
- Peran
- Perancang dan pelaksana lab (proyek pribadi).
- Teknologi
- Terraform
- Prometheus
- Grafana
- Loki
- Alertmanager
- Linux
Konten contoh. Studi kasus ini adalah contoh format dari template. Ganti dengan detail proyek Anda yang sebenarnya, atau hapus sebelum dipublikasikan.
Konteks
Lab ini dibuat untuk mempraktikkan dua kebiasaan yang saling melengkapi: infrastruktur yang dapat dibuat ulang dari kode, dan sistem yang dapat diamati setelah berjalan.
Masalah dan tujuan
Server yang dikonfigurasi manual sulit direproduksi, dan tanpa monitoring, masalah baru diketahui setelah pengguna melapor.
- Seluruh resource lab dapat dibuat dan dihapus dengan Terraform.
- Metrics host dan aplikasi terkumpul di satu dashboard.
- Alert dasar untuk kondisi yang membutuhkan tindakan.
Batas pekerjaan
Termasuk
- Modul Terraform untuk jaringan, compute, dan firewall.
- Remote state dengan state locking.
- Prometheus, node exporter, Loki, Grafana, dan Alertmanager.
Di luar lingkup
- High availability untuk stack monitoring.
- Tracing terdistribusi.
Peran saya
Perancang dan pelaksana lab (proyek pribadi).
- Menyusun modul Terraform untuk jaringan, VM, dan firewall.
- Menyiapkan remote state dengan locking agar perubahan tidak bertabrakan.
- Membangun dashboard dan aturan alert dasar untuk host dan aplikasi.
Solusi
Resource dipisahkan ke modul kecil dengan variabel yang jelas, sehingga environment baru cukup dibuat dari file konfigurasi berbeda.
Setiap perubahan melewati terraform plan yang ditinjau sebelum apply.
Exporter mengirim metrics ke Prometheus dan log ke Loki; Grafana menampilkan keduanya berdampingan untuk mempercepat investigasi.
Alasan keputusan teknis
Modul kecil dan eksplisit
Modul yang terlalu generik sulit dipahami. Modul kecil dengan input jelas lebih mudah ditinjau dan diuji.
Alert berdasarkan gejala
Alert diarahkan pada dampak (layanan tidak merespons, disk hampir penuh) agar tidak menimbulkan kelelahan alert.
Arsitektur dan alur implementasi
- 01Terraformplan · apply
- 02Cloud VMjaringan & firewall
- 03Exportermetrics & logs
- 04Prometheus · Lokipenyimpanan
- 05Grafanadashboard & alert
Hasil
Environment dapat dibuat ulang
Lab dapat dihapus dan dibuat kembali dari kode dengan konfigurasi yang sama.
Satu tempat untuk investigasi
Metrics dan log dapat dikorelasikan berdasarkan waktu di Grafana.
Pelajaran yang diperoleh
- State Terraform adalah data sensitif: simpan di backend yang terenkripsi dan batasi aksesnya.
- Mulai dari sedikit dashboard yang menjawab pertanyaan nyata, lalu tambahkan sesuai kebutuhan.