Disaster Recovery Plan: RPO, RTO, and Automation

When the primary data center goes down at night, every hour of downtime translates into losses for your business. We develop an infrastructure recovery plan that actually works: we set RPO and RTO targets, automate failover to a backup site, and regularly test readiness. Our team delivers the project turnkey—from audit to ongoing support—so that in a critical moment you don't rely on luck.

Our competencies:

Frequently Asked Questions

Latest works

  • Development of a web application for FEEDME
    Development of a web application for FEEDME
    1365
  • Development of an online store for the company FURNORO
    Development of an online store for the company FURNORO
    1330
  • B2B Advance company logo design
    B2B Advance company logo design
    776
  • Development of a web application for Enviok
    Development of a web application for Enviok
    1077
  • AIDER company logo development
    AIDER company logo development
    1022
  • CRM development for Chasseurs
    CRM development for Chasseurs
    1113

Disaster Recovery Plan: RPO, RTO, and Automation

Imagine this: primary datacenter goes down at night, clients can't place orders. Without a proven DR plan, every incident is a lottery. We've seen cases where a supposed DR plan turned out to be a year outdated and runbooks didn't work. That's why we build procedures that actually execute, with automated steps and regular drills. Our engineers with 10+ years of DevOps and SRE experience ensure your DR plan fires on time when it matters most. Automating DR can save up to 80% of recovery time compared to manual processes.

Why RPO and RTO Must Be Aligned with Business?

Before designing DR, two metrics need to be agreed upon with the business, not guessed by engineers. RPO (Recovery Point Objective) is the maximum acceptable data loss in time. If RPO = 1 hour, you can lose at most one hour of transactions. This dictates backup frequency and the need for synchronous replication. RTO (Recovery Time Objective) is the maximum acceptable downtime. RTO = 4 hours means services must be restored within 4 hours. This dictates the DR site model (hot/warm/cold) and the degree of automation in failover.

A common mistake: engineers assign RPO = 0 and RTO = 15 minutes without realizing this requires real-time synchronous replication and hot standby — essentially doubling infrastructure cost. Business might be fine with RPO = 24 hours and RTO = 8 hours at significantly lower cost. Aligning these numbers is the first step to a realistic plan.

How to Choose a DR Site Model?

Architecture choice depends on RPO/RTO and budget. For minimal RTO (< 1 minute), you need active hot standby with synchronous replication. For RTO up to 4 hours, warm standby with asynchronous replication suffices. If the business can tolerate a day of downtime, cold standby with recovery from backups works. Compare options in the table:

Model RPO RTO Infrastructure Cost Example Use Case
Hot standby < 1 s < 1 min 2x production Payment systems, exchanges
Warm standby < 5 min < 4 h 1.5x CRM, databases
Cold standby < 24 h < 72 h 1x (backups) Archives, documentation

Inventory of Critical Systems

A DR plan starts with classifying systems by criticality tier:

Tier Criticality RPO RTO Example
Tier 1 Business stops < 1 h < 4 h Transaction DB, payment system
Tier 2 Significant damage < 8 h < 24 h CRM, internal portal
Tier 3 Inconvenience < 24 h < 72 h Documentation, archives

For each Tier 1 system, record dependencies (what fails with it), owner, recovery procedure, and responsible contacts.

Architectural Solutions for RPO/RTO

PostgreSQL with replication and Patroni. For RPO < 5 minutes and RTO < 10 minutes, use streaming replication with automatic failover via Patroni:

# patroni.yml — config for DR cluster
scope: pg-production
namespace: /service/
restapi:
  listen: 0.0.0.0:8008
  connect_address: 10.0.1.10:8008
etcd3:
  hosts:
    - 10.0.0.1:2379
    - 10.0.0.2:2379
    - 10.0.0.3:2379
bootstrap:
  dcs:
    ttl: 30
    loop_wait: 10
    retry_timeout: 10
    maximum_lag_on_failover: 1048576 # 1 MB — replication lag
postgresql:
  use_pg_rewind: true
  use_slots: true
  parameters:
    wal_level: replica
    hot_standby: "on"
    max_wal_senders: 10
    max_replication_slots: 10
    synchronous_commit: "on"
    synchronous_standby_names: "ANY 1 (replica-dr)"
postgresql:
  listen: 0.0.0.0:5432
  connect_address: 10.0.1.10:5432
  data_dir: /var/lib/postgresql/data
  pg_hba:
    - host replication replicator 10.0.0.0/24 md5
    - host all all 0.0.0.0/0 md5

Terraform for infrastructure as code. DR infrastructure should be described in Terraform and stored in Git. Terraform is 10x faster than manual deployment for repeatable runs — the only way to guarantee predictable recovery a year later:

# dr-site/main.tf
module "dr_vpc" {
  source = "../modules/vpc"
  cidr_block = "10.10.0.0/16"
  availability_zones = ["eu-central-1a", "eu-central-1b"]
  tags = {
    Environment = "dr"
    Tier = "1"
  }
}

module "dr_rds" {
  source = "../modules/rds"
  identifier = "prod-dr-replica"
  source_db_identifier = "prod-primary"
  # Read replica in DR region — base for failover
  replicate_source_db = "arn:aws:rds:us-east-1:123456789:db:prod-primary"
}

Nginx and load balancers. DNS failover via Route53 or Cloudflare: when the primary endpoint is unhealthy, traffic switches to DR. For RTO < 15 minutes, active health checks with TTL ≤ 60 seconds are required.

Structure of the DR Plan: What the Document Should Contain

A good DR plan is not an architecture description. It's step-by-step instructions for the person getting a call at 3 AM after an alert. Structure:

  1. DR activation triggers — specific conditions that start the DR procedure. Not "significant problems" but "primary site unreachable for more than 15 minutes according to Prometheus Alertmanager alert DatabaseDown severity:critical."
  2. Responsibility matrix — who decides to activate DR, who executes, who notifies the business.
  3. Step-by-step runbooks — separate runbook for each Tier 1 service with commands, expected results, and verification points.
  4. Failback procedure — returning to primary after recovery. Often forgotten, then DR site becomes the new "primary" without documentation.
  5. Communication plan — notification templates for clients, SLA commitments, vendor contacts (cloud, hosting, CDN).

Why Regular Drills Are Critical?

Without regular drills, the DR plan quickly becomes obsolete. Even a perfectly written document doesn't guarantee the team can execute it under stress. We recommend drills at least once per quarter for Tier 1, monthly for the most critical services. Drills reveal outdated runbooks, infrastructure changes, and knowledge gaps. After each drill, the plan is updated.

What's Included in the Work

When we develop a turnkey DR plan, we provide:

  • Audit of current infrastructure and tier classification
  • RPO/RTO alignment with business and documentation
  • DR site architecture design (hot/warm/cold selection)
  • Replication setup, failover automation, and monitoring
  • Runbooks for all critical services
  • Procedure documentation (triggers, responsibility matrix, failback)
  • Initial drills and plan adjustments based on results
  • Team training and access handover
  • Support during the warranty period post-deployment

Plan Development Process

Work starts with a workshop with key stakeholders: audit of critical systems, gathering RPO/RTO requirements, inventory of dependencies. Typical duration is 1-2 days for simple infrastructure, a week for complex.

Next step is gap analysis: what is already in place for DR and what is missing. Often backups exist but no restore procedure, or replication is configured but never tested.

After that, we develop and document procedures, configure or enhance technical components, and conduct the first drill.

Timeline Estimates

Scale Description Timeline
Small business Up to 10 services, 1-2 Tier 1 systems, basic DR plan 2-4 weeks
Medium 20-50 services, full DR site, Tier 1-2 runbooks 1-3 months
Large Complex dependencies, compliance requirements, multiple DR regions 3+ months

Cost is estimated individually after infrastructure audit. To evaluate your project, contact us — we'll analyze your infrastructure and propose the optimal solution. Get a consultation from an engineer with 10+ years of experience in DevOps and SRE.

Official Patroni documentation