About Backups

As you know, there are two types of people: those who make backups and those who already make backups.

☝️ So let's not dwell on why you need to make backups. Even if you are in the "clouds", which sometimes burn spectacularly.

Instead, let's talk about basic principles:

Principle #1: Don't put all your eggs in one basket.

  • It's better to store them in at least three. What does this mean? There's not much sense in taking a database backup and storing it on the same server, or even in the same data center, or in another data center with the same host. Ideally, it's better to store it in a different jurisdiction. Choose the storage location based on your level of paranoia and risk requirements.

Principle #2: Verify

  • Regularly check backups for recoverability and monitor the backup creation process. If you can check backups once a month, you need to monitor the creation process constantly, which requires a properly configured monitoring system.

Principle #3: Encrypt

  • To ensure your data doesn't leak, it's important to encrypt backups before sending them to storage, but you must clearly understand how to decrypt them when necessary.

Principle #4: Backup intervals should be acceptable in terms of potential data loss.

  • If it's acceptable for you to lose no more than an hour of history, then the backup should be hourly.

Principle #5: Decide on a strategy (full or incremental backup)

  • Depending on the frequency and volume of backups, the right choice will save you from problems like race condition, i.e., a situation where you are creating a backup while the previous backup process is still ongoing.

👾 If your desktop is on Linux, it's convenient to use DejaDup + Gnome backups for daily incremental backups. For server solutions, tools like Minio client, s3cmd, and rclone are suitable. If you need incremental backups, consider restic.