Salta el contingut

Conceptes d'alta disponibilitat

RTO — Recovery Time Objective

El RTO (Recovery Time Objective — Objectiu de Temps de Recuperació) és el temps màxim acceptable que el sistema pot estar inoperatiu després d'una fallada. Respon a la pregunta: "Quant de temps ens podem permetre estar fora de servei?"

Exemples:

  • Banc en línia: RTO < 1 minut.
  • Botiga electrònica: RTO < 15 minuts.
  • Informe intern mensual: RTO de 24 hores.

RPO — Recovery Point Objective

El RPO (Recovery Point Objective — Objectiu de Punt de Recuperació) és la quantitat màxima de dades que es pot perdre en cas de fallada, expressada en temps. Respon a la pregunta: "Quantes dades ens podem permetre perdre?"

Exemples:

  • Transaccions bancàries: RPO = 0 (cap pèrdua de dades acceptable, replicació síncrona).
  • Blog corporatiu: RPO = 24 hores (una còpia diària és suficient).

SLA — Service Level Agreement

El SLA és un acord formal entre el proveïdor del servei i el client que especifica el nivell de disponibilitat garantit. S'expressa en percentatge de temps disponible per any:

SLA Downtime màxim/any Downtime màxim/mes
99% ("dos nines") 3,65 dies 7,3 hores
99,9% ("tres nines") 8,76 hores 43,8 minuts
99,99% ("quatre nines") 52,6 minuts 4,4 minuts
99,999% ("cinc nines") 5,26 minuts 26 segons

Failover i Failback

  • Failover: el procés automàtic o manual de commutació del servei al node secundari quan el node primari falla.
  • Failback: el procés de retornar el servei al node primari original quan s'ha recuperat.

El failover pot ser:

  • Automàtic: un sistema de monitoratge detecta la fallada i commuta el servei sense intervenció humana (Patroni, Galera, WSFC).
  • Manual: un administrador ha d'executar les comandes necessàries per promoure el secundari.

L'espectre de la disponibilitat

graph LR
    subgraph "Nivell 1 — Node únic"
        SN[("Node únic\nSense redundància\nRTO: hores/dies")]
    end

    subgraph "Nivell 2 — Replicació"
        RP[("Primari")] --> RS[("Rèplica")]
        RS -.->|"failover manual"| RP
    end

    subgraph "Nivell 3 — Clústering automàtic"
        CP[("Node 1\n(actiu)")] <-->|"heartbeat"| CS[("Node 2\n(standby)")]
        CS -.->|"failover automàtic"| CP
    end

    subgraph "Nivell 4 — Distribuït"
        DA[("DC Barcelona")] <-->|"replicació síncrona"| DB_node[("DC Madrid")]
        DB_node <-->|"replicació síncrona"| DC[("DC València")]
    end

    SN --> |"millora"| RP
    RP --> |"millora"| CP
    CP --> |"millora"| DA

    style SN fill:#DC2626,stroke:#b91c1c,color:#fff
    style RP fill:#7C3AED,stroke:#6d28d9,color:#fff
    style RS fill:#7C3AED,stroke:#6d28d9,color:#fff
    style CP fill:#16A34A,stroke:#15803d,color:#fff
    style CS fill:#16A34A,stroke:#15803d,color:#fff
    style DA fill:#2563EB,stroke:#1d4ed8,color:#fff
    style DB_node fill:#2563EB,stroke:#1d4ed8,color:#fff
    style DC fill:#2563EB,stroke:#1d4ed8,color:#fff

Comparativa de solucions

Solució RTO típic RPO típic Complexitat Cost
Còpia de seguretat diària Hores 24 hores Baixa Baix
Replicació asíncrona Minuts Segons Mitjana Mig
Replicació síncrona Segons 0 Alta Alt
Clústering actiu-passiu < 30 s 0 Alta Alt
Clústering actiu-actiu < 1 s 0 Molt alta Molt alt
Base de dades distribuïda < 1 s 0 Molt alta Molt alt

Recursos recomanats