Platform & DevOps·topic 7 of 9
Running it: capacity, failure and recovery
The service works. Now it has to keep working through a zone going dark, a certificate expiring and a team that has never restored a backup. This is the vocabulary of the layer that has to survive, and of the team whose product is that layer.
Read in order · tick what you already know
- 01
one datacentre lost power and a third of your instances went with it, which is the unit this is designed around.
Availability zone
- 02
everything you run is in one geography, and a customer in another continent pays a hundred and fifty milliseconds for it.
Cloud region
- 03
you can survive an entire region disappearing, and you now have a data replication problem in every single service.
Multi-region
- 04
both sites take live traffic all the time, so you already know the second one works when the first one dies.
Active-active
- 05
the second site sits there costing money and serving nothing, and the day you need it you find out which four things were never replicated.
Active-passive
- 06
a scaled-down copy runs continuously with the data replicating, and recovery is a scale-up rather than a build-out.
Warm standby
- 07
the original site came back and moving home turned out to be harder than the failover was, because the standby now holds the newer data.
Failback
- 08
the control plane was down for an hour and traffic kept flowing, because nothing in the request path needed to ask it anything.
Static stability
- 09
customers are divided across eight complete copies of the stack, so a bad deploy or a poison request takes out an eighth of them.
Cell-based architecture
- 10
each customer is assigned a random pair of workers rather than one, so two customers rarely share both and one bad tenant cannot take out everyone.
Shuffle sharding
- 11
the plan for the day a whole region, account or dataset is gone, written down and hopefully rehearsed once a year.
Disaster recovery
- 12
the business says four hours, and the restore has never been timed, so nobody knows whether that is true.
Recovery time objective
- 13
backups run nightly, so recovering means losing up to a day of writes, and nobody outside the platform team knew that.
Recovery point objective
- 14
you restore the backup into a scratch environment on a schedule, because a backup nobody has restored is a hypothesis.
Restore testing
- 15
you deliberately add two hundred milliseconds to one dependency in production and watch what the rest of the system does.
Fault injection
- 16
you run at sixty percent so a zone failure or a traffic spike does not immediately become an outage.
Headroom
- 17
the instance was fast for twenty minutes and then abruptly slow, because it had been spending credits it had run out of.
Burst capacity
- 18
one team's runaway job could not consume the whole cluster, because their slice had a declared ceiling.
Resource quota
- 19
several teams or customers share one cluster, and every performance question becomes 'is it us or is it them'.
Multi-tenancy
- 20
you decide whether a namespace is enough or whether each customer needs their own cluster, and the answer is about who you are defending against.
Tenant isolation
- 21
the managed database will be restarted by the provider at some point inside a four-hour window you chose months ago.
Maintenance window
- 22
you fell four versions behind and now the upgrade is a project, because you can only move one version at a time.
Patch cadence
- 23
before it can take real traffic, someone checks it has alerts, a runbook, a rollback, an owner and a restore that has been tested.
Operational readiness review
- 24
the twenty-minute manual thing you did every Tuesday for a year became a controller that does it without telling you.
Toil automation
- 25
you got a database, a queue and a domain name by opening a pull request instead of by waiting four days for a ticket.
Self-service platform
- 26
doing it the standard way gets you logging, tracing, secrets and a pipeline for free; doing it your own way is allowed and unsupported.
Paved road
- 27
a team's output is not a feature but the thing forty other engineers use to ship features safely.
Platform engineering
- 28
the platform team runs interviews, publishes a roadmap and measures adoption, because their users can always route around them.
Platform as a product