Practice & Reference · Case Study · Real company

Netflix & the Platform Behind Continuous Global Delivery

This is a real, named company's story, and this page sticks to what Netflix's own engineers have said about it in public — the Netflix TechBlog, conference keynotes, and Netflix's own corporate-blog retrospectives. Two threads run through it: a continuous-delivery platform (Spinnaker) that turned deploying to production from a rare, careful event into a boring daily habit performed thousands of times a day, and a chaos-engineering practice (Chaos Monkey, the Simian Army, Chaos Kong) that made "this will eventually break" a design assumption instead of a surprise. Where the public record runs thin — and, importantly, where Netflix's own infrastructure history diverges from the Kubernetes-native path this course teaches — this page says so plainly.

☺ Explain it like I'm 10

Imagine a huge school where teachers built a smooth, clearly-marked hallway with all the right tools already laid out — so building a science project the recommended way is faster than doing it alone, even though nobody is forced to use it. Now imagine that same school also runs surprise fire drills constantly, on purpose, sometimes unplugging a whole classroom's lights in the middle of a normal Tuesday, just to make sure everyone already knows what to do before a real fire ever happens. That's Netflix: a paved hallway (the platform) plus deliberate, scheduled chaos (breaking things on purpose) so nothing that happens for real is ever the first time anyone has seen it.

🦊🦫Your hosts for this case file: Foxy & Benny the Beaver — Foxy investigates why a video-streaming company ended up inventing chaos engineering, and Benny translates what she finds into the pipeline and progressive-delivery concepts you've already met on CI/CD & Progressive Delivery and Argo Rollouts. Ellie the Elephant and Timmy the Turtle drop in too — chaos engineering is really reliability work wearing a mischievous mask.

The starting situation: a three-day outage bets the company on someone else's datacenter

☺ Like you're 10: A really bad three-day breakdown convinced Netflix that building its own computer rooms wasn't its actual talent — so it decided to rent someone else's instead.

Three days without a single DVD shipped

In August 2008, before streaming existed as Netflix's main business, a database corruption event took down the DVD-shipping system that ran the company's core (at the time, only) business — for three days, no discs went out to any of Netflix's shipping centers. Netflix engineers, including longtime cloud architect Adrian Cockcroft, have recounted this incident repeatedly in public talks over the years as the trigger for a hard strategic conclusion: Netflix had discovered it wasn't particularly good at building and running datacenters, and datacenter operations weren't where the company's competitive advantage lived. Its advantage was getting movies to members reliably. Vertically-integrated, single-point-of-failure infrastructure was actively working against that goal.

An eight-year bet, finished quietly

The decision that followed was to move Netflix's infrastructure to a public cloud rather than keep building private datacenters — and Netflix chose Amazon Web Services. This wasn't a weekend project. Per Netflix's own "Completing the Netflix Cloud Migration" post on its corporate blog, the migration ran for roughly seven years, with substantially all customer-facing systems moved before 2015 and the last pieces — including billing infrastructure — following after. In January 2016, Netflix shut down the last of its owned datacenter capacity for the streaming service. The point of quoting that timeline in a platform-engineering course isn't the number of years; it's that a foundational infrastructure bet, made under outage pressure, still took the better part of a decade to finish honestly and safely.

⚠ Read the "why AWS" story as a strategic argument, not just history

The lesson Netflix engineers have repeated across many public retellings isn't "always use the cloud" — it's "know which parts of your infrastructure are actually your competitive advantage, and stop spending your best engineers on the parts that aren't." That argument transfers to far smaller companies than Netflix; the specific decision to use AWS, at Netflix's specific 2008 moment, is one instance of applying it.

Freedom and responsibility: the Paved Road, not a mandate

☺ Like you're 10: Nobody at Netflix is forced to use the recommended tools — but the recommended tools are built to be so much less painful than going it alone that almost everyone chooses them anyway.

What "freedom and responsibility" means for an engineer

Netflix's engineering culture is widely known through the "Freedom & Responsibility" framing popularised in Reed Hastings and Patty McCord's famous internal culture deck, first published publicly around 2009. Applied to platform engineering specifically, the Netflix TechBlog post "How We Build Code at Netflix" sets out the resulting trade-off in one sentence worth sitting with: teams have the freedom to implement alternative solutions, but they also take on additional responsibility for maintaining these solutions. Nobody is blocked from building something bespoke. But if you go off the paved road, the platform team's on-call rotation, tooling, and support don't automatically follow you there — you own what you built, end to end.

What the Paved Road actually contains

The same post describes a specific, named set of tools that Netflix's central Engineering Tools team builds and maintains as the "paved road" — deliberately made compelling enough, and low-friction enough, that most teams choose it over rolling their own.

Paved-road pieceWhat it does
NebulaA suite of Gradle plugins for building, testing, and packaging applications the same way across the company
JenkinsContinuous integration — the TechBlog post cites roughly 25 Jenkins masters running in AWS at the time of writing
The BakeryAn internal API service that "bakes" a versioned Amazon Machine Image (AMI) from a build artifact, using a tool called Aminator
SpinnakerThe continuous-delivery platform that takes a baked image and rolls it out — the deep dive of this whole case study, below
◆ Key idea

A paved road that has to be mandated to get adoption has already failed at being a paved road. Netflix's model works because the Engineering Tools team explicitly optimises for one metric: is this compelling enough, with low enough cognitive load, that engineers choose it? A platform nobody would voluntarily use, propped up by a policy that forbids alternatives, is a much weaker platform wearing a badge.

Full Cycle Developers: operate what you build

☺ Like you're 10: Instead of one team building the toy and a totally different team getting blamed when it breaks at 2am, the same people do both — so they build things that are actually easy to fix.

The 2012 problem this solved

Netflix's 2018 TechBlog post "Full Cycle Developers at Netflix — Operate What You Build," written by Greg Burrell, is candid about the problem it was responding to: back around 2012, Netflix had separate developer and operations specialists, and that split produced slow deployments, weak canary analysis, and debugging that got fragmented across a hand-off boundary every time something broke. The fix wasn't better hand-off documentation between the two groups — it was dissolving the boundary. The team that builds a system is also the team that operates and supports it.

"Think and act like an SWE, SDET, and SRE"

The post's own words for what this demands of an engineer are direct: think and act like a software engineer, a test engineer, and a site-reliability engineer, all at once, across the full lifecycle — design, development, testing, deployment, operations, and support. That's a real increase in what any one person needs to hold in their head, and the post doesn't pretend otherwise.

⚠ The tradeoff the post names explicitly

Netflix's own account acknowledges the downside: broader responsibility raises cognitive load, and without the right staffing levels, tooling, and a sane on-call rotation, "full cycle" risks becoming a euphemism for burnout. The model only works because Netflix invests heavily in the platform layer underneath it — see the next section — precisely so individual engineers aren't left operating raw infrastructure themselves.

Centralized teams as force multipliers, not gatekeepers

The move to full-cycle ownership didn't mean abolishing central teams — it repositioned them. Netflix organised specialist groups like Cloud Platform, Performance & Reliability Engineering, and Engineering Tools around one job: turn deep infrastructure expertise into reusable building blocks (Spinnaker, Atlas for monitoring, the paved-road tooling above) that every full-cycle team can pick up, rather than every team re-solving the same infrastructure problem alone. This is the same shape covered in more depth on Platform as a Product & Golden Paths and Team Topologies: a platform group as an enabling force, not an approval queue.

Spinnaker: continuous delivery at global, multi-cloud scale

☺ Like you're 10: Spinnaker is the conveyor belt that takes a finished build and carefully, automatically, rolls it out to millions of people around the world without anyone touching a keyboard at 3am.

From Asgard to a general-purpose platform

Spinnaker's direct predecessor was Asgard, an internal Netflix tool for managing AWS deployments. Per Netflix's own 2015 TechBlog post announcing Spinnaker, "Global Continuous Delivery with Spinnaker," the team built Spinnaker after studying how various Netflix teams had already independently implemented continuous delivery to the cloud, and generalising the common patterns into one reusable platform — deliberately kept compatible with Asgard so the transition wasn't a hard cutover. Architecturally, the post describes it as a collection of JVM-based backend services fronted by a customisable AngularJS single-page app, all exposed through a RESTful API gateway.

Bakes, pipelines, and Red/Black deploys

Spinnaker organises delivery into pipelines built from configurable stages, which can run in parallel or in sequence and can be triggered by a Jenkins build finishing, a cron schedule, another pipeline, or a person clicking a button. A typical stage bakes a new Amazon Machine Image via the Bakery, then deploys it using what Netflix calls Red/Black deployment — the same blue-green pattern under a different name: stand up the new version fully alongside the old one, shift traffic across, and keep the old version disabled-but-present for an instant rollback. The shape below is an illustrative summary of that stage sequence, not a literal Netflix pipeline definition:

Pipeline: "deploy-recommendations-service"
  trigger: on Jenkins job "recommendations-build" success
  stage 1: Bake            → produce a new AMI from the build artifact
  stage 2: Deploy (Red/Black) → stand up new server group ("black") at 0% traffic
  stage 3: Manual Judgment  → an engineer (or an automated canary check) approves
  stage 4: Enable "black"   → shift traffic; keep "red" (old) running, disabled
  stage 5: Disable "red"    → old server group stays for a fast rollback, then is pruned

Later, Spinnaker evolved further with Managed Delivery — reaching an early alpha with internal teams around October 2019, per the Spinnaker community blog — which pushed pipeline definitions out of the point-and-click UI and into a declarative configuration file per application, checked into source control. If that sentence sounds familiar, it should: it's the same "declarative desired state, versioned in Git" idea this course covers in full on the GitOps page, arrived at independently by Netflix's delivery-engineering team for the same underlying reason — a UI-built pipeline that nobody reviews in a pull request drifts, and nobody can say why.

Open source, multi-cloud, and handing it to a foundation

Netflix open-sourced Spinnaker in 2015 and partnered with Google, Microsoft, and Pivotal to add first-class support for deploying to Google Cloud Platform, Azure, and Cloud Foundry alongside AWS — genuinely multi-cloud continuous delivery, not an AWS tool with other providers bolted on as an afterthought. In March 2019, Netflix and Google jointly donated Spinnaker to the newly formed Continuous Delivery Foundation (part of the Linux Foundation), alongside Jenkins, Jenkins X, and Tekton — the same kind of "give away the standard before someone else's version becomes the standard" move covered in the Spotify & Backstage case study, this time for delivery tooling rather than a developer portal.

2008 3-day outage bets the company on the cloud 2012 Chaos Monkey open-sourced Jan 2016 AWS migration complete — last datacenter shut 2018 Titus (Mesos-based container platform) open-sourced Mar 2019 Spinnaker donated to the Continuous Delivery Foundation 2025–26 Titus adopts Kueue — a step toward being "more Kubernetes-native" Nearly two decades of platform investment — dates as reported by Netflix's own engineering and corporate blogs

Chaos engineering: breaking things on purpose, safely

☺ Like you're 10: Instead of hoping nothing ever breaks, Netflix breaks things on purpose, a little at a time, so everyone already knows exactly what to do the day something breaks for real.

Chaos Monkey and the Simian Army

Chaos Monkey — a tool that randomly terminates production instances so engineers can verify their systems survive that common failure mode without customer impact — was born during Netflix's migration to AWS and a microservice architecture, and Netflix open-sourced it on GitHub on July 30, 2012. Netflix's 2011 TechBlog post "The Netflix Simian Army" describes the full menagerie Chaos Monkey grew into, each one targeting a different failure mode:

"Monkey"What it does
Chaos MonkeyRandomly terminates individual production instances
Latency MonkeyInjects artificial delays into client-server calls to test how services handle degradation, and simulates node/service downtime
Conformity MonkeyFinds instances that don't follow best practices (for example, one not running inside an auto-scaling group) and shuts them down to force proper redeployment
Doctor MonkeyWatches health checks and external signals like CPU load, pulls unhealthy instances out of service, and eventually terminates persistently unhealthy ones
Janitor MonkeyFinds and cleans up unused resources cluttering the cloud environment
Security MonkeyFinds security-group misconfigurations and terminates the offending instances; also checks SSL and DRM certificates for validity
10-18 MonkeyDetects configuration and runtime problems in instances serving multiple geographic regions with different languages and character sets ("10-18" = i18n / l10n shorthand)
Chaos GorillaSimulates the loss of an entire AWS availability zone, to confirm services rebalance automatically with no user-visible impact

Chaos Kong: losing an entire region, on purpose

Netflix escalated the idea again with Chaos Kong, described in the TechBlog post "Chaos Engineering Upgraded": rather than one instance (Chaos Monkey) or one availability zone (Chaos Gorilla), Chaos Kong simulates the loss of an entire AWS region, evacuating live traffic to Netflix's other regions and watching the aggregate metrics to confirm the failover is clean before reverting. The same post credits this rehearsal directly: because Netflix had been running regular Chaos Kong exercises, it experienced only minimal disruption during the real September 2015 AWS DynamoDB outage in US-EAST-1 — a live failure that Chaos Kong drills had, in effect, already dress-rehearsed. Netflix's traffic-engineering team has continued investing in making that regional failover faster and cheaper: later TechBlog posts describe cutting the evacuation time down from around an hour to just a few minutes, and a later initiative — described in the post "Project Nimble: Region Evacuation Reimagined" — pushed it under ten minutes, while keeping the exercise cost-neutral.

🐒 Chaos Monkey one instance 🦍 Chaos Gorilla one availability zone 🦖 Chaos Kong an entire AWS region — full traffic evacuation increasing blast radius — escalated only once the smaller step is trusted

The Principles of Chaos Engineering

Netflix's own Chaos and Traffic teams, including Casey Rosenthal, later formalised the discipline as a written set of rules at principlesofchaos.org: form a hypothesis around a system's normal ("steady-state") behaviour, vary real-world events (server failures, latency, traffic spikes), and — crucially — run experiments in production, automated to run continuously, while minimising blast radius. That last discipline matters as much as the breaking itself; the whole practice depends on containing an experiment before it becomes a real incident, not on recklessness.

⚠ Don't copy the breakage without the safety engineering

"Randomly terminate production instances" sounds simple to imitate, but the parts that make it survivable at Netflix are the parts that don't make the headline: a documented hypothesis before every experiment, an explicit blast-radius limit, instant kill-switches, and — as the Principles site itself notes — an advanced practice of engineering safer ways to run experiments once the team had learned how much risk they actually carried. Skip those and you don't have chaos engineering; you have an outage you scheduled yourself.

What changed: the outcomes Netflix has actually published

☺ Like you're 10: A LOT more deploys happening safely every day, a real regional outage survived because of practice drills, and — very recently — a genuine step toward Kubernetes.

As with any self-reported figures, treat these as evidence the approach clearly worked, not as independently audited numbers with a published methodology.

What to steal for your own platform

☺ Like you're 10: You don't need Netflix's size to copy the habits — build the paved road, own what you ship, and practice for the bad day before it arrives.

Honest caveats: what doesn't transfer

☺ Like you're 10: A story built over almost twenty years, by one of the biggest engineering organisations on Earth, doesn't fit in a weekend — and it isn't even the Kubernetes story you might expect.

🦊 Foxy's stakeout · 15 min

Pick one service you own. Write down, in one sentence, its steady-state behaviour ("95% of requests to the checkout API complete under 300ms"). Now design the smallest possible chaos experiment that would test one assumption behind that sentence — kill one non-critical instance, or inject 200ms of latency into one dependency, in a staging environment first. Don't run it yet. Just write the hypothesis and the blast-radius limit down. That single sentence is the entire discipline Netflix scaled up to Chaos Kong — the escalation is optional; the hypothesis-first habit isn't.

🎬 At the Platform Guild
🦊

Foxy: So Netflix's answer to "our service might fail in production" was… to make it fail in production, on purpose, constantly?

🦫

Benny: Only after they'd already built the conveyor belt — Spinnaker bakes an image, rolls it out Red/Black, and can revert in seconds. Chaos engineering only works because there's a fast, safe rollback waiting underneath it.

🐘

Ellie: And notice the order — Chaos Monkey (one box), then Chaos Gorilla (one zone), then Chaos Kong (a whole region), years apart. Nobody woke up one Monday and unplugged US-EAST-1 for fun.

👺

Gizmo: Boooring. Skip the hypothesis, skip the blast-radius limit, just kubectl delete a bunch of stuff in prod and see what happens! Chaos! 🤑

🐢

Timmy: That's not chaos engineering, Gizmo, that's an unscheduled incident with extra steps. Write the steady-state hypothesis first, limit the blast radius, and only then break something.

🦆

Dot: Honestly the part I want isn't the monkeys — it's "you build it, you run it," with real platform tooling under me so that's a promise I can actually keep instead of a threat.

Where this connects in the course

☺ Like you're 10: This one company's story touches four different lessons — read whichever matches what you're building next.

The delivery-pipeline mechanics — bake, deploy, verify, promote, roll back fast — are the exact shape covered in full on CI/CD & Progressive Delivery, with the Kubernetes-native, GitOps-flavoured version of Red/Black and canary living on Argo Rollouts. How you package and promote the artifact that gets baked in the first place is Release Engineering, Images & Artifacts. The discipline of rehearsing failure before it happens for real — steady-state hypotheses, blast radius, and what to actually do when a region really does go down — is Reliability, SLOs & Incident Management. And the cultural half of this story, a paved road people choose rather than one they're forced onto, is the same territory as Platform as a Product & Golden Paths and the Spotify/Backstage story in that case study. For the other companies whose public stories sit alongside this one, return to the case studies hub.

🐢 Timmy's checkpoint

1. What 2008 incident is publicly credited with triggering Netflix's move to AWS, and what was the underlying strategic argument? 2. In Netflix's own words, what's the trade-off in "freedom to deviate from the paved road"? 3. What real-world problem did Full Cycle Developers replace, and what three roles must a full-cycle engineer "think and act like"? 4. Name Spinnaker's deployment strategy and what Netflix calls the more familiar name for it. 5. Put Chaos Monkey, Chaos Gorilla, and Chaos Kong in order of increasing blast radius, and say what each one destroys. 6. Why should a CNPE student be careful not to treat this case as a Kubernetes tutorial?

Check your answers
  1. A three-day database-corruption outage that halted the DVD-shipping business. The strategic argument, as Netflix engineers have retold it, was that running datacenters wasn't Netflix's competitive advantage, and continuing to invest in it directly worked against the goal of reliably delivering video to members.
  2. "Teams have the freedom to implement alternative solutions, but they also take on additional responsibility for maintaining these solutions" — you can go off the paved road, but the platform team's tooling and support don't automatically follow you there.
  3. It replaced a split between developer and operations specialists that produced slow deploys, weak canary analysis, and fragmented debugging across the hand-off. A full-cycle engineer must think and act like an SWE (software engineer), an SDET (test engineer), and an SRE (site-reliability engineer).
  4. Red/Black deployment — Netflix's own name for the blue-green deployment pattern.
  5. Smallest to largest: Chaos Monkey (one production instance) → Chaos Gorilla (one AWS availability zone) → Chaos Kong (an entire AWS region).
  6. Because Netflix's core container platform, Titus, was historically built on Apache Mesos, not Kubernetes, and only began incorporating Kubernetes-ecosystem components (like Kueue) very recently, per Netflix's own 2026 blog post — the transferable lessons here are the paved-road and chaos-engineering ideas, not a specific Kubernetes architecture to copy.