Conceptos Clave: RTO y RPO
La planificación de la recuperación ante desastres (DR - Disaster Recovery) se rige por dos métricas fundamentales que se definen con el negocio:
- RPO (Recovery Point Objective - Objetivo de Punto de Recuperación): ¿Cuánta pérdida de datos es aceptable? Un RPO de 1 hora significa que, en caso de un desastre, la empresa está dispuesta a perder como máximo los datos generados en la última hora. Esto dicta la frecuencia con la que debemos realizar copias de seguridad o replicar los datos.
- RTO (Recovery Time Objective - Objetivo de Tiempo de Recuperación): ¿Cuánto tiempo puede estar caído el sistema? Un RTO de 15 minutos significa que el sistema debe estar operativo de nuevo en menos de 15 minutos después de un fallo. Esto dicta la rapidez con la que debemos ser capaces de restaurar el sistema a partir de una copia de seguridad o conmutar a una réplica.
Lograr un RPO y RTO cercanos a cero es extremadamente caro. La clave es encontrar el equilibrio adecuado entre el coste de la resiliencia y el impacto de una interrupción en el negocio.
La Ventaja de los Servicios Gestionados de GCP
Una de las mayores ventajas de usar Google Cloud es que muchos de sus servicios gestionados vienen con alta disponibilidad y replicación de datos incorporadas, lo que nos ahorra una enorme cantidad de trabajo.
- Replicación en Cloud Storage y BigQuery: Cuando creas un bucket de Cloud Storage o un dataset de BigQuery en una ubicación multi-regional (ej. `EU` o `US`), Google replica automáticamente tus datos de forma síncrona en múltiples centros de datos geográficamente distantes dentro de esa región. Si un centro de datos completo se inunda o sufre un corte de energía, tus datos siguen estando disponibles desde otro centro de datos sin que tú tengas que hacer nada. Esto te da una resiliencia increíblemente alta contra desastres a nivel de zona.
- Servicios Serverless como Dataflow: Dataflow es inherentemente resiliente. Si una de las VMs que ejecuta tu pipeline falla, Dataflow la reemplaza automáticamente y reintenta el trabajo que se estaba procesando, sin interrumpir el pipeline.