Guides
Step-by-step pipelines you can run today, restore drill included.
Automating backups with GitHub Actions (and when not to)
Scheduled workflows disable themselves after 60 days of repo inactivity, and anyone with write access can exfiltrate your production credentials. Where CI is the right place for backups, and where cron still wins.
Back up model checkpoints before your spot instance disappears
GPU hours are money. A checkpoint backup pipeline for training runs, encrypted, deduplicated, off the box, with a restore drill that proves you can resume.
Backing up a Linux server without backing up the whole disk
Provider snapshots die with the account and a full disk image wastes most of its bytes. What to actually capture on a VPS, what to skip, and how to prove a rebuild works.
Backing up Supabase, Neon and PlanetScale
Managed Postgres and MySQL providers give you PITR that lives entirely in their account. If the account goes, so does every recovery option. How to keep an independent copy.
Backup requirements for SOC 2, GDPR and HIPAA
Auditors don't ask whether you have backups. They ask for evidence you restored one. What each framework expects, and how to handle erasure requests against immutable backups.
Backup vs replication vs snapshot vs archive
Replication copies your mistakes in milliseconds. A snapshot usually dies with the volume it's on. Four terms that get used interchangeably, and what each one actually protects against.
Docker volume backups you can actually restore
docker commit doesn't save your volumes, and copying /var/lib/docker while a database is running gives you a corrupt file. Build a Docker volume backup pipeline with verified restores.
DynamoDB backups you can actually restore
PITR and on-demand backups live in the account you're protecting against. Build a DynamoDB backup pipeline with off-provider copies, table schema captured, and verified restores.
Elasticsearch and OpenSearch backups you can actually restore
You cannot back up Elasticsearch by copying the data directory. The snapshot API is the only supported route, path.repo needs a rolling restart, and restores refuse to overwrite an open index.
Full vs incremental vs differential backup
Incremental backs up changes since the last backup. Differential backs up changes since the last full. The difference only matters when you restore — and deduplication makes the whole trade-off obsolete.
How long should you keep backups?
Retention shorter than attacker dwell time is retention an attacker can wait out. How to size a policy with grandfather-father-son, what deduplication does to the cost, and how to automate it safely.
How to test your backups (and why checking they ran isn't testing)
A green cron job proves a script exited zero. A restore drill proves you can recover. How to run one, what to measure, and how to automate it so it happens without you.
Immutable backups: what actually stops ransomware
Modern ransomware deletes your backups first, using your own credentials. What immutability really means, which controls survive a compromised admin account, and how to build one.
Kubernetes backups: what actually needs backing up
etcd is not your data, and kubectl get all -o yaml is not a manifest backup. What to capture in a Kubernetes cluster, how to capture it consistently, and how to prove it restores.
MongoDB backups you can actually restore
Most mongodump cron jobs have never been test-restored. Build a MongoDB backup pipeline with consistent archives, verified restores, encryption, and retention, in about 10 minutes.
MySQL backups you can actually restore
Most mysqldump cron jobs have never been test-restored. Build a MySQL/MariaDB backup pipeline with consistent dumps, verified restores, encryption, and retention, in about 10 minutes.
Postgres backups you can actually restore
Most pg_dump cron jobs have never been test-restored. Build a Postgres backup pipeline with verified restores, encryption, and retention, in about 10 minutes.
Redis backups you can actually restore
RDB or AOF is the wrong question — you need to know which one Redis loads on boot. Build a Redis backup pipeline with consistent snapshots, off-box copies, and verified restores.
RPO vs RTO: the two numbers your backup schedule is already choosing for you
RPO is how much data you lose, RTO is how long you're down. Most teams have never measured either — and the gap between the assumed RTO and the real one is where outages get expensive.
S3 versioning is not a backup: how to actually back up a bucket
Versioning, replication, and lifecycle rules all live inside the account that gets compromised. Build a real off-provider S3 backup with verified restores, in about 10 minutes.
SQLite backups you can actually restore
cp on a live SQLite database gives you a file that may not open, and in WAL mode it silently drops recent commits. Use .backup or VACUUM INTO, then verify the restore.
The 3-2-1 backup rule, and what it means when everything is cloud
Three copies, two media, one off-site — written in 2009 for hard drives. What each number actually protects against, and how to apply it when all three copies live in the same AWS account.
What backup storage actually costs
The per-GB price is the smallest line item. Egress, API calls, early-deletion minimums and retrieval fees are where cheap storage stops being cheap — and engineer hours dwarf all of it.
What deduplication actually does in a backup system
File-level dedupe misses a one-byte change. Fixed-block dedupe breaks the moment you insert data. Content-defined chunking is why 30 nightly database dumps cost barely more than one.