Tanquem la Part VI amb el Capítol 26: Alta disponibilitat i disaster recovery, que tracta sobre com aconseguir que els teus sistemes resisteixin fallades i desastres. Perquè les coses fallen: un servidor cau, una regió té problemes, algú esborra dades per error. La pregunta no és si fallarà alguna cosa, sinó quan, i com de preparat estàs. Abans de veure estratègies i eines, necessitem dos conceptes fonamentals que guien totes les decisions de recuperació: RTO i RPO.
El punt de partida: les fallades són inevitables
Una veritat incòmoda dels sistemes: tot falla en algun moment. Discos, servidors, xarxes, fins i tot centres de dades sencers. Les empreses serioses no fan veure que no passarà; es preparen per quan passi. Aquesta preparació per recuperar-se de fallades greus s’anomena disaster recovery (recuperació davant desastres, DR).
Però «estar preparat» costa diners i esforç, i no totes les aplicacions necessiten el mateix nivell. Quant has d’invertir en recuperació? Per respondre, primer cal definir quin nivell de recuperació necessites, i això es mesura amb dues preguntes: RTO i RPO.
RTO: quant temps puc estar caigut?
RTO (Recovery Time Objective) és el temps màxim que el teu sistema pot estar caigut després d’un desastre abans de recuperar-se. Respon a la pregunta: «si això cau, en quant temps necessito que torni a funcionar?»
Desastre ocorre Sistema recuperat
│ │
▼ ▼
├──────── RTO ─────────────┤
│ (temps de caiguda │
│ que puc tolerar) │Exemples d’RTO segons el tipus de sistema:
- Una botiga online en plena campanya: RTO de minuts (cada minut caigut = vendes perdudes).
- Una eina interna d’informes: RTO de hores (molest, però tolerable).
- Un sistema d’arxiu històric: RTO de dies (gairebé ningú ho nota).
Analogia: l’RTO és com preguntar-te, si se t’espatlla el cotxe, «quant temps puc estar sense cotxe?». Si el necessites per treballar cada dia, vols que estigui arreglat en hores (RTO baix), encara que això signifiqui pagar una grua urgent i un taller exprés. Si és un cotxe de cap de setmana, pots esperar una setmana sense problema (RTO alt) i buscar la reparació més barata.
RPO: quantes dades puc permetre’m perdre?
RPO (Recovery Point Objective) és la quantitat màxima de dades (mesurada en temps) que et pots permetre perdre en un desastre. Respon a: «si això cau, fins a quin moment en el passat necessito recuperar les dades sense que sigui un problema?». A la pràctica, marca cada quant necessites fer còpies de seguretat.
Si la teva última còpia va ser fa 1 hora i ocorre un desastre, perds l’última hora de dades. Exemples:
- Un banc: RPO de segons (no pot perdre ni una transacció).
- Una botiga online: RPO de minuts (perdre uns minuts de comandes seria greu però no catastròfic).
- Un blog: RPO de hores o un dia (perdre els últims comentaris és tolerable).
Analogia: l’RPO és com preguntar-te «quanta feina puc permetre’m perdre si s’apaga l’ordinador sense desar?». Si deses cada 5 minuts, com a molt perds 5 minuts de feina (RPO de 5 min). Si només deses un cop al dia, podries perdre un dia sencer de feina. Com menys et puguis permetre perdre, més sovint has de desar (còpies més freqüents).
RTO i RPO junts: dues preguntes diferents
És fonamental no confondre’ls: mesuren coses diferents.
┌──────────── DESASTRE ────────────┐ │ │ RPO mira al PASSAT RTO mira al FUTUR "Quantes dades perdo?" "Quant tardo a tornar?" (freqüència de còpies) (velocitat de recuperació)
| RTO | RPO | |
|---|---|---|
| Mesura | Temps de caiguda tolerable | Dades que pots perdre |
| Pregunta | Quant tardo a tornar? | Quantes dades perdo? |
| Mira cap a | El futur (recuperació) | El passat (última còpia) |
| Afecta a | La velocitat de recuperació | La freqüència de les còpies |
Per què importen: defineixen la teva estratègia (i el teu cost)
RTO i RPO són la brúixola de tot el teu pla de recuperació. Com més exigents siguin (RTO i RPO de minuts o segons), més costa la solució (necessites sistemes duplicats, còpies constants, automatització...). Com més relaxats, més barat.
RTO/RPO molt baixos (minuts/segons) → solució cara i complexa RTO/RPO alts (hores/dies) → solució barata i simple
Per això, el primer pas sempre és preguntar al negoci: «quant temps de caiguda i quantes dades podem tolerar?». La resposta determina quant invertir. No té sentit gastar una fortuna en recuperació instantània per a un sistema que ningú trobaria a faltar durant un dia.
Exemple del món real: una empresa defineix RTO i RPO per a cada sistema. Per a la seva plataforma de pagaments: RTO de 5 minuts i RPO de 0 (no poden perdre cap transacció ni estar caiguts), així que inverteixen en una arquitectura duplicada i costosa. Per al seu sistema intern d’informes: RTO de 8 hores i RPO de 24 hores, així que una simple còpia diària i una recuperació manual són suficients, estalviant molts diners. Mateixa empresa, estratègies molt diferents, cadascuna ajustada al que cada sistema realment necessita. Definir RTO i RPO primer els permet invertir els diners on realment importa.
El que has de recordar
- Tot falla en algun moment; les empreses serioses es preparen per recuperar-se (disaster recovery). Però «estar preparat» costa, i cada sistema necessita un nivell diferent.
- RTO (Recovery Time Objective): el temps màxim de caiguda tolerable abans de recuperar-se («en quant torno?»). Mira al futur; afecta la velocitat de recuperació.
- RPO (Recovery Point Objective): la quantitat màxima de dades (en temps) que pots perdre («quantes dades perdo?»). Mira al passat; marca la freqüència de les còpies.
- No es confonen: RPO mira al passat (dades perdudes), RTO mira al futur (temps de tornada).
- Com més exigents (minuts/segons), més cara la solució. Per això el primer pas és preguntar al negoci què pot tolerar, i invertir en conseqüència.
En el següent subcapítol veurem les diferents estratègies de disaster recovery (de la més barata a la més ràpida) que tries segons el teu RTO i RPO.
Cloud, AWS & Terraform — De zero a expert
Capítol 1 · Què és el cloud computing
- 1.1 El model client-servidor tradicional
- 1.2 Problemes que venia a resoldre el núvol
- 1.3 On-premise vs cloud vs híbrid
- 1.4 Els tres models de servei: IaaS, PaaS, SaaS
- 1.5 Els cinc pilars del cloud (segons NIST)
- 1.6 Avantatges reals: elasticitat, pagament per ús, disponibilitat global
Capítol 2 · El mercat cloud i els grans proveïdors
- 2.1 AWS, Azure i GCP: diferències i quotes de mercat
- 2.2 Per què aprendre AWS primer
- 2.3 Conceptes que són universals entre proveïdors
Capítol 3 · Regions, zones de disponibilitat i edge
- 3.1 Què és una regió AWS i com triar-la
- 3.2 Availability Zones: alta disponibilitat des del disseny
- 3.3 Edge locations i CloudFront
- 3.4 Latència, resiliència i sobirania de dades
Capítol 4 · Càlcul: EC2
- 4.1 Instàncies: tipus, famílies i quan triar cadascuna
- 4.2 AMIs, key pairs i Security Groups
- 4.3 Cicle de vida d'una instància
- 4.4 Elastic IPs i Placement Groups
- 4.5 Savings Plans vs Reserved vs On-Demand vs Spot
Capítol 5 · Emmagatzematge: S3
- 5.1 Buckets, objectes i claus
- 5.2 Classes d'emmagatzematge (Standard, IA, Glacier…)
- 5.3 Versionat i cicle de vida d'objectes
- 5.4 Polítiques de bucket i ACLs
- 5.5 Hosting de llocs web estàtics
Capítol 6 · Xarxes: VPC
- 6.1 Què és una VPC i per què la necessites
- 6.2 Subxarxes públiques i privades
- 6.3 Internet Gateway i NAT Gateway
- 6.4 Route Tables i Network ACLs
- 6.5 VPC Peering i endpoints
Capítol 7 · Identitat i accés: IAM
- 7.1 Usuaris, grups, rols i polítiques
- 7.2 El principi de mínim privilegi
- 7.3 Polítiques basades en identitat vs en recurs
- 7.4 MFA i credencials temporals (STS)
- 7.5 Bones pràctiques de seguretat IAM
Capítol 8 · Bases de dades gestionades
- 8.1 RDS: motors, Multi-AZ i rèpliques de lectura
- 8.2 Aurora i els seus avantatges sobre RDS vanilla
- 8.3 DynamoDB: model clau-valor / documents
- 8.4 ElastiCache per a memòria cau en memòria
- 8.5 Quan utilitzar cada tipus de base de dades
Capítol 9 · Per què Infraestructura com a Codi
- 9.1 Problemes del provisionament manual
- 9.2 IaC declaratiu vs imperatiu
- 9.3 Terraform vs CloudFormation vs Pulumi vs CDK
- 9.4 El cicle plan → apply → destroy
Capítol 10 · HCL: el llenguatge de Terraform
- 10.1 Blocs resource, variable, output, locals
- 10.2 Tipus de dades: string, number, bool, list, map, object
- 10.3 Expressions, referències i funcions built-in
- 10.4 Condicionals i bucles (count, for_each, for)
Capítol 11 · Providers i estat
- 11.1 Com funciona el provider d'AWS
- 11.2 El fitxer terraform.tfstate i la seva importància
- 11.3 State local vs state remot (S3 + DynamoDB)
- 11.4 Comandes essencials: init, plan, apply, destroy, fmt, validate
Capítol 12 · La teva primera infraestructura real amb Terraform
- 12.1 Crear una VPC amb subxarxes des de zero
- 12.2 Posar en marxa una instància EC2 pública
- 12.3 Associar un Security Group i una Elastic IP
- 12.4 Outputs i referències entre recursos
- 12.5 Flux de treball en equip: PR review de plans
Capítol 13 · Balanceig de càrrega i autoescalat
- 13.1 Application Load Balancer vs Network Load Balancer
- 13.2 Target Groups, listeners i regles
- 13.3 Auto Scaling Groups: polítiques i mètriques
- 13.4 Warm pools i lifecycle hooks
Capítol 14 · Serverless amb Lambda
- 14.1 El model d'execució de Lambda
- 14.2 Triggers: API Gateway, S3, DynamoDB Streams, SQS
- 14.3 Gestió de dependències i capes (Layers)
- 14.4 Cold starts i estratègies per reduir-los
- 14.5 Límits i antipatrones
Capítol 15 · Missatgeria i esdeveniments
- 15.1 SQS: cues estàndard vs FIFO, DLQ
- 15.2 SNS: topics, subscripcions, fan-out
- 15.3 EventBridge: event buses i regles
- 15.4 Patrons: pub/sub, desacoblament, saga
Capítol 16 · Lliurament de contingut i DNS
- 16.1 Route 53: tipus de registres i routing policies
- 16.2 CloudFront: distribucions, memòries cau i origins
- 16.3 ACM: certificats SSL/TLS gratuïts
- 16.4 WAF integrat amb CloudFront
Capítol 17 · Contenidors a AWS
- 17.1 Docker: repàs exprés de conceptes clau
- 17.2 ECR: registre privat d'imatges
- 17.3 ECS: task definitions, services, Fargate vs EC2
- 17.4 EKS: quan Kubernetes i quan no
Capítol 18 · Mòduls: reutilització i composició
- 18.1 Anatomia d'un mòdul Terraform
- 18.2 Variables d'entrada, outputs i dependències
- 18.3 Mòduls locals vs mòduls del Terraform Registry
- 18.4 Versionat de mòduls amb Git tags
- 18.5 Disseny de mòduls genèrics vs específics de domini
Capítol 19 · Workspaces i gestió d'entorns
- 19.1 Workspaces de Terraform: casos d'ús i limitacions
- 19.2 Estratègia de directoris per entorn (dev/stg/prod)
- 19.3 Terragrunt: DRY per a configuracions d'entorn
- 19.4 Variables d'entorn i fitxers .tfvars
Capítol 20 · Backends remots i locking
- 20.1 Configurar S3 + DynamoDB com a backend
- 20.2 State locking: evitar corrupció en equip
- 20.3 Migració d'estat entre backends
- 20.4 terraform import: portar recursos existents a l'estat
Capítol 21 · Testing d'infraestructura
- 21.1 Terraform validate i fmt en CI
- 21.2 Checkov i tfsec: anàlisi de seguretat estàtica
- 21.3 Terratest: tests d'integració en Go
- 21.4 Contract testing entre mòduls
Capítol 22 · Terraform en CI/CD
- 22.1 Pipeline bàsic: lint → plan → apply a GitHub Actions
- 22.2 Atlantis: GitOps per a Terraform
- 22.3 Terraform Cloud / HCP Terraform
- 22.4 Drift detection i reconciliació automàtica
Capítol 23 · Seguretat en profunditat
- 23.1 AWS Organizations i Service Control Policies
- 23.2 AWS Config: compliment continu
- 23.3 GuardDuty: detecció d'amenaces
- 23.4 Security Hub: visió centralitzada
- 23.5 KMS: gestió de claus i rotació
- 23.6 Secrets Manager vs Parameter Store
Capítol 24 · Observabilitat: logs, mètriques i traces
- 24.1 CloudWatch Logs, mètriques i alarmes
- 24.2 CloudWatch Dashboards i Contributor Insights
- 24.3 X-Ray: traçat distribuït
- 24.4 OpenTelemetry a AWS
- 24.5 Managed Grafana i Managed Prometheus
Capítol 25 · Optimització de costos
- 25.1 AWS Cost Explorer i pressupostos amb alertes
- 25.2 Trusted Advisor i Compute Optimizer
- 25.3 Rightsizing: com detectar sobredimensionament
- 25.4 Savings Plans vs Reserved Instances: decisió estratègica
- 25.5 FinOps: cultura i processos per controlar la despesa
Capítol 26 · Alta disponibilitat i disaster recovery
- 26.1 RTO i RPO: definir els objectius
- 26.2 Estratègies: backup/restore, pilot light, warm standby, multi-site
- 26.3 Route 53 health checks i failover automàtic
- 26.4 AWS Backup: política centralitzada de còpies
Capítol 27 · Well-Architected Framework d'AWS
- 27.1 Els sis pilars: excel·lència operacional, seguretat, fiabilitat, eficiència de rendiment, optimització de costos, sostenibilitat
- 27.2 Well-Architected Tool: revisions formals
- 27.3 Com aplicar el framework en decisions de disseny
Capítol 28 · Arquitectures serverless a escala
- 28.1 Event-driven architecture amb Lambda + EventBridge
- 28.2 Saga pattern per a transaccions distribuïdes
- 28.3 Step Functions: orquestració de workflows complexos
- 28.4 Lambda@Edge i CloudFront Functions
Capítol 29 · Plataformes de dades a AWS
- 29.1 Data Lake amb S3, Glue i Athena
- 29.2 Kinesis Data Streams i Firehose per a streaming
- 29.3 Redshift: data warehousing a escala
- 29.4 Lake Formation: govern del dada
Capítol 30 · Multi-compte i landing zones
- 30.1 Per què separar workloads en comptes diferents
- 30.2 AWS Control Tower i Account Factory
- 30.3 Gestió centralitzada de logs i seguretat
- 30.4 Terraform a escala multi-compte amb mòduls compartits
Capítol 31 · Platform Engineering i Internal Developer Platform
- 31.1 Golden paths i abstraccions sobre Terraform
- 31.2 Service Catalog d'AWS
- 31.3 Backstage com a portal de desenvolupadors
- 31.4 Mòduls Terraform com a producte intern
Capítol 32 · Certificacions AWS rellevants
- 32.1 Cloud Practitioner: val la pena?
- 32.2 Solutions Architect Associate → Professional
- 32.3 DevOps Engineer Professional
- 32.4 Specialty: Security, Database, Networking
- 32.5 HashiCorp Terraform Associate
Capítol 33 · Projectes per consolidar el que s'ha après
- 33.1 Projecte 1: blog serverless (S3 + CloudFront + Lambda + DynamoDB)
- 33.2 Projecte 2: API REST amb ECS Fargate + RDS + ALB
- 33.3 Projecte 3: plataforma de dades amb Glue + Athena + Redshift
- 33.4 Projecte 4: landing zone multi-compte amb Terraform i Control Tower
