Catatan Harian Mas Andri

Silahkan digunakan dengan bijaksana

back

Membangun Sistem Monitoring Backup Database dengan Google Apps Script

26 Maret 2025 || 15:42:51 WIB || ClassyID

Proses backup database adalah salah satu tugas krusial dalam pengelolaan infrastruktur IT perusahaan. Namun, sering kali proses ini hanya berjalan di balik layar tanpa adanya visualisasi yang memadai tentang statusnya. Bagaimana jika kita bisa memantau seluruh proses backup secara real-time dengan dashboard yang informatif dan interaktif?

## Mengenal ClassyDBBackupMonitor

ClassyDBBackupMonitor adalah sistem monitoring yang saya kembangkan untuk Classy Indonesia menggunakan Google Apps Script sebagai backend dan teknologi web modern di frontend. Sistem ini terhubung ke database MySQL yang menyimpan informasi tentang proses backup yang dijalankan oleh script bash.

### Mengapa Monitoring Backup Penting?

Sebelum adanya sistem monitoring, tim IT sering kesulitan menjawab pertanyaan-pertanyaan penting seperti:
- Apakah backup tadi malam sukses?
- Database apa saja yang gagal di-backup dan apa penyebabnya?
- Bagaimana tren keberhasilan backup dalam satu bulan terakhir?
- Pengguna MySQL mana yang memiliki tingkat kegagalan backup tertinggi?

Semua pertanyaan ini sekarang dapat dijawab dengan cepat melalui dashboard yang informatif.

### Arsitektur Sistem

Sistem terdiri dari tiga komponen utama:
1. Script Bash: Bertugas melakukan backup database dan mencatat setiap langkah ke dalam database MySQL
2. Database MySQL: Menyimpan data tentang sesi backup, status, dan log
3. Aplikasi Web (Google Apps Script): Mengambil data dari MySQL dan menampilkannya dalam bentuk dashboard interaktif

### Fitur Utama Dashboard

1. **Monitoring Real-time**: 
   Dashboard menampilkan status backup terkini, termasuk jumlah database yang berhasil dan gagal di-backup.

2. **Analisis Tren**: 
   Grafik dan chart memvisualisasikan tren keberhasilan backup selama periode waktu tertentu.

3. **Detail Per Sesi**: 
   Informasi mendalam tentang setiap sesi backup, termasuk pengguna MySQL dan database yang terlibat.

4. **Analisis Error**: 
   Identifikasi pola error yang sering muncul untuk penyelesaian masalah yang lebih cepat.

5. **Historis Notifikasi**: 
   Rekam jejak notifikasi yang dikirimkan via Telegram selama proses backup.

## Teknologi Yang Digunakan

Sistem ini menggabungkan beberapa teknologi:

1. **Google Apps Script**: 
   Sebagai backend yang menjembatani antara frontend dan database MySQL.

2. **JDBC Connection**: 
   Untuk koneksi ke database MySQL dari Google Apps Script.

3. **Tailwind CSS**: 
   Framework CSS untuk desain antarmuka yang modern dan responsif.

4. **Chart.js**: 
   Library untuk membuat visualisasi data yang interaktif.

5. **MySQL**: 
   Database untuk menyimpan semua informasi tentang proses backup.

## Tantangan dan Solusi

Dalam pengembangan sistem ini, kami menghadapi beberapa tantangan:

1. **Kinerja Koneksi Database**: 
   Google Apps Script memiliki batasan waktu eksekusi, sehingga query kompleks perlu dioptimalkan untuk menghindari timeout.

2. **Rendering Data yang Banyak**: 
   Dashboard perlu menampilkan data historis yang banyak tanpa membuat antarmuka menjadi lambat.

3. **Penanganan Error**: 
   Sistem perlu secara efektif menangkap dan menampilkan error dari berbagai sumber.

Semua tantangan ini berhasil diatasi melalui optimasi kode, pagination data, dan penerapan penanganan error yang komprehensif.

## Kesimpulan

ClassyDBBackupMonitor telah menjadi alat yang sangat penting dalam infrastruktur IT Classy Indonesia. Dengan dashboard yang informatif, tim IT dapat dengan cepat mengidentifikasi masalah dalam proses backup dan mengambil tindakan preventif sebelum masalah menjadi lebih serius.

Ke depannya, sistem ini akan terus dikembangkan dengan fitur-fitur baru seperti integrasi dengan layanan cloud storage, notifikasi email, dan dashboard yang dapat dikustomisasi sesuai kebutuhan pengguna.

Dengan kombinasi teknologi yang tepat dan fokus pada pengalaman pengguna, monitoring proses-proses backend yang biasanya "tidak terlihat" menjadi lebih interaktif dan informatif.

GITHUB