ArchitectMind
  1. Home
  2. Tutorials
  3. Book 8 · Architecture Quality Attributes
  4. Volume VII
  5. Operational Readiness
Book 8 · Volume VII — Operability, Observability & Deployability · Topic 1.2

Operational Readiness

Runbooks, alerts and dashboards that work at 3 a.m.

10 min readStage 3 · Systems10 interview questions
Chapter
Chapter 1 — Operability
Prerequisites
Topic 1.1; Volume IV SLOs
You will be able to
Define what operational readiness means for a service, write runbooks that a non-author can follow, design actionable alerts linked to runbooks, lay out dashboards that answer "is it us?" in 30 seconds, manage these assets as code, and verify readiness through game days
Covers
Operational readiness — runbooks, alerts, dashboards
On this page
  1. 1. Concept / Definition
  2. 2. Why It Exists
  3. 3. Core Concepts — Operational Readiness
  4. 4. How It Works Internally — Readiness as Code
  5. 4A. Deep Dive — Game Days
  6. 5. APIs / Features / Syntax
  7. 6. Practical Examples
  8. 7. Common Problems & Mistakes
  9. 8. Performance & Production Considerations
  10. 9. Architecture & Design Considerations
  11. 10. Interview Questions & Answers

1Concept / Definition

Operational readiness is the state in which a service, its people and its tools are prepared to operate it in production: the team knows when to act (alerts), what's happening (dashboards), how to act (runbooks) and who acts (ownership and on-call). It is proven, not declared.

Operational readiness assets
Figure 1 — Operational readiness assets
AssetAnswersQuality test
AlertsWhen must someone act?Actionable, symptom-based, owned
DashboardsWhat is happening and is it us?Answer in 30 seconds
RunbooksWhat should I do?Non-author can follow at 3 a.m.
On-call + escalationWho acts and who helps?Reachable, trained, sustainable
Table 1 — Readiness assets
VocabularyMeaning
RunbookStep-by-step guide for an operational scenario
PlaybookBroader incident process (roles, comms)
Game dayPlanned exercise simulating failures
AnnotationMarker on a graph for deploys, flags, incidents
Table 2 — Terms

2Why It Exists

Unready service symptomEffect
Alert fires, nobody knows what it meansDelay, guesswork
Dashboards with 60 panelsCan't find the signal
Runbook says "contact Ravi"Single point of knowledge
No owner in catalogPages go to the wrong team
Table 3 — Why readiness matters

3Core Concepts — Operational Readiness

3.1 Runbooks

Runbook structure
Figure 2 — Runbook structure
Runbook quality ruleExample
Start from the alert/symptom"CheckoutErrorBudgetBurnFast"
State impact"Customers can't place orders; revenue ~₹45k/min"
Link exact dashboards and queriesGrafana URL with variables pre-set
Safe actions firstRollback latest deploy; disable optional features
Decision points"If pricing latency > 500 ms → go to section 4"
EscalationWhen and whom (with contact routing, not names)
Verification"Error rate < 0.5% for 10 min"
Table 4 — Runbooks

3.2 Alerts

Good alert checklist
Figure 3 — Good alert checklist
Alert categoryExamplePage?
SLO burn (fast)Checkout availability burn 14.4× over 1 hPage
SLO burn (slow)6× over 6 hTicket
Synthetic journey failure3 consecutive failuresPage
Cause-based (CPU, pod restarts)For diagnosisNo page — dashboard
Table 5 — Alert tiers (Chapter 4 for detail)

3.3 Dashboards

Service dashboard layout
Figure 4 — Service dashboard layout
Dashboard typeAudience
Service overview (above)On-call
Journey dashboard (checkout end-to-end)Incident commander
Business dashboardProduct, leadership
Platform dashboardsPlatform team
Table 6 — Different dashboards for different questions

4How It Works Internally — Readiness as Code

AssetAs code
AlertsPrometheusRule YAML in service repo
DashboardsJsonnet/Grafonnet or Terraform Grafana provider
RunbooksMarkdown in repo, rendered in portal; automation via SSM documents
OwnershipBackstage catalog-info.yaml (owner, on-call, tier, runbook links)
On-callPagerDuty schedules via Terraform
Table 7 — Versioned, reviewed, templated

4ADeep Dive — Game Days

StepDetail
Choose scenarioPricing latency spike, Kafka broker loss, bad deploy
Inject (staging or prod with guardrails)FIS, flag, fault injection
ObserveDid the right alert fire? Did it reach the right person?
ActOn-call follows runbook without author help
ReviewGaps → tickets (alerts, dashboards, runbooks)
Table 8 — Readiness proven by practice
Readiness coverage (Tier 0/1 services)
Figure 5 — Readiness coverage (Tier 0/1 services)

5APIs / Features / Syntax

YAML
# PrometheusRule with ownership, severity and runbook link
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata: { name: checkout-slo, labels: { team: checkout } }
spec:
  groups:
    - name: checkout.slo
      rules:
        - alert: CheckoutErrorBudgetBurnFast
          expr: |
            (sum(rate(http_server_requests_seconds_count{
                 service="checkout",status=~"5.."}[1h]))
             / sum(rate(http_server_requests_seconds_count{
                 service="checkout"}[1h]))) > (14.4 * 0.001)
          for: 2m
          labels: { severity: page, team: checkout, tier: "0" }
          annotations:
            summary: "Checkout burning error budget 14x"
            runbook_url: "https://runbooks.shopnow.in/checkout/error-budget-burn"
            dashboard: "https://grafana.shopnow.in/d/checkout-overview"
YAML
# Backstage catalog entry: owner, tier, on-call and runbooks discoverable
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: checkout
  annotations:
    pagerduty.com/service-id: P7X1ABC
    grafana/dashboard-selector: "checkout-*"
  links:
    - { url: "https://runbooks.shopnow.in/checkout", title: Runbooks }
spec:
  type: service
  owner: team-checkout
  lifecycle: production
  system: storefront
  tier: "0"
MARKDOWN
# Runbook: CheckoutErrorBudgetBurnFast
Impact: customers cannot place orders (≈ ₹45k/min at peak).
1. Open dashboard (link). Check "Deploys & flags" row: deploy in last 30 min?
   → YES: abort rollout:
     `kubectl argo rollouts abort checkout -n checkout`. Verify in 5 min.
2. Dependency row: which downstream error/latency rose? pricing → go to §4; payments → §5.
3. Optional features: disable `checkout.recommendations` and `checkout.reviews` flags.
4. Escalate: if not improving in 15 min, page incident commander
   (PagerDuty "IC-storefront").
Verify: 5xx < 0.1% and p99 < 400 ms for 10 min; synthetic checkout green.

6Practical Examples

6.1 Game day found missing runbook step

In a staged pricing-latency game day, the on-call followed the runbook but didn't know how to switch checkout to cached prices. The step (flag name and verification) was added; the next game day resolved in 7 minutes.

6.2 Dashboard redesign

The old checkout dashboard had 64 panels. The new layout (SLOs → golden signals → dependencies → resources, with deploy annotations) cut median time to "is it us?" from 6 minutes to under 1 minute in incident reviews.

6.3 Ownership in the catalog

Before Backstage ownership metadata, 14% of alerts routed to the wrong team. Routing by catalog owner reduced misroutes to under 1%.

6.4 Worked example — runbook coverage by alert

AlertRunbookGame-day tested
CheckoutErrorBudgetBurnFast✔✔ (Q2)
CheckoutLatencyBurnFast✔✔ (Q3)
SyntheticCheckoutFailing✔✔
PaymentsPspDegraded✔✘ → scheduled
Table 9 — Coverage matrix

6.5 Worked example — dashboard questions per row

RowQuestion
SLOsAre users affected? How much budget left?
Golden signalsWhich endpoints? Since when?
DependenciesIs a downstream the cause?
ResourcesAre we saturated?
AnnotationsWhat changed?
Table 10 — Design dashboards around questions

6.6 Worked example — on-call sustainability

MetricTargetShopNow
Pages per shift< 21.4
Night pages per week per team< 10.6
Rota size≥ 6 people6–8
Follow-the-sun for Tier 0Yes (IST + EU office)Yes
Table 11 — Readiness includes humane on-call

6.7 Worked example — interview whiteboard

PromptAnswer outline
"How do you make a new service operationally ready?""Four assets: symptom-based, owned alerts (SLO burn, synthetics) that link to runbooks and dashboards; top-down dashboards — SLOs, golden signals, dependencies, resources, with deploy and flag annotations; runbooks written from the alert's point of view with safe actions first, decision points, escalation and verification; and ownership plus on-call in the service catalog. Manage all as code, and prove readiness with game days run by someone who didn't build it."
Table 12 — Structured answer

6.8 Worked example — automated runbook steps

StepAutomation
Collect diagnostics (thread dump, heap histogram)Button in portal → SSM/K8s job, attaches to incident
Abort rolloutChatOps command /rollback checkout
Disable optional featuresChatOps /flag off checkout.recommendations
Table 13 — Runbooks become tools over time

6.9 Worked example — PayGrid readiness

AssetSpecial requirement
RunbooksInclude regulatory notification steps and templates
DashboardsPer cell and per acquirer
AlertsPer-partner anomaly alerts routed to partner success
Game daysAcquirer failover every month
Table 14 — Domain-specific readiness

6.10 Worked example — templated readiness for new services

Template outputContent
AlertsSLO burn (fast/slow), synthetic, saturation
DashboardStandard four-row layout
Runbook skeletonSections pre-filled with links
Catalog entryOwner, tier, on-call
Table 15 — Paved road makes readiness default

6.11 Worked example — anti-patterns

Anti-patternProblem
Runbooks in personal notesUnavailable to others
Alerts without runbooksGuesswork
Dashboards built during incidentsToo late
Runbooks never exercisedWrong when needed
Table 16 — Readiness failures

6.12 Worked example — readiness review agenda (30 min)

ItemEvidence
SLOs and alertsRules in repo, test firing
DashboardsLink, walkthrough
RunbooksTop 5 failure modes
On-callSchedule, escalation
Game dayDate and results
Table 17 — Short, evidence-based

6.13 Worked example — post-incident readiness updates

Incident findingReadiness change
Alert fired 12 min lateFaster burn window
Runbook missing Kafka lag stepAdded
Dashboard lacked cell filterVariable added
Table 18 — Every incident improves readiness

6.14 Worked example — readiness metrics

MetricValue
Alerts with runbook links97%
Runbooks exercised in last 6 months84%
Mean time "is it us?" in incidents< 1 min
Misrouted pages< 1%
Table 19 — Readiness measured

7Common Problems & Mistakes

MistakeFix
Cause-based pages (CPU)Symptom/SLO alerts
Dashboards without structureQuestion-driven layout
Runbooks that say "investigate"Concrete checks and safe actions
Readiness not testedGame days
Assets outside version controlReadiness as code
No owner metadataCatalog
Table 20 — Mistakes and fixes

8Performance & Production Considerations

ConsiderationPractice
Dashboard query costRecording rules for heavy queries
Alert evaluation loadReasonable intervals; recording rules
Game days in productionGuardrails, off-peak, stop conditions
Table 21 — Operating readiness assets

Readiness assets are production systems in their own right and need the same care. Heavy dashboard queries over 30-day windows can overload Prometheus or Grafana exactly during an incident, when everyone opens the same dashboard at once; pre-compute them with recording rules and keep panel counts modest. Alert evaluation has a cost too, so use sensible evaluation intervals and build burn-rate alerts on recording rules rather than on raw high-cardinality series. The observability stack should not share failure modes with what it monitors: run it in a separate account or cluster, and alert on the alerting pipeline itself with a dead-man's-switch heartbeat. Game days in production need guardrails: run them off-peak, limit the blast radius, define stop conditions in AWS Fault Injection Service and have a named person ready to abort.

9Architecture & Design Considerations

GuidelineDetail
Readiness assets part of definition of doneNot post-launch
Templates via platformConsistency
Ownership metadata centralRouting and discovery
Practice regularlyGame days
Table 22 — Design guidance

10Interview Questions & Answers

Q1BasicConcept

What is operational readiness?

Operational readiness is the state in which a service, its people and its tools are prepared to run it in production, and it must be proven, not declared. It rests on four assets. Alerts tell the team when to act, and must be symptom-based, actionable and owned. Dashboards show what is happening and answer the question 'is it us?' within 30 seconds. Runbooks tell a non-author what to do at 3 a.m. Ownership and on-call define who acts and who helps. The proof is a game day: if an engineer who did not build the service can resolve a simulated failure using these assets, it is ready.

Q2BasicConcept

What makes a good runbook?

A good runbook is written from the alert's point of view, for someone who did not build the service. It starts with the alert or symptom name and states the business impact, such as customers being unable to order at about ₹45,000 a minute. It links the exact dashboards and queries, already filtered. It lists safe actions first, such as aborting the latest rollout or disabling optional features, then decision points, such as going to section 4 if pricing latency exceeds 500 ms. It defines escalation by role or rota rather than by a person's name, and ends with verification criteria, such as error rate below 0.5% for ten minutes.

Q3IntermediateDesign

What should a service dashboard show first?

It should first show whether users are affected: SLO attainment and remaining error budget for the service's key journeys. Next come the golden signals per endpoint, meaning traffic, errors, latency percentiles and saturation, so on-call can see what is failing and since when. Below that, a dependency row shows the error rate and latency of each downstream call, answering whether the cause is us or them, followed by resources such as CPU, memory, pools and pods. Deploy, feature-flag and incident annotations overlay every graph to show what changed. ShopNow's redesign from 64 panels to this layout cut the median time to answer 'is it us?' from six minutes to under one.

Q4IntermediateConcept

What makes an alert good?

A good alert means a human must act now, and it helps them do so. It is symptom-based, firing on what users experience, such as fast SLO burn or a failing synthetic checkout, rather than on causes such as high CPU, which belong on dashboards. It is actionable, with a clear next step, and owned, routed to the team that runs the service through catalog metadata. It links its runbook and dashboard in its annotations. It is tested, having fired in staging or a game day, and rare, because frequent pages create fatigue and get ignored. Slow-burn conditions should open tickets rather than wake people.

Q5Senior EngineerDesign

How do you keep readiness assets current?

Manage them as code in the service repository, so they change in the same pull request as the code that affects them. Alerts are PrometheusRule YAML, dashboards are Jsonnet, Grafonnet or Terraform, runbooks are Markdown rendered in the developer portal, and ownership lives in a Backstage catalog-info.yaml file. Generate the baseline from platform templates so every new service starts complete. Then add feedback loops: every incident review checks whether the alert, dashboard and runbook helped and creates fixes; game days reveal stale steps; and readiness reviews check coverage metrics, such as the share of alerts with runbook links and of runbooks exercised recently.

Q6Senior EngineerConcept

What is a game day?

A game day is a planned exercise in which the team deliberately injects a realistic failure to test whether detection and response actually work. You choose a scenario, such as a pricing latency spike, the loss of a Kafka broker or a bad deploy, and inject it in staging, or in production with guardrails, using AWS Fault Injection Service, a feature flag or a fault proxy. Then you observe whether the right alert fired and reached the right person, and whether the on-call engineer could resolve it using only the runbook and dashboard. Every gap becomes a ticket, and the exercise is repeated until resolution is fast.

Q7Technical ArchitectInternals

How do you route alerts correctly?

Route by ownership metadata, never by hard-coded names or a shared channel. Each service's catalog entry in Backstage records its owning team, tier and PagerDuty service. Alert rules carry team and severity labels, and Alertmanager or the paging tool routes on those labels to the owner's escalation policy, with severity deciding between a page and a ticket. When ownership changes, one catalog edit updates routing everywhere. A CI check that fails when a service has no owner or an alert has no team label keeps the data complete. At ShopNow, routing by catalog owner cut misrouted pages from 14% to under 1%.

Q8Technical ArchitectDesign

How do runbooks evolve?

Runbooks start as documents and gradually become tools. When a step is repeated across incidents and is safe, such as collecting a thread dump and heap histogram, aborting a rollout or disabling an optional feature flag, it gets automated: a portal button that runs an SSM Automation document or Kubernetes job, or a ChatOps command such as /rollback checkout. Automation removes typing errors under pressure, records what was done in the incident timeline and cuts time to mitigation. Judgement steps stay human, but the runbook calls the tools. Every incident and game day feeds the runbook, adding missing steps and removing stale ones.

Q9Solution ArchitectDesign

How do you prove readiness?

Prove it by exercise, with measurements, rather than by checking that documents exist. Run game days in which an engineer who did not build the service handles injected failures using only the alerts, dashboards and runbooks, and measure time to detect, time to reach the right person and time to resolve. Back this with coverage evidence: alert rules in the repository with test firing, a runbook link on every alert, runbooks exercised in the last six months, and the on-call schedule and escalation configured. A 30-minute readiness review checks the evidence before launch. ShopNow's pricing game day initially exposed a missing step and, after fixes, resolved in seven minutes.

Q10Solution ArchitectBehavioural

How do you keep on-call sustainable?

Keep pages few and meaningful, the rota large enough, and the load visible. Page only on symptom-based, actionable alerts, and route slow burns and cause-based signals to tickets and dashboards; aim for fewer than two pages a shift and under one night page a week per team. Keep at least six engineers in a rota, and use follow-the-sun across time zones for Tier 0 services so nobody is routinely woken. Track pages and out-of-hours work per person, review noisy alerts at every retro, and give recovery time after bad nights. Exhausted on-call engineers make slow, risky decisions, so sustainability is itself a reliability requirement.

Newsletter

Get new tutorials every week

New ArchitectMind tutorials and interview questions, once a week. No spam, unsubscribe anytime.

Almost done! Check your inbox and click the confirmation link to complete your subscription.
Keep going in Book 8

Architecture Quality Attributes

Volume I · Topic 1.1

Quality Attributes

Quality Attributes & Architectural Thinking

Volume I · Topic 1.2

Why Quality Attributes Matter

Quality Attributes & Architectural Thinking

Volume I · Topic 1.3

Quality Attribute Categories

Quality Attributes & Architectural Thinking

Volume II · Topic 1.1

Performance

Performance & Capacity

Volume II · Topic 1.2

Latency Components

Performance & Capacity

Volume II · Topic 1.3

Tail Latency

Performance & Capacity

Volume III · Topic 1.1

Scalability

Scalability & Elasticity

Volume III · Topic 1.2

Vertical Scaling

Scalability & Elasticity

Volume III · Topic 1.3

Horizontal Scaling

Scalability & Elasticity

Volume IV · Topic 1.1

Availability Fundamentals

Availability, Reliability & Resilience

Volume IV · Topic 1.2

Availability Calculation

Availability, Reliability & Resilience

Volume IV · Topic 1.3

Nines of Availability

Availability, Reliability & Resilience

Volume V · Topic 1.1

Security Requirements

Security, Privacy & Compliance

Volume V · Topic 1.2

Security Architecture

Security, Privacy & Compliance

Volume V · Topic 1.3

Threat Modeling

Security, Privacy & Compliance

Volume VI · Topic 1.1

Maintainability

Maintainability, Modifiability & Testability

Volume VI · Topic 1.2

Technical Debt

Maintainability, Modifiability & Testability

Volume VI · Topic 1.3

Code Quality

Maintainability, Modifiability & Testability

Volume VII · Topic 1.1

What Is Operability?

Operability, Observability & Deployability

Volume VII · Topic 1.3

Production Readiness Checklist

Operability, Observability & Deployability

Volume VIII · Topic 1.1

Why Evaluate Architecture?

Quality Attribute Trade-offs & Architecture Evaluation

Volume VIII · Topic 1.2

Architecture Evaluation Methods

Quality Attribute Trade-offs & Architecture Evaluation

Volume VIII · Topic 1.3

ATAM

Quality Attribute Trade-offs & Architecture Evaluation