Posted over 5 years ago. Visible to the public.

Backup

Databases

Regular Intervals

Backups in the form of database dumps of our relational databases happen every day (usually between 12 AM and 1 AM CET/CEST). The backups will be created on the database replica server to prevent load impacts on the primary instance.
The dumps will be stored on our dedicated backup storage and kept there for 7 days (previously 30 days). Every database on our shared PostgreSQL or MariaDB Cluster get this backup strategy.

Point-In-Time

Additionally and upon request we can provide Point-In-Time-Recoverability for dedicated databases. For our shared PostgreSQL cluster PITR is available by default. Restore Points are available up to 7 days in the past.

Redis

We do not backup Redis data but let it write its data to disk in certain intervals determined by amount of data changed and a time interval. Writing data to disk is not a backup. It's not copied anywhere. It's not incremental. It's not rotated. Disk persistence in Redis is needed for replication.

Application an Filesystem data

In our datacenter at noris, we use borgbackup Archive . With that, the borg client is in charge of sending the data to the backup server. This way we can fully encrypt all backups with ease and even be efficient with deduplication.

All in all, the following is backed up:

  • Your application deployment, with releases (/var/www)
  • Your deploy users home (/home)
    • We save all your cronjobs in your home directory (in ~/.crontab-dump)
  • The shared data in the GlusterFS (/gluster/shared)
  • all files in /etc

We do this, in order to restore functionality completely without outside (e.g. a developer of the customer) interaction to any point within the last 7 days.

Backup restore test and monitoring

We frequently check that our backup is working as expected and we are able to restore backups:

  • every week database dumps of every type (PostgreSQL, MySQL and every version) are randomly selected and are restored to a local database by an operations engineer
  • every week we verify that new files are included in the filesystem backups
  • additionally we monitor if the sync for the filesystem backup runs every day
  • we get notified if backup jobs fail
  • there is a continuous monitoring if PITR backup is receiving new data
  • every week we also restore a PITR backup

Your development team has a full backlog of feature requests, chores and refactoring coupled with deadlines? We are familiar with that. With our "DevOps as a Service" offering, we support developer teams with infrastructure and operations expertise.

Owner of this card:

Avatar
Thomas Eisenbarth
Last edit:
3 months ago
by Florian Heinle
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Thomas Eisenbarth to opscomplete
This website uses short-lived cookies to improve usability.
Accept or learn more