Dentro del trabajo en la nube, la automatización es uno de los elementos clave más destacados, ya que facilita que los resultados sean consistentes y fiables.
La estandarización lograda gracias esta automatización permite optimizar los recursos, que pueden llegar a ser muy limitados, y adoptar buenas prácticas que mejoren la eficiencia operativa.
Realizado por José A. Melgar | Sergio Pardo | Alejandro Lizarán
Titulación Bootcamp en DevOps y Cloud Computing
Tecnologías Azure DevOps | Terraform | Entity Framework Core | SQL | Entra ID
¿Cuál es la motivación?
Los entornos cloud ofrecen un gran potencial, pero muchas veces no se aprovecha por completo. La automatización ayuda a reducir errores humanos y garantiza resultados más fiables. Bien utilizados, estos entornos fortalecen la resiliencia empresarial al proteger datos críticos y asegurar su integridad y disponibilidad.
Objetivos
- Diseñar una arquitectura Disaster Recovery activa-pasiva entre Azure y GPC que sea escalable y resistente a fallos.
- Lograr un Tiempo de Recuperación o RTO de 30 minutos para la infraestructura y los recursos críticos del negocio.
- Conseguir que el Punto de Recuperación o RPO sea de 30 minutos para la base de datos del negocio.
- Diseñar una estrategia de despliegue y gestión automatizada.
Desarrollo
El desarrollo de esta solución ante desastres que afectan a la infraestructura crítica se ha alejado de la práctica habitual de emplear recursos nativos ofrecidos por los proveedores cloud y se ha centrado en las herramientas no nativas de migración. La implementación de la solución se ha basado en:
- Medidas de seguridad: son uno de los factores clave para contar con una estructura resiliente. El primer gran grupo de medidas está relacionado con la seguridad de los datos, como la automatización de la realización de backups de la base de datos con DevOps. En caso de que sí ocurra un fallo de seguridad, el segundo grupo de medidas, dedicadas a llevar a cabo un protocolo de acción, está enfocado a lograr una recuperación rápida y eficiente del servicio en caso de interrupción.
- Pipeline en Azure DevOps: este planteamiento permitió el despliegue de la infraestructura, pero también la configuración y la automatización de los backups, logrando su transferencia desde Azure (entorno activo) a FCP
- Despliegue de la arquitectura: este tipo de despliegue requiere herramientas más básicas, como Visual Studio Code, pero también otras más especializadas, como Terraform, que permiten trabajar con Infraestructura como Código (IaC). Asimismo, también se emplearon herramientas pertenecientes a Google Cloud y Azure, como Kubernetes, que ayudaron en el proceso de diseño, despliegue y gestión.
- Planteamiento de escenarios: para poder anticiparse a eventos imprevistos, se plantearon una multitud de escenarios. Se dividieron en naturales, técnicos y humanos, cada uno de ellos con una serie de posibles sucesos que llevan a la interrupción del servicio y la pérdida de datos, como un fallo en el proveedor cloud o la corrupción de datos de manera accidental.
- Creación de un plan de recuperación: una vez sucede el evento, es necesaria una respuesta rápida para minimizar posibles daños. Para ello, se automatizaron procesos como la realización de healthchecks o backups de las bases de datos SQL. El propio plan también necesita ser revisado, por lo que se realizaron pruebas de manera periódica, así como se establecieron diferentes métricas de rendimiento y criterios de éxito.

Resultados
El proyecto consiguió automatizar la transferencia periódica de backups de Azure a GCP, superando varios desafíos y reduciendo costes al centralizar el almacenamiento en un único bucket.
Los beneficios que aporta el proyecto a una organización son:
- Automatización de todo el proceso a través de pipelines.
- Bajo coste económico para la implementación del proyecto, gracias a que en cada momento sólo se asume el coste de la infraestructura que está en funcionamiento porque en el cloud pasivo se mantiene desplegado un único bucket de almacenamiento de backups.
- Escalabilidad futura del mismo, requiriendo llevar a cabo nuevas fases de desarrollo en materia de seguridad.

Conclusiones
Este proyecto demostró una alternativa distinta a las soluciones habituales de los proveedores cloud para implementar un sistema de recuperación ante desastres que garantice la continuidad del negocio y la protección de datos críticos.
Gracias al uso de Terraform, Azure DevOps y Kubernetes, se automatizó la Infraestructura como Código, facilitando la implementación y gestión, mientras que la seguridad de las bases de datos se reforzó mediante la automatización de backups con pipelines, asegurando su protección y recuperación en caso de desastre.
