โ—† Oryn
Docs โ€บ User โ€บ Resilience: Backup, DR & Chaos

๐Ÿ›ก Resilience: Backup, DR & Chaos

Generate backup policies, run DR failover drills, inject chaos faults, and produce auditable proof that your infrastructure can survive failure.
Resilience: Backup, DR & Chaos

Overview

The Resilience area brings four related practices together in one place: automated backup policy generation, disaster recovery (DR) drills, chaos engineering experiments, and environment teardown verification. Each capability produces a timestamped, persisted report so you always have evidence of your last test. The goal is to make recovery rehearsals a routine part of development rather than a scramble after an incident.

How it works

Each capability is backed by a dedicated .NET service on the backend. The BackupPolicyGenerator derives a policy (cron schedule, retention window, encryption and off-region settings) from your chosen cloud and data-store type, then records a BackupRun with its status in the database. The DrDrillOrchestrator shifts traffic from a primary region to a standby via ITrafficShifter, probes replication lag to measure RPO, times the cutover to measure RTO, then fails traffic back โ€” the drill status advances through TrafficShifting โ†’ StandbyActive โ†’ Failback โ†’ Completed. The ChaosExperimentRunner generates a ready-to-apply template (Chaos Mesh YAML, AWS FIS JSON, or Azure Chaos Studio JSON) for the chosen fault type and target, then polls a steady-state probe to record whether the system stayed healthy and how many incidents were triggered. The DestroyProofGenerator calls a Terraform destroy adapter and then individually checks each expected cloud resource to confirm it is absent, producing a per-resource verification table and screenshots path. Restore drills run a backup's data into an isolated environment and validate row count and checksum before marking the proof Validated or Failed.

What you can do

Backup Policy GenerationDerives a named backup policy (cron schedule, retention days, encryption at rest, off-region copy) for SQL, Blob, or Queue stores on Azure, AWS, or GCP and records a BackupRun with status and confidence score.
Backup HistoryLists the last 100 backup runs for a project, showing cloud, store type, policy name, cron, retention, off-region flag, status, confidence, and effort estimate.
Restore Drill (RestoreProofViewer)Takes a prior backup run ID, restores data into a named isolated environment, then validates actual row count and checksum against expected values โ€” marks the RestoreProof Validated or Failed.
DR DrillExecutes a full failover rehearsal between a primary and standby region, measuring real RPO (replication lag) and RTO (time to standby ready), then fails traffic back and reports MEETS/MISS against your targets with visual gauges.
Chaos ExperimentsGenerates and runs chaos fault templates (Pod Kill, Network Latency, Disk Fill, CPU Stress) using Chaos Mesh, AWS FIS, or Azure Chaos Studio, then records steady-state preservation and incident count.
Chaos Template ExportEach chaos experiment produces the full ready-to-apply YAML or JSON template so you can inspect or apply it outside Oryn.
Destroy ProofRuns terraform destroy on a tagged environment, then probes each expected cloud resource individually to confirm it is absent, producing a verified resource table and a screenshots path.
Per-run Confidence & Effort ScoresEvery run records a confidence score (0โ€“1) and an effort estimate (S/M/L) so you can track reliability and cost of your resilience posture over time.
Persistent Audit TrailAll runs โ€” backup, restore, DR drill, chaos experiment, destroy proof โ€” are persisted to the database and queryable via history endpoints, giving a full audit trail.

How to use it

  1. Open the DR panel for your project
    In the Oryn desktop, navigate to your project and open the Resilience / DR section. You will see tabs for Backup, Restore Drill, DR Drill, Chaos Experiment, and Destroy Proof.
  2. Generate and run a backup policy
    In the Backup tab, choose your cloud (Azure, AWS, or GCP) and data-store type (SQL, Blob, or Queue), then click Run backup. Oryn generates a policy with the appropriate cron schedule and retention window (for example, hourly with 35-day retention for SQL), records a BackupRun, and displays it in the history table below.
  3. Verify the backup with a restore drill
    In the Restore Drill tab, paste the backup run ID from the history table, give the isolated environment a name (e.g. restore-iso-1), enter the expected row count and checksum, then click Run restore drill. Oryn restores the data into that isolated environment and compares actual rows and checksum against your expectations, reporting Validated or Failed.
  4. Run a DR failover drill
    In the DR Drill tab, enter your primary and standby region identifiers (e.g. us-east-1 and us-west-2), set your RPO and RTO targets in seconds, then click Run DR drill. Oryn shifts traffic to the standby, measures replication lag for RPO and cutover time for RTO, fails traffic back, and shows colour-coded gauges indicating whether each target was met.
  5. Inject a chaos fault
    In the Chaos Experiment tab, select a tool (Chaos Mesh, AWS FIS, or Azure Chaos Studio), choose a fault type (Pod Kill, Network Latency, Disk Fill, or CPU Stress), enter a target selector (e.g. app=web), set duration in seconds, and click Run experiment. Oryn generates the deployment template and probes whether steady state was preserved after the fault, then shows the result alongside the exportable template.
  6. Produce a destroy proof for an ephemeral environment
    In the Destroy Proof tab, enter the environment tag (e.g. ephemeral-pr-42) and paste a JSON list of expected resources with their type, ID, and region. Click Run destroy proof. Oryn destroys the environment via Terraform and then checks each resource individually, reporting which are confirmed absent and which are still present, plus a screenshots path for audit evidence.

Example

You have just merged a pull request that provisioned a short-lived review environment tagged ephemeral-pr-99 containing an S3 bucket (oryn-pr-99) and a DynamoDB table (oryn-pr-99-state) in us-east-1. To prove the environment was fully torn down, open the Destroy Proof tab, set the env tag to ephemeral-pr-99, and enter the two resources in the JSON editor. Click Run destroy proof. Oryn calls terraform destroy for that tag, then probes each resource via the cloud API. The result table shows both resources with Absent: yes, the overall status becomes Verified, and a screenshots path is recorded in the report for your compliance audit.

Admin notes

The backup run endpoint currently returns HTTP 501 when no backup execution adapter is configured โ€” the policy and run record are still created and persisted, but no actual data is copied. This is by design while the backup adapter integration is pending; admins should be aware that BackupRun status will show Failed with a note explaining the adapter is not configured. Restore drills use a SimulatedRestoreDataSource and chaos experiments use a SimulatedSteadyStateProbe by default, so results reflect simulated behaviour unless real adapters are registered in the DI container. DR drills and destroy proofs require ITrafficShifter, IReplicationLagProbe, ITerraformDestroyer, and ICloudResourceProbe implementations to be wired up โ€” without them the drill will not execute real infrastructure changes.

Related