Bayangkan skenario horor ini: kamu lagi asyik nge-scroll TikTok, tiba-tiba dapat notif dari temen kalau pembayaran SPP online di sistem kampus error. Parahnya, admin IT gak tahu sama sekali karena sistemnya diem aja! Nggak ada alarm, nggak ada peringatan, pokoknya sunyi senyap. Nah, kejadian serupa tapi lebih horor menimpa sebuah layanan notifikasi pembayaran. Yuk, kita bedah kasusnya biar kamu gak ngalamin hal serupa pas bikin project atau kerja nanti!

Gawat! Pembayaran Gagal Tanpa Notifikasi Selama 47 Menit!

Insiden ini terjadi pada sebuah layanan notifikasi pembayaran yang berjalan di EKS cluster. Tiba-tiba, layanan tersebut failed silently selama 47 menit! Kamu tahu artinya ‘failed silently’? Artinya, dia gagal, tapi gak ngasih tahu siapa-siapa. Kayak kamu bolos kuliah tapi gak ngabarin dosen. Parah!

Akibatnya, tim IT gak ada yang tahu. Sistem monitoring seperti PagerDuty gak nyaut, Loki diem aja, gak ada peringatan sama sekali. Mereka baru tahu kalau ada masalah pas ada customer yang ngetweet tentang pembayaran mereka yang bermasalah. Aduh, kan malu banget kalau sampai kayak gitu!

Kok Bisa Terjadi Insiden Horor Ini?

Usut punya usut, akar masalahnya sederhana tapi fatal. Ada sebuah proses yang disebut microservice extraction. Nah, entah kenapa, saat proses itu berlangsung, konfigurasi structured logging config-nya hilang! Bagi yang belum tahu, logging config ini ibarat ‘buku harian’ si aplikasi. Dia mencatat semua aktivitas dan error yang terjadi. Kalau ini hilang, ya udah, sistem jadi buta dan bisu.

Intinya, sistem kehilangan observability-nya. Observability ini kayak ‘mata’ dan ‘telinga’ kita buat tahu apa yang lagi terjadi di dalam sistem, gimana performanya, dan kalau ada apa-apa, dia bakal kasih tahu. Kalau config-nya hilang, sama saja kayak sistem kita gak punya mata dan telinga, jadi pas ada masalah, dia gak bisa ‘teriak’ minta tolong.

Solusi Jitu: Jadikan Observability Syarat Wajib!

Tim yang mengalami insiden ini akhirnya sadar. Solusinya bukan cuma nambah banyak tool monitoring baru. Itu cuma nambah ‘band-aid’ di luka yang belum diobati. Tapi, mereka memutuskan untuk mengubah mindset dan pendekatannya: observability itu harus jadi hard deployment requirement. Maksudnya, setiap service yang mau di-deploy, wajib hukumnya punya ‘kontrak observability’ yang jelas.

Bagaimana cara menegakkannya? Mereka menggunakan sebuah kebijakan (policy) dari Open Policy Agent di dalam CI pipeline mereka. Jadi, sebelum kode sampai ke produksi, CI pipeline akan memeriksa apakah service tersebut sudah memenuhi standar observability. Kalau belum, langsung ditolak! Gak boleh lewat. Ini seperti satpam ketat yang memastikan setiap calon penghuni gedung memenuhi aturan keamanan.

Mereka sampai bikin Rego (bahasa policy-nya Open Policy Agent) dan GitHub Actions gate khusus untuk ini. Hasilnya? Tentu saja ada perbedaan signifikan antara kondisi ‘before’ dan ‘after’ perubahan ini.

Pelajaran Berharga Buat Calon Developer dan Engineer Kampus

Buat kamu yang lagi belajar ngoding atau bercita-cita jadi developer atau engineer handal, ini penting banget! Jangan cuma mikirin fitur atau algoritma yang keren. Tapi juga pikirkan bagaimana caranya sistem kamu bisa ‘berteriak’ kalau ada masalah. Dari insiden ini, ada beberapa poin penting yang wajib banget kamu catat:

  • Observability Bukan Pilihan, Tapi Wajib! Jangan anggap enteng sistem monitoring. Ini ‘mata’ dan ‘telinga’ yang bakal menyelamatkanmu dari insiden fatal. Tanpa observability yang baik, kamu cuma bisa berharap keberuntungan atau tweet dari pelanggan.
  • Disiplin Sejak Awal. Terapkan ‘kontrak observability’ di setiap tahapan development dan CI pipeline. Lebih baik ketat di awal daripada pusing di akhir karena sistemmu failed silently.
  • Pahami Root Cause. Masalah seringkali bukan soal ‘tool’ kurang, tapi ‘proses’ atau ‘konfigurasi’ yang terlewat atau tidak dihargai pentingnya.
  • Customer Adalah Alarm Terbaik... yang Paling Akhir. Ironisnya, di kasus ini, customer yang jadi alarm pertama. Jangan sampai kejadian ini terulang dan biarkan sistemmu ‘berteriak’ duluan.

Jadi, siapkan diri kamu dari sekarang! Jangan cuma bikin kode yang jalan, tapi juga kode yang ‘aware’ dan ‘bertanggung jawab’. Yuk, mulai sekarang biasakan bikin sistem yang robust dan mudah dipantau. Siapkan CV dan portofolio terbaikmu yang menunjukkan pemahaman akan pentingnya sistem yang tidak hanya berfungsi, tetapi juga terobservasi dengan baik!