Semua proyek
DevOps

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.

  1. 01

    Backup berjalan setiap dini hari

    GitHub Actions menyalin seluruh database secara terjadwal setiap hari. Tidak bergantung pada laptop siapa pun.

  2. 02

    Salinan diperiksa kelengkapannya

    Sebelum disimpan, struktur salinan diperiksa agar tidak ada backup kosong atau rusak yang lolos.

  3. 03

    Dikunci dan diberi checksum

    Salinan dienkripsi dengan kata sandi rahasia, lalu dibuatkan checksum untuk mendeteksi bila file berubah atau rusak.

  4. 04

    Disimpan di tempat terpisah

    File dikirim ke Cloudflare R2, di luar penyedia database. Salinan yang sudah terlalu lama dihapus otomatis.

  5. 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.

  6. 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.

  1. 1Sumber data

    • Database produksiPostgreSQL di Supabase berisi data siswa, pesanan, dan pembayaran
  2. 2Yang bekerja otomatis

    • Jadwal GitHub ActionsMenjalankan backup setiap hari tanpa perlu dinyalakan manual
    • Skrip backupMenyalin, memeriksa, mengenkripsi, dan membuat checksum
  3. 3Penyimpanan terpisah

    • Cloudflare R2Menyimpan file backup terenkripsi di luar penyedia database
  4. 4Latihan pemulihan

    • Skrip latihanMemulihkan backup terbaru ke database uji, tidak pernah ke produksi
    • Database ujiTempat sementara untuk membuktikan data bisa dibuka kembali
  5. 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