Case 18

Self-Healing Infrastructure

An immune loop with a human brake: detect, bounded heal, verify — and stop automatic remediation when the blast radius demands approval.

01

How it works

Heal the common case — brake the dangerous one.

Self-Healing Infrastructure by Andrey Lesnikov — auto-remediation with proof, plus a hard stop for high-risk actions.

Immune detect-heal-verify loop with a red human brake for risky remediation
Immune metaphor — automatic heal, deliberate brake.
Animated detect-heal-verify loop with a human brake on risky paths
Lifecycle — Detect → Heal → Verify → Brake if needed
  1. 01

    Detect with a clear signal

    Health and failure modes that matter — not every flake becomes a heal storm.

  2. 02

    Heal inside bounds

    Remediation is limited and reversible — power without a blank check.

  3. 03

    Verify the result

    The loop only closes when the signal recovers — hope is not a status.

  4. 04

    Hit the human brake

    High-risk actions stop for approval. Auto-heal is strength; the brake is wisdom.

02

Evidence

From problem to proof.

How the system is framed, operated, and proven — not a slide deck summary.

01
When to use

Known failure modes still wait for humans — remediation is tribal and untested under pressure.

02
When not

You need pre-deploy blast-radius rehearsal rather than runtime healing — Architecture Rehearsal owns that loop.

03
See also

Incident Runbook Automation and SLO burn rates decide when to heal. Kanister proves recoverability when healing is not enough.

04
Latest evidence

v2.2.0 ships bounded remediation: per-namespace budget in a sliding window, per-object cooldown, and approval annotations for dangerous node actions (reboot / drain). Defaults are fail-safe (PR #65): DRY_RUN defaults to true so a fresh install never mutates the cluster; live remediation requires DRY_RUN=false and a non-empty REMEDIATION_NAMESPACES allowlist containing the target namespace (otherwise allowlist_empty / namespace_not_allowed). In CI a crash-looping deployment was remediated 20.1 s after fault injection, and with REMEDIATION_BUDGET_PER_NAMESPACE=2 the brake engaged (budget_exhausted) on the next attempt (run 38062111574, docs/results.md). CI wall clock on the pipeline cluster, not a large-cluster SLO.

Constraints

False positives, blast radius, rollback safety, observability confirmation, and human override.

03

Related

Nearby systems.

Case 17

Incident Runbook Automation

  • Alert
  • Diagnose
  • Escalate

Incidents are slower when context, dashboards, logs, and recovery steps live in different places

Repeatable response → lower MTTR

Case 03 · Flagship

Kanister Backup & Restore

  • Kanister
  • Postgres
  • Object store

A green backup job is not proof you can recover — artifacts, secrets, schema, and RTO still fail quietly

Restore proved before the incident

Available for meaningful infrastructure conversations

Build systems that stay calm under pressure.

Available for conversations

Talk infrastructure

Book a working session

Meet ↗

Evidence first

For deep dives

Explore the systems

All cases ↗