Gently reminder to set up backups

Arthur Kh - Aug 22 '23 - - Dev Community

What is a Backup?

At its core, a backup refers to the process of copying and storing data from your primary storage to another location. This duplicated data guarantees that in the event of a hardware failure, software error or any other form of data loss there is a second copy existing to restore the lost information.

Why Are Backups Important?

  1. Protection Against Hardware Failures. All hardware, from the most robust servers to personal smartphones, has a finite lifespan. Over time these devices can malfunction or break down entirely. Without backups the data stored on these devices could be lost forever.
  2. Defense Against Cyber Threats. Malware, ransomware and other malicious software can corrupt or encrypt your data, making it inaccessible. A solid backup strategy can help users recover from such threats without paying hefty ransoms or losing data.
  3. Guarding Against Human Error. Mistakes happen. Files may be accidentally deleted or overwritten. In such cases having a backup allows for a swift restoration, minimizing disruptions and potential losses.
  4. Historical Record Keeping. Backups also serve as historical records for businesses. They allow organizations to access previous document versions or to recover information that might not be immediately relevant but becomes crucial down the line.
  5. Compliance and Regulations. Many industries have strict data retention requirements. Healthcare and finance, for instance, have regulations necessitating the secure storage of data for extended periods. Backups help these sectors remain compliant.
  6. Peace of Mind. Knowing that your data is safe and recoverable provides an invaluable peace of mind. This is especially important for businesses where data loss could translate to significant monetary losses or reputational damage.

Best Practices for Backups:

  1. 3-2-1 Rule. Always have at least three copies of your data. Two of these are locally stored on different devices, and one is stored offsite (like a cloud storage or a remote server).
  2. Regular Backups. Schedule your automatic backups, whether daily, weekly or monthly, depending on the critical nature of the data.
  3. Verify the Backups. From time to time test and verify backups to ensure they're functioning correctly and data is recoverable.
  4. Encrypt. If your backup includes sensitive data, ensure that it's encrypted. This safeguards your data from potential threats, even if the backup storage itself is compromised.
  5. Stay Updated. Just like any other software, backup software and the tools you use need to be updated regularly. Ensure you’re using the latest versions to benefit from the most recent security patches and functionalities.
  6. Use git. use git and git hostings like github or gitlab for keeping your code in cloud.

My Story

I really love to test in production (for my pet projects), so yesterday I discovered that the database for my bot https://t.me/indbbot is lost. This happened because I started restoring my old bots and it needed to update some MongoDB utilities. During the updates I decided to delete the MongoDB data to avoid migration issues (btw MongoDB doesn't have migration issues). Since I'm moving to a separate instance from DigitalOcean: https://docs.digitalocean.com/products/databases/mongodb/, I wondered why I should keep anything on VPS. Fortunately, I have set up VPS backups so I successfully recovered all of my data. However, I remembered this only after several hours of finding the solution, which led me to experience a rollercoaster of emotions that I wouldn't recommend.

PLEASE SET UP BACKUPS WHEREVER POSSIBLE

Be sure to follow my dev.to account and Telegram channel; there will be even more content soon.

. . . . . . . . . . . . . . . .