In August 2008, Netflix suffered a major database corruption, and for three days it could not ship DVDs to its members.
Netflix's conclusion was bigger than "fix the database". In its own words, it had to "move away from vertically scaled single points of failure, like relational databases in our datacenter, towards highly reliable, horizontally scalable, distributed systems in the cloud." Vertically scaled means one big machine you keep upgrading; if it breaks, everything stops. Horizontally scaled means many ordinary machines sharing the work, so losing one doesn't matter.
Netflix picked Amazon Web Services. Then it made the choice that explains why this took so long. The easy route was to "forklift" every system, unchanged, into AWS, but as Netflix put it, "you end up moving all the problems and limitations of the data center along with it." It chose to rebuild "virtually all of our technology" to be cloud-native, "fundamentally changing the way we operate".
The move took seven years, while the business kept growing. Netflix grew to eight times as many streaming members as in 2008, and viewing grew by three orders of magnitude (about a thousand times) in eight years. In early January 2016, Netflix shut down the last remaining bits of its data center. That same month it launched in more than 130 new countries.
Netflix said cost was not the main reason for the move, but its cloud cost per streaming start ended up "a fraction" of the data center's. Its availability rose steadily too, nearing its goal of "four nines" (99.99%) of uptime.
- 3 days without shipping DVDs in 2008
- 7 years of migration, August 2008 to January 2016
- 8x streaming members over the period
- About 1,000x growth in viewing in eight years
Why it matters: A migration can be a lift-and-shift or a redesign. Netflix chose the slow, hard redesign because the old design was the problem. Moving it to a new place would have moved the problem too.