Free — no signup required

Control Plane vs. Data Plane Outages

2 min read

This is the most technically critical concept in Black Swan Engineering, and the one most engineers don't fully internalize until they've experienced it in production.

The Two Planes

Every cloud system has two distinct layers:

Data Plane: The infrastructure that does the actual work — serving requests, processing data, routing packets. Your running EC2 instances, the network packets flowing through a load balancer, a Lambda function executing your code. The Data Plane is what your customers interact with.

Control Plane: The machinery that configures and manages the Data Plane. The AWS API you call to launch a new EC2 instance. The system that updates Auto Scaling Group desired capacity. The IAM service that validates credentials. The DNS service that resolves your domain. The Control Plane is what you (and AWS automation) interact with to change the system.

The Black Swan Scenario

The critical insight: the Control Plane can fail while the Data Plane keeps running.

Consider this scenario:

  • AWS IAM experiences a global outage.
  • You cannot log into the AWS console.
  • You cannot call any AWS API (every API call requires IAM authentication).
  • You cannot launch new servers, update Auto Scaling Groups, or push new deployments.
  • BUT: Your existing EC2 instances, which authenticated hours ago, are still running perfectly. Your load balancer is still routing traffic. Your database is still accepting queries.

Your customers may not notice anything. You are in a crisis — you've lost all ability to respond to any other failure that might occur — but the Data Plane is intact.

The inverse is also possible but rarer: the Data Plane fails while the Control Plane works (e.g., a network partition isolates your servers from users, but you can still call APIs).

Engineering Goal: Your system must be able to continue serving customers (Data Plane survival) even when you cannot change anything (Control Plane failure). And your incident response must account for the possibility that your normal tools — Terraform, kubectl, the AWS console — are unavailable.

This is one of 18 chapters

Every chapter is free — Kubernetes, Terraform, SRE, distributed systems, and more — with fast daily review built in.

Sign up free