Image source: my 6 yo daughter
Alex FernándezDeveloper with 15+ years of experience
How to Flow
Flow with Requirements
Flow with Operational Constraints
Don't Stop Flowing


And we like when things flow smoothly!

And you should adapt to them
80s: minicomputers & terminals
90s: client-server
00s: three tiers
10s: NoSQL

Does not exist


Spot the seven differences



From 38 to 112 krps in one day
… to a new cloud provider?
… to a new hosting company?
… to your own datacenter?
It matters because costs escalate quickly
are painful efforts
but shouldn't be
Build a compatibility layer
Avoid downtime at all costs
Treat access and data separately
Have a reverse migration strategy…
… but try not to use it
Warning: may not apply to your situation
Migration to Amazon virtual private cloud
Tried on 2015-03-03
Reversed on 2015-03-05
Due to an unrelated failure (!)
Tried again on 2015-03-11
Migrated EU on Friday the 13th
because who's afraid of superstitions?
Migrated from AWS to Facebook datacenters
Year-long effort, from 2013-03 to ~2014-03
Had to go through AWS VPC first
Neti — a dynamic iptables manipulation daemon in Python
Three weeks into VPC, two weeks to FB
Bare minimum approach (!)
Also migrating datacenters
Will start sending 10% of traffic
from new datacenter
Inter-datacenter latencies
Build a compatibility layer
Avoid downtime at all costs
Have a reverse migration strategy…

The only way to fly supersonic fighters
Use safe defaults
Fail safely

Or stay put and never break anything

Or anything in between