Backup Harian dan Uji Pemulihan
Database dicadangkan setiap hari dalam bentuk terenkripsi ke penyimpanan terpisah, dan prosedur pemulihannya sudah diuji lewat latihan pemulihan.
- Status
- Sudah berjalan
- Lapisan
- DevOpsOtomasi
- Dipakai oleh
- Pemilik Numekara yang perlu yakin data siswa, pesanan, dan pembayaran bisa dikembalikan bila terjadi masalah.
Masalahnya
Banyak bisnis baru sadar backup-nya rusak atau tidak lengkap justru saat data hilang.
Solusinya
Workflow harian membuat dump database, mengenkripsinya, membuat checksum, dan mengirimnya ke penyimpanan terpisah. Skrip latihan pemulihan menolak berjalan di database produksi, dan hasil latihan dicatat sebagai bukti.
Cara kerjanya
Apa yang terjadi, langkah demi langkah, dari sudut pandang pengguna.
- 01
Backup berjalan setiap dini hari
GitHub Actions menyalin seluruh database secara terjadwal setiap hari. Tidak bergantung pada laptop siapa pun.
- 02
Salinan diperiksa kelengkapannya
Sebelum disimpan, struktur salinan diperiksa agar tidak ada backup kosong atau rusak yang lolos.
- 03
Dikunci dan diberi checksum
Salinan dienkripsi dengan kata sandi rahasia, lalu dibuatkan checksum untuk mendeteksi bila file berubah atau rusak.
- 04
Disimpan di tempat terpisah
File dikirim ke Cloudflare R2, di luar penyedia database. Salinan yang sudah terlalu lama dihapus otomatis.
- 05
Pemulihan dilatih secara nyata
Skrip latihan mengunduh backup terbaru, mencocokkan checksum, membuka enkripsi, lalu memulihkannya ke database uji. Skrip menolak berjalan di database produksi.
- 06
Hasil latihan dicatat
Setiap latihan dicatat sebagai LULUS atau GAGAL, termasuk kegagalan dan perbaikannya. Latihan terakhir lulus setelah satu perbaikan skrip.
Desain sistemnya
Siapa yang memakai, apa yang mereka lihat, apa yang bekerja di belakang layar, dan di mana data disimpan. Baca dari kiri ke kanan.
1Sumber data
- Database produksiPostgreSQL di Supabase berisi data siswa, pesanan, dan pembayaran
2Yang bekerja otomatis
- Jadwal GitHub ActionsMenjalankan backup setiap hari tanpa perlu dinyalakan manual
- Skrip backupMenyalin, memeriksa, mengenkripsi, dan membuat checksum
3Penyimpanan terpisah
- Cloudflare R2Menyimpan file backup terenkripsi di luar penyedia database
4Latihan pemulihan
- Skrip latihanMemulihkan backup terbaru ke database uji, tidak pernah ke produksi
- Database ujiTempat sementara untuk membuktikan data bisa dibuka kembali
5Bukti untuk pemilik
- Catatan latihanDokumen berisi hasil LULUS atau GAGAL setiap latihan
- Halaman SistemMenampilkan status backup di dashboard admin
Fitur utama
- Backup harian terjadwal
- Enkripsi dan checksum
- Penyimpanan di luar server
- Latihan pemulihan terdokumentasi
- Pengaman database produksi
Dibangun dengan
- PostgreSQL
- GPG
- GitHub Actions
- Cloudflare R2
- Bash
Yang didapat bisnis
- Data bisnis punya salinan harian di luar penyedia utama.
- Ada bukti tertulis bahwa backup benar-benar bisa dipulihkan, bukan sekadar dibuat.
- File backup tidak bisa dibaca tanpa kata sandi enkripsi.
- Backup yang tidak berjalan langsung ditandai gagal, tidak tersembunyi di balik status hijau.
Istilah di halaman ini
- Backup
- Salinan cadangan data yang disimpan terpisah, untuk dipakai bila data asli rusak atau hilang.
- Checksum
- Sidik jari sebuah file; bila satu bagian kecil saja berubah, sidik jarinya tidak cocok lagi.
- Cloudflare R2
- Gudang file online milik Cloudflare, dipakai di sini sebagai tempat simpan backup.
- GitHub Actions
- Layanan GitHub yang menjalankan tugas otomatis sesuai jadwal, seperti alarm yang mengerjakan pekerjaannya sendiri.
Bisa dipakai untuk bisnis Anda?
Perlindungan data yang wajib dimiliki aplikasi bisnis Anda, lengkap dengan bukti bahwa data benar-benar bisa dipulihkan.
Konsultasikan proyek ini