First de-risking step of the bigger Papercut→GKE migration. Everything after this inherits an already-proven Redis.
Two aging VMs (pc-x-1, pc-x-2) shared ONE Redis — version 3.2.13, end-of-life since 2016. It held durable state: feature flags, invoice locks, counters. retired
A new highly-available Redis inside our GKE cluster — 3 data servers, 2 proxies — fully separate from our main app's Redis, sized and tuned for Papercut's real workload. shipped
Redis moved first — the riskiest shared piece of the bigger Papercut→GKE cutover.
Redis is the riskiest shared state in the whole cutover. Doing it first means the app move inherits an already-proven Redis.
— the logic behind sequencing this migration
Two networks connected on purpose, access locked down to exactly what needs it.
Stood up the new HA Redis, proved it worked, then copied all 14k keys across — no cold-start slowdown.
Drained pc-x-2 from live traffic, repointed it alone, and verified it worked in isolation before touching anything else.
pc-x-2 wrote a key; pc-x-1 read and wrote it back; pc-x-2 saw the change — both servers truly share one Redis.
Swapped the second server behind the load balancer while pc-x-2 kept serving — so nobody ever saw an interruption.
Turned background workers back on for both servers and verified everything end to end.
The load balancer always had one healthy server. We drained the one being changed, repointed it, verified it, then let it rejoin — same trick in reverse for the other.
Background workers paused during the final copy so the source couldn't change mid-flight. The copy matched key-for-key. The old Redis was only ever read, never touched — an instant rollback.
A shared Redis would let Papercut evict our main app's keys — sharing would couple two systems that should stay independent.
Tuned so the no-expiry durable keys — feature flags, invoice locks — are always safe.
The old Memorystore had no auth at all — this is a real security upgrade.
Left running for a few days as an instant rollback before deleting it.
Keep the old Memorystore ~2–3 days as a safety net, then delete it for the monthly savings. planning
Move on with the broader Papercut→GKE migration — the Redis cutover is de-risked and rehearsed. planning
← → navigate · O overview