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

Miniactivitat — AC0377/06/01

Miniactivitat — AC0377/06/01 · Càlcul de RTO/RPO i anàlisi de casos reals

Part 1 — Càlcul de RTO/RPO per a 4 escenaris d'empresa. Per a cadascun, proposa un RTO i un RPO raonats i tria, amb la taula "Comparativa de solucions", la solució d'alta disponibilitat més adequada:

  1. Una farmàcia de barri amb una aplicació de gestió d'estoc i vendes.
  2. Una plataforma de pagaments entre particulars (tipus Bizum).
  3. Un hospital amb historials clínics electrònics.
  4. Un blog personal amb un centenar de visites diàries.

Per a cada cas, justifica: quant costaria (en diners o en risc) no complir el RTO/RPO proposat, i si la inversió en la solució triada és proporcionada.

Part 2 — Anàlisi d'un cas real de downtime. Cerca una notícia real i recent d'una caiguda de servei d'una empresa coneguda (banca, e-commerce, xarxa social, aerolínia...) i respon:

  1. Quant va durar la incidència (RTO real)?
  2. Es coneix si es van perdre dades (RPO real)? Si l'empresa no ho ha fet públic, què pots deduir del tipus de servei?
  3. Quin SLA creus que tenia contractat o promès aquesta empresa als seus usuaris, i es va complir?
  4. Quina de les solucions de la taula (còpia diària, replicació, clústering, BD distribuïda) creus que tenien implementada, a partir de com es va recuperar el servei?

Temps estimat: 35 minuts.


Recursos recomanats