Guía de planificación para la recuperación ante desastres

Este artículo es la primera parte de una serie que aborda la recuperación ante desastres en Google Cloud Platform (GCP). En esta parte, se ofrece una descripción general del proceso de planificación de recuperación ante desastres: lo que necesitas saber para diseñar e implementar un plan de recuperación ante desastres. En las partes siguientes, se analizan casos prácticos específicos de recuperación ante desastres con implementaciones de ejemplo en GCP.

La serie consta de las siguientes partes:

Introducción

En cualquier momento, pueden producirse eventos que interrumpan el servicio. Tu red puede sufrir una interrupción, la última actualización de tu aplicación puede producir un error crítico o tal vez un día debas lidiar con un desastre natural. Cuando no todo sale como esperas, es importante contar con un plan de recuperación ante desastres sólido, orientado y probado.

Cuando tienes un plan de recuperación ante desastres bien diseñado y probado, puedes estar seguro de que, si sucede una catástrofe, el impacto en las ganancias de tu negocio será mínimo. Sin importar cuáles sean tus necesidades de recuperación ante desastres, Google Cloud Platform (GCP) ofrece una selección sólida, flexible y rentable de productos y funciones que puedes utilizar si quieres compilar o ampliar la solución ideal para ti.

Conceptos básicos de la planificación de recuperación ante desastres

La recuperación ante desastres es un subconjunto de la planificación de la continuidad empresarial. La planificación de recuperación ante desastres comienza con un análisis del impacto en el negocio que define dos métricas clave:

  • Un objetivo de tiempo de recuperación (RTO), que es el período máximo aceptable en que tu aplicación puede estar sin conexión. Por lo general, este valor se define como parte de un Acuerdo de Nivel de Servicio (ANS) mayor.
  • Un objetivo de punto de recuperación (RPO), que es el período máximo aceptable en el que se pueden perder datos de tu aplicación debido a un incidente importante. Esta métrica varía según las formas en las que se utilizan los datos. Por ejemplo, los datos del usuario que se modifican con frecuencia podrían tener un RPO de solo algunos minutos. Por el contrario, los datos modificados con menos frecuencia y menos críticos podrían tener un RPO de varias horas. (Esta métrica solo describe el período, no indica la cantidad o la calidad de los datos que se pierden).

Por lo general, cuanto menores sean tus valores de RTO y RPO (es decir, cuanto más rápido tu aplicación deba recuperarse de una interrupción), mayor será el costo de ejecución de tu aplicación. En el siguiente gráfo, se muestra la relación del costo y el RTO/RPO.

Gráfo que muestra que un RTO/RPO pequeño equivale a un costo alto.

Debido a que los valores de RTO y RPO menores implican una mayor complejidad, la sobrecarga administrativa asociada sigue una curva similar. Puede que una aplicación de alta disponibilidad requiera que administres la distribución entre dos centros de datos separados físicamente, que administres la replicación, etcétera.

Por lo general, los valores de RTO y RPO dependen de otra métrica: el objetivo de nivel de servicio (SLO), que es un elemento medible clave de un ANS. Los ANS y los SLO se suelen combinar. Un ANS es el acuerdo completo que especifica qué servicio se proporcionará, cómo se brindará asistencia, así como los tiempos, las ubicaciones, los costos, el rendimiento, las penalizaciones y las responsabilidades de las partes involucradas. Los SLO son características medibles y específicas del ANS, como la disponibilidad, la capacidad de procesamiento, la frecuencia, el tiempo de respuesta o la calidad. Un ANS puede tener varios SLO. Los RTO y RPO son medibles y se deben considerar SLO.

Puedes leer más sobre los SLO y los ANS en el libro de ingeniería de confiabilidad de sitios de Google.

También puedes estar planificando una arquitectura para alta disponibilidad (HA). La HA no se superpone por completo con la recuperación ante desastres, pero suele ser necesario tener en cuenta la HA cuando piensas en los valores de RTO y RPO. La HA ayuda a asegurar un nivel de rendimiento operativo acordado, que suele ser el tiempo de actividad, para un período mayor que el normal. Cuando ejecutas cargas de trabajo de producción en GCP, puede que utilices un sistema de distribución mundial de modo que, si algo falla en una región, la aplicación continúe ofreciendo el servicio, aunque no esté disponible en todas partes. En definitiva, la aplicación invoca su plan de recuperación ante desastres.

¿Por qué elegir GCP?

GCP puede reducir de forma considerable los costos asociados al RTO y el RPO si se compara con cumplir los requisitos de ambos de manera local. Por ejemplo, la planificación de recuperación ante desastres tradicional requiere que consideres un número de requisitos, entre los que se incluyen los siguientes:

  • Capacidad: asegurar los recursos suficientes para escalar según sea necesario.
  • Seguridad: proporcionar seguridad física para proteger los activos.
  • Infraestructura de red: incluir componentes de software, como firewalls y balanceadores de cargas.
  • Asistencia: poner a disposición técnicos capacitados para que realicen mantenimiento y solucionen problemas.
  • Ancho de banda: planificar un ancho de banda adecuado para la carga máxima.
  • Instalaciones: asegurar una infraestructura física, que incluya equipos y energía.

Cuando proporcionas una solución altamente administrada en una plataforma de producción de clase mundial, GCP te ayuda a evitar la mayoría o todos estos factores de complicación reduciendo muchos costos de negocio en el proceso. Además, el enfoque de GCP en la simplicidad administrativa también permite reducir los costos de administrar una aplicación compleja.

GCP ofrece varias características relevantes para la planificación de recuperación ante desastres, entre las que se incluyen las siguientes:

  • Una red global. Google tiene una de las redes informáticas más grandes y avanzadas del mundo. La red troncal de Google tiene miles de millas de cable de fibra óptica, utiliza redes avanzadas definidas por software y cuenta con servicios de almacenamiento en caché perimetral para ofrecer un rendimiento rápido, coherente y escalable.
  • Redundancia. Los varios puntos de presencia (POP) en todo el mundo permiten una gran redundancia. Tus datos se duplican de forma automática en dispositivos de almacenamiento en varias ubicaciones.
  • Escalabilidad. GCP está diseñada para escalar como otros productos de Google (por ejemplo, el motor de búsqueda y Gmail), incluso cuando experimentas un gran aumento en el tráfico. Los servicios administrados, como App Engine, los escaladores automáticos de Compute Engine y Cloud Datastore te ofrecen un escalamiento automático que le permite a tu aplicación aumentar o reducir su capacidad según sea necesario.
  • Seguridad. El modelo de seguridad de Google se creó a partir de más de 15 años de experiencia con el propósito de mantener a los clientes protegidos cuando utilizan las aplicaciones de Google, como Gmail y G Suite. Además, los equipos de ingeniería de confiabilidad de sitios de Google ayudan a asegurar una alta disponibilidad y a evitar el abuso de los recursos de la plataforma.
  • Cumplimiento. Google lleva a cabo auditorías independientes de terceros de manera habitual para verificar que GCP cumpla con los reglamentos y las recomendaciones de seguridad, privacidad y cumplimiento de normas. GCP cumple con certificaciones como ISO 27001, SOC 2/3 y PCI DSS 3.0.

Patrones de recuperación ante desastres

Los patrones de recuperación ante desastres son fríos, tibios o calientes. Estos patrones indican qué tan fácilmente se puede recuperar el sistema cuando hay una falla. Esto puede compararse con lo que harías si estuvieras conduciendo y se pinchara un neumático de tu vehículo.

3 fotos de situaciones de neumáticos pinchados de vehículos: sin repuesto, con repuesto y herramientas, un neumático desinflado.

Cómo lidias con un neumático pinchado depende de qué tan preparado estés:

  • Frío: no tienes tiempo libre, así que debes llamar a alguien para que te traiga un neumático nuevo y lo reemplace. Tu viaje se detendrá hasta que una persona llegue a hacer la reparación.
  • Tibio: tienes un neumático de repuesto y un kit de reemplazo, por lo que puedes volver al camino gracias a lo que llevas en tu vehículo. Sin embargo, debes detenerte para reparar el problema.
  • Caliente: tienes los neumáticos desinflados. Tal vez debas disminuir la velocidad, pero no hay un impacto inmediato en tu recorrido. Tus neumáticos funcionan lo suficientemente bien como para poder continuar (aunque puede que en algún momento debas solucionar el problema).

Crear un plan de recuperación ante desastres detallado

En esta sección, se ofrecen recomendaciones sobre cómo crear tu plan de recuperación ante desastres.

Diseña según tus objetivos de recuperación

Cuando diseñas tu plan de recuperación ante desastres, necesitas combinar las técnicas de recuperación de tus datos y tu aplicación, y observar el panorama más general. La manera más común de hacerlo es ver tus valores de RTO y RPO, y pensar en el patrón de recuperación ante desastres que puedes adoptar para llegar a esos valores. Por ejemplo, en el caso de datos históricos orientados al cumplimiento, es probable que no necesites un acceso rápido a ellos, por lo que un gran valor de RTO y un patrón de recuperación ante desastres frío son apropiados. Sin embargo, si tu servicio en línea sufre una interrupción, desearás recuperar tanto los datos como la parte de la aplicación orientada a los clientes tan rápido como sea posible. En ese caso, un patrón caliente sería más apropiado. Tu sistema de notificación de correo electrónico, que por lo general no es crítico para el negocio, es tal vez un candidato a un patrón tibio.

Si deseas obtener indicaciones sobre cómo utilizar GCP para resolver situaciones comunes de recuperación ante desastres, consulta las situaciones de recuperación de la aplicación. Estas ofrecen estrategias de recuperación ante desastres orientadas a una variedad de casos prácticos y ejemplos de implementaciones en GCP para cada una.

Diseña para la recuperación de extremo a extremo

Tener un plan para crear una copia de seguridad o archivar tus datos no es suficiente. Asegúrate de que tu plan de recuperación ante desastres aborde el proceso de recuperación completo, desde la creación de copias de seguridad hasta el restablecimiento y la limpieza. Esto se analiza en los documentos relacionados sobre los datos y la recuperación ante desastres.

Haz que tus tareas sean específicas

Cuando llegue el momento de ejecutar tu plan de recuperación ante desastres, no querrás detenerte a adivinar qué significa cada paso. Haz que cada tarea en tu plan de recuperación ante desastres consista de uno o más comandos o acciones concretos y claros. Por ejemplo, "Ejecutar la secuencia de comandos de restablecimiento" es muy general. En cambio, “Abrir Bash y ejecutar /home/example/restore.sh” es preciso y concreto.

Implementar medidas de control

Agrega controles para prevenir desastres y detectar problemas antes de que ocurran. Por ejemplo, agrega un monitor que envíe una alerta cuando un flujo destructivo de datos, como una canalización de eliminación, presenta picos inesperados, o bien otra actividad inusual. Este monitor también podría cancelar los procesos de la canalización si se alcanza un cierto límite de eliminación, y así prevenir una situación catastrófica.

Preparar tu software

Como parte de la planificación de recuperación ante desastres, debes asegurarte de que el software que utilizas esté preparado para un evento de recuperación.

Verifica que puedes instalar tu software

Asegúrate de que el software de tu aplicación se pueda instalar desde el origen o desde una imagen preconfigurada. También, asegúrate de contar con la licencia adecuada de cualquier software que vayas a implementar en GCP: consulta al proveedor del software para obtener asesoramiento.

Diseña una implementación continua para la recuperación

Tu conjunto de herramientas de implementación continua (CD) es un componente fundamental para implementar tus aplicaciones. Como parte de tu plan de recuperación, debes considerar en qué lugar de tu entorno recuperado implementarás los artefactos. Planea dónde deseas alojar los artefactos y tu entorno de CD; deben estar disponibles y en funcionamiento en caso de que ocurra un desastre.

Implementar los controles de seguridad y cumplimiento

La seguridad es importante en el diseño de tu plan de recuperación ante desastres. Se deben aplicar los mismos controles que tienes en tu entorno de producción a tu entorno recuperado. También se aplicarán los reglamentos de cumplimiento.

Configura la seguridad para los entornos de producción y de recuperación ante desastres de igual manera

Asegúrate de que los controles de tu red proporcionen la misma separación y bloqueo que utiliza el entorno de producción de origen. Aprende a configurar la VPC compartida y los firewalls de GCP para que te permitan establecer herramientas de redes y un control de seguridad de tu implementación centralizados, configurar subredes, controlar el tráfico entrante y saliente, etcétera. Comprende cómo utilizar las cuentas de servicio para implementar los privilegios mínimos en las aplicaciones que tienen acceso a las API de GCP. Asegúrate de utilizar las cuentas de servicio como parte de las reglas de firewall.

También, asegúrate de otorgarles a los usuarios el mismo acceso al entorno de recuperación ante desastres que tienen en el entorno de producción de origen. En la siguiente lista, se describen las maneras de sincronizar los permisos entre entornos:

  • Si tu entorno de producción es GCP, es sencillo repite las políticas de IAM en el entorno de recuperación ante desastres. Puedes utilizar métodos de infraestructura como código (IAC) y herramientas como Cloud Deployment Manager para implementar tus políticas de Cloud IAM en producción. Luego, utiliza las mismas herramientas para vincular las políticas a los recursos correspondientes en el entorno de recuperación ante desastres como parte del proceso de preparación de tu entorno de recuperación ante desastres.

  • Si tu entorno de producción es local, asigna las funciones de los roles, como administrador de red y auditor, a las políticas de IAM que tienen roles de IAM adecuados. La documentación de IAM tiene algunos ejemplos de configuraciones para las funciones de roles. Consulta la documentación para crear funciones de roles de herramientas de redes y registros de auditoría.

  • Debes configurar las políticas de IAM para otorgar los permisos adecuados a los productos. Por ejemplo, tal vez quieras restringir el acceso a depósitos de Cloud Storage específicos.

  • Si tu entorno de producción es otro proveedor de servicios en la nube, asigna los permisos en la IAM del proveedor a las políticas de IAM de GCP. Por ejemplo, si tu entorno de producción es AWS, puedes obtener detalles si consultas GCP para profesionales de AWS: Administración.

Verifica tu seguridad de recuperación ante desastres

Luego de configurar los permisos para el entorno de recuperación ante desastres, asegúrate de probar todo. Crea un entorno de prueba. Utiliza métodos de IAC que empleen herramientas como Cloud Deployment Manager para implementar tus políticas de IAM en el entorno de prueba. Verifica que el acceso que les otorgas a los usuarios brinde los mismos permisos que tienen los usuarios de forma local.

Asegúrate de que los usuarios puedan acceder al entorno de recuperación ante desastres

Del mismo modo, no esperes a que ocurra un desastre antes de verificar que tus usuarios puedan acceder al entorno de recuperación ante desastres. Asegúrate de haberles otorgado los derechos de acceso adecuados a los usuarios, desarrolladores, operadores, científicos de datos, administradores de seguridad, administradores de red y cualquier otra función en tu organización. Si utilizas un sistema de identidades alternativo, asegúrate de que las cuentas se hayan sincronizado con tu cuenta de Cloud Identity. Debido a que el entorno de recuperación ante desastres será tu entorno de producción por un tiempo, haz que los usuarios que necesiten acceder al entorno de recuperación antes desastres puedan hacerlo y resuelve cualquier problema de autenticación. Incorpora a los usuarios que acceden al entorno de recuperación ante desastres como parte de las pruebas de recuperación ante desastres frecuentes que implementes.

Para administrar de manera centralizada quién tiene acceso SSH a máquinas virtuales (VM) lanzadas, habilita la función de acceso al SO en los proyectos de GCP que constituyen tu entorno de recuperación ante desastres.

Capacita a los usuarios

Los usuarios necesitan comprender cómo realizar las acciones en GCP que están acostumbrados a llevar a cabo en el entorno de producción, como acceder, poder utilizar las VM, etcétera. A través del entorno de prueba, muestra a tus usuarios cómo realizar estas tareas de modo tal que se proteja la seguridad de tu sistema.

Asegúrate de que el entorno de recuperación ante desastres cumpla con los requisitos de cumplimiento

Verifica que el acceso a tu entorno de recuperación ante desastres esté restringido solo a aquellos que lo necesiten. Asegúrate de que los datos de PII estén ocultos y encriptados. Si realizas pruebas de penetración frecuentes en tu entorno de producción, debes incluir tu entorno de recuperación ante desastres como parte de ese alcance y realizar pruebas frecuentes mediante la preparación de un entorno de recuperación ante desastres.

Asegúrate de que, mientras tu entorno de recuperación ante desastres esté en uso, cualquier registro que recopiles esté reabastecido en el archivo de registros de tu entorno de producción. Del mismo modo, asegúrate de que, como parte del entorno de recuperación ante desastres, puedas exportar registros de auditoría que se recopilan a través de Stackdriver a tu archivo receptor de registros principal. Utiliza los servicios del receptor de exportación. Para los registros de aplicaciones, duplica tu entorno de supervisión y registros local. Si tu entorno de producción es otro proveedor de servicios en la nube, asigna los registros y la supervisión de ese proveedor a los servicios de GCP equivalentes. Utiliza un proceso para dar formato a los datos de entrada en tu entorno de producción.

Utiliza Cloud Storage como parte de tus rutinas de copias de seguridad diarias

Utiliza Cloud Storage para almacenar copias de seguridad. Asegúrate de que los depósitos que contienen tus copias de seguridad tengan aplicados los permisos adecuados.

Administra los secretos de forma adecuada

Administra las claves y los secretos a nivel de la aplicación con GCP para alojar el servicio de administración (KMS) del secreto/la clave. Puedes utilizar Cloud KMS o una solución de terceros como HashiCorp Vault con un backend de GCP, como Cloud Spanner o Cloud Storage.

Trata los datos recuperados como si fueran datos de producción

Asegúrate de que los controles de seguridad que aplicas a tus datos de producción también se apliquen a tus datos recuperados: se deben aplicar los mismos permisos y requisitos de auditoría, y la misma encriptación.

Aprende dónde están ubicadas tus copias de seguridad y quién está autorizado a restablecer los datos. Comprueba que tu proceso de recuperación sea auditable: luego de una recuperación ante desastres, asegúrate de que puedes mostrar quién tenía acceso a los datos de las copias de seguridad y quién realizó la recuperación.

Asegurarte de que tu plan de recuperación ante desastres funcione

Tienes que corroborar que tu planificación tenga un buen resultado. Para ello asegúrate de que, en caso de ocurrir algún desastre, todo funcione como quieres.

Mantén más de una ruta de acceso a la recuperación de datos

En caso de que se produzca un desastre, puede que tu conexión a GCP deje de estar disponible. Utiliza un medio alternativo de acceso a GCP para asegurarte de que puedas transferir datos a GCP. Prueba con frecuencia que la ruta de acceso alternativa funcione.

Prueba tu plan con frecuencia

Luego de que tu plan de recuperación ante desastres esté listo, pruébalo con frecuencia, ten en cuenta cualquier problema que surja y ajusta tu plan según sea necesario. Con GCP, puedes probar situaciones de recuperación con un costo mínimo. Se recomienda que sigas estos pasos para realizar la prueba:

  • Automatiza el aprovisionamiento de infraestructura con Deployment Manager. Puedes utilizar Cloud Deployment Manager para automatizar el aprovisionamiento de instancias de VM y otra infraestructura de GCP. Si ejecutas tu entorno de producción de manera local, debes asegurarte de tener un proceso de supervisión que pueda iniciar el proceso de recuperación ante desastres cuando detecte una falla y activar las acciones de recuperación adecuadas.
  • Supervisa y depura tus pruebas con Stackdriver Logging y Stackdriver Monitoring. GCP tiene excelentes herramientas de supervisión y registro a las que puedes acceder a través de llamadas a la API, lo cual te permite automatizar la implementación de situaciones de recuperación reaccionando a las métricas. Cuando diseñes pruebas, asegúrate de que cuentas con supervisión y alertas adecuadas que puedan activar las acciones de recuperación necesarias.
  • Realiza las pruebas que se mencionaron antes:

    • Prueba que los permisos y el acceso del usuario funcionen en el entorno de recuperación ante desastres como lo hacen en el entorno de producción.
    • Realiza pruebas de penetración en tu entorno de recuperación ante desastres.
    • Realiza una prueba en la que tu ruta de acceso a GCP normal no funcione.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...