Recuperación ante desastres con instantáneas de entorno

Cloud Composer 1 | Cloud Composer 2

En esta página, se describe cómo usar las instantáneas de entorno para la recuperación ante desastres.

Definiciones

En esta guía, se usan las siguientes definiciones:

  • Un desastre es un evento en el que Cloud Composer o algún otro componente esencial para el funcionamiento del entorno no están disponibles. Este evento requiere una conmutación por error a una región y entornos de Cloud Composer diferentes. La causa de un desastre puede ser natural o provocada por el ser humano, incluidos el tiempo de inactividad de las regiones de Google Cloud y las interrupciones en tu propia infraestructura.
  • La recuperación ante desastres (DR), en el contexto de Cloud Composer, es un proceso para restablecer el funcionamiento del entorno después de un desastre. El proceso implica volver a crear el entorno, posiblemente en otra región. Para obtener más información sobre la recuperación ante desastres, consulta la Guía de planificación de recuperación ante desastres.
  • El entorno principal es un entorno de Cloud Composer en el que deseas habilitar una capacidad de DR.
  • El entorno de conmutación por error es un entorno de Cloud Composer designado para tomar el control de las actividades del entorno principal.
  • La situación de DR semicaliente es una variante de la recuperación ante desastres, en la que usas un entorno de conmutación por error en espera, que creas antes de que ocurra un desastre.
  • La situación de DR en frío es una variante de la recuperación ante desastres, en la que creas un entorno de conmutación por error después de un desastre.
  • La DR entre regiones es una variante de recuperación ante desastres fría o semicaliente en la que el entorno principal y el de conmutación por error se encuentran en diferentes regiones.

Acerca del procedimiento de recuperación ante desastres

El procedimiento de recuperación ante desastres resuelve el problema cuando tu entorno principal se vuelve inoperativo (dañado o inaccesible) debido a un desastre.

En este procedimiento, se supone que tu entorno principal no se corregirá de forma local para abordar el desastre. En su lugar, creas un segundo entorno (de conmutación por error) en paralelo. Este entorno funciona en lugar del principal. En una etapa posterior, puedes decidir volver al entorno principal o seguir usando el entorno de conmutación por error.

Debido a que el procedimiento usa un entorno de conmutación por error, los cambios se introducirán cuando cambies del entorno principal. Los cambios entre el entorno principal y el de conmutación por error incluyen lo siguiente (la lista no es exhaustiva):

  • La URL del servidor web será diferente. Esto cambia la dirección de la IU de Airflow y el extremo de API de REST de Airflow.

  • La URL del bucket del entorno será diferente.

  • Es posible que la configuración de permisos de acceso y red requiera ajustes.

Si usas la situación de DR semicaliente, conoces de antemano los valores para el servidor web, las direcciones de bucket del entorno y la configuración de red.

Antes de comenzar

  • Cloud Composer admite instantáneas programadas en 2.0.32 y versiones posteriores. Las instantáneas de entorno son compatibles con las versiones 2.0.9 y posteriores.

Descripción general de la preparación

Ambas situaciones de DR incluyen los siguientes pasos de preparación:

  1. Crea un entorno de conmutación por error.

    • En la situación de DR semicaliente, mantienes este entorno disponible.
    • En la situación de DR en frío, creas este entorno solo para probar el procedimiento de recuperación ante desastres. Una vez completada la preparación, borra este entorno y vuelve a crearlo después de un desastre.
  2. Crea un bucket para instantáneas.

    • El bucket debe estar disponible en la región de DR. Para la DR entre regiones, el bucket de instantáneas debe ser multirregional o estar ubicado en una región diferente a la del entorno principal.

    • Comprueba que los DAG puedan acceder a los recursos regionales.

  3. Configura el mantenimiento de la base de datos.

  4. Configura instantáneas programadas.

  5. Prueba el procedimiento de recuperación ante desastres.

Descripción general de la recuperación ante desastres

Después de que ocurre un desastre:

  1. (Solo para DR en frío) Crea un entorno de conmutación por error.
  2. Si es posible, detén la ejecución de DAG en el entorno principal.
  3. Carga una instantánea del bucket de instantáneas al entorno de conmutación por error.
  4. Si es necesario, ajusta la configuración del entorno de conmutación por error.
  5. Decide qué hacer con el entorno principal.

Pasos de preparación

Sigue los pasos que se describen a continuación para configurar la recuperación ante desastres en tu entorno.

Crea un entorno de conmutación por error

Crea un entorno que actúe como un entorno de conmutación por error.

Usa los siguientes lineamientos:

  • Tu entorno principal y de conmutación por error deben usar la misma versión de Cloud Composer y Airflow.

  • En la situación de DR semicaliente, asegúrate de actualizar y actualizar ambos entornos sincronizados. Por ejemplo, si actualizas el entorno principal a una versión posterior de Cloud Composer o instalas paquetes de PyPI, el entorno de conmutación por error también debe tener estos cambios.

  • Recomendamos crear el entorno de conmutación por error en una región diferente del entorno principal. Como resultado, se puede cubrir una gama más amplia de posibles situaciones de desastre, como un desastre que afecte la disponibilidad de toda la región.

  • Recomendamos usar Terraform para crear entornos principales y de conmutación por error, de modo que ambos tengan una configuración coherente. Asegúrate de que las definiciones de Terraform para el entorno principal y de conmutación por error estén sincronizadas.

  • Se recomienda la configuración del entorno de conmutación por error (como el tamaño del entorno, la cantidad de programadores y los permisos de IAM) para cumplir con la configuración del entorno principal. Los permisos de IAM para ambos entornos deben otorgar el acceso adecuado a los usuarios y las instantáneas.

Verifica la disponibilidad de los recursos

Los DAG pueden operar en recursos externos, y el acceso a ellos puede depender de la configuración del entorno (como los permisos otorgados a la cuenta de servicio del entorno, la configuración de red o el proyecto). Asegúrate de que esos recursos estén disponibles para el entorno de conmutación por error.

Un entorno puede interactuar con algunos recursos externos a través de conexiones almacenadas en Airflow. Verifica si estos recursos deben ajustarse en el entorno de conmutación por error en comparación con el entorno principal.

Crea un bucket de almacenamiento para instantáneas

Crea un nuevo bucket de almacenamiento para las instantáneas de entorno. No uses buckets de entorno para la recuperación ante desastres, ya que la configuración de la política de retención y el ciclo de vida se aplica a nivel del bucket.

Asegúrate de que este bucket de almacenamiento tenga permisos de IAM, una política de retención y una configuración del ciclo de vida establecidos de tal manera que evite la eliminación accidental o el acceso no autorizado. Si deseas obtener más información sobre cómo configurar un bucket para instantáneas, consulta Configura instantáneas programadas.

Puedes hacer lo siguiente:

  • Crea un bucket en una región diferente.
  • Crear un bucket multirregional

Configura el mantenimiento de la base de datos

Mantén pequeña la base de datos de metadatos de Airflow mediante la ejecución del DAG de mantenimiento de bases de datos. Esto agiliza el proceso de guardar y cargar las instantáneas. La base de datos de metadatos de Airflow debe tener menos de 20 GB de datos para admitir instantáneas.

Configura las instantáneas programadas

Configura instantáneas programadas para el entorno principal.

Las instantáneas solo se pueden crear en un entorno en buen estado, por lo que las instantáneas deben guardarse antes de que ocurra el desastre.

Para obtener más información sobre cómo funcionan las instantáneas, consulta Guarda y carga instantáneas de entorno. Consulta la sección Guarda una instantánea del entorno de la documentación para obtener información sobre dónde encontrar las instantáneas guardadas.

Configura la supervisión para las operaciones de instantáneas programadas (opcional)

En el caso de las instantáneas programadas con una frecuencia de al menos una vez cada 12 horas, puedes usar Cloud Monitoring para recibir alertas cuando una instantánea no se crea de forma automática.

En el caso de los programas de menor frecuencia, usa Google Cloud CLI para verificar los resultados de las operaciones de instantáneas. Consulta Verifica las operaciones de guardado de instantáneas.

  1. En la consola de Google Cloud, ve a la página Monitoring.

    Ir a Monitoring

  2. En el panel de navegación de Monitoring, selecciona  Alertas.
  3. Si aún no creas canales de notificaciones y deseas recibir notificaciones, haz clic en Edit Notification Channels y agrega tus canales de notificaciones. Regresa a la página Alertas después de agregar tus canales.
  4. En la página Alertas, selecciona Crear política.
  5. Para seleccionar la métrica, expande el menú Seleccionar una métrica y, luego, haz lo siguiente:
    1. Para limitar el menú a las entradas relevantes, ingresa Composer Snapshot en la barra de filtros. Si no hay resultados después de que filtres el menú, inhabilita el botón de activación Show only active resources & metrics.
    2. En Tipo de recurso, selecciona Entorno de Cloud Composer.
    3. En la Categoría de métrica, selecciona Entorno.
    4. En Métrica, selecciona Recuento de creación de instantáneas.
    5. Selecciona Apply (Apply).
  6. Haz clic en Agregar filtro y usa los menús desplegables para agregar los siguientes filtros:
    Filtro Comparador Valor
    Etiqueta del recurso > Environment_name = El nombre del entorno en el que deseas supervisar las instantáneas programadas.
    Etiqueta de supervisión > Resultado = SUCCEEDED
  7. En la sección Transforma los datos, configura los siguientes atributos:
    • En Ventana progresiva, selecciona la ventana de supervisión para esta alerta. Este valor afecta la configuración del umbral en el siguiente paso.

      Valor recomendado para la supervisión de instantáneas programada: 1 día.

    • En Función de ventana progresiva, selecciona delta.
  8. Haz clic en Siguiente.
  9. La configuración de la página Configure alert trigger determina cuándo se activa la alerta. Completa esta página con la configuración en la siguiente tabla.
    Campo Valor
    Condition type Threshold
    Alert trigger Any time series violates
    Threshold position Below threshold
    Threshold value La cantidad de instantáneas programadas que esperas que se guarden dentro del período configurado como Período progresivo de la alerta.

    Calcula este valor con la siguiente fórmula:

    (rolling window in hours / schedule frequency in hours) - 1

    Nota: Si se deduce 1 hora en la fórmula, se tienen en cuenta los tiempos de finalización de las instantáneas variables. Esto ayuda a evitar que se generen falsos positivos si la última instantánea aún se está ejecutando durante una verificación de supervisión.

    Ejemplo:
    Si usas la ventana progresiva recomendada de 1 día y la frecuencia de tu programación es una vez cada 2 horas, establece este valor en 11 (según el cálculo: 24 / 2 - 1 = 11).

    Si tu programación se ejecuta de forma correcta, debes tener al menos 11 instantáneas en cualquier período de 24 horas. Si no lo haces, significa que una operación de instantánea no se completó de forma correcta y Cloud Monitoring activa esta alerta.

    Condition name El nombre personalizado de la condición.
  10. Haz clic en Siguiente.
  11. Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones (opcional). En el diálogo, selecciona uno o más canales de notificaciones del menú y, luego, haz clic en Aceptar.
  12. Opcional: Actualiza la Duración del cierre automático de incidentes. Este campo determina cuándo Monitoring cierra los incidentes ante la ausencia de datos de métricas.
  13. Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
  14. Haz clic en Nombre de la alerta y, luego, ingresa un nombre para la política de alertas.
  15. Haz clic en Crear política.
Para obtener más información, consulta Políticas de alertas.

Prueba el procedimiento de recuperación ante desastres

Asegúrate de probar el procedimiento de recuperación ante desastres después de configurarlo y, luego, de forma periódica. Esto te permite abordar problemas potenciales que podrían afectar el proceso real de recuperación ante desastres.

En la situación de DR en frío, puedes borrar el entorno de conmutación por error después de terminar de probar el procedimiento de recuperación ante desastres.

Verifica las operaciones de guardado de instantáneas

Puedes usar Google Cloud CLI a fin de recuperar la lista de operaciones de guardar instantáneas y verificar si tus instantáneas están listas para situaciones de recuperación ante desastres.

Este método es útil si guardas instantáneas con menos frecuencia que al menos una vez cada 12 horas. Para verificar las instantáneas que se guardan con más frecuencia, es mejor configurar las alertas de Cloud Monitoring. Consulta Configura la supervisión para las operaciones de instantáneas programadas.

gcloud

Enumera todas tus operaciones de instantáneas para un entorno específico. Para obtener la referencia completa de comandos, consulta gcloud composer operations list.

gcloud composer operations list \
    --locations LOCATION \
    --filter="metadata.operationType=SAVE_SNAPSHOT AND
    metadata.resource=projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_ID"
    --format yaml

Reemplaza lo siguiente:

  • LOCATIONS por la lista de identificadores de la región en la que se encuentra el entorno
  • PROJECT_ID por el identificador del proyecto en el que se encuentra el entorno
  • ENVIRONMENT_ID por el identificador del entorno en el que deseas verificar las operaciones de instantáneas

Ejemplo:

gcloud composer operations list \
    --locations us-central1 \
    --filter="metadata.operationType=SAVE_SNAPSHOT AND
    metadata.resource=projects/my-project/locations/us-central1/environments/my-environment"
    --format yaml

Después de un desastre

Después de un desastre, sigue los pasos que se describen a continuación para recuperar tu entorno principal.

Crea un entorno de conmutación por error (solo para DR en frío)

Sigue las instrucciones de la sección Crea un entorno de conmutación por error.

Detener la ejecución de DAG en el entorno principal

Si es posible, evita que el entorno principal ejecute DAG:

  • Si aún se puede acceder al entorno principal, pausa todos los DAG.
  • Si se puede acceder al bucket del entorno principal, mueve todos los DAG del bucket del entorno o a una carpeta que se encuentre /dags en el bucket del entorno principal.

Carga una instantánea en el entorno de conmutación por error

Carga una instantánea del entorno principal en el entorno de conmutación por error.

Una vez que la instantánea se carga en el entorno de conmutación por error, programa y ejecuta tareas como si el entorno principal no hubiera ejecutado nada después de crear una instantánea. Sin embargo, es posible que el entorno principal ya haya ejecutado algunas de esas tareas. El entorno de conmutación por error no tiene ningún medio para reconocer qué tareas se ejecutaron después de crear la instantánea y antes de un desastre. Como resultado, algunas tareas pueden ejecutarse dos veces (en el entorno principal y en el de conmutación por error). Recomendamos que todas las tareas sean idempotentes y que las instantáneas programadas se creen cada dos horas.

Ajusta la configuración del entorno de conmutación por error (si es necesario).

En algunos casos, es posible que desees cambiar la configuración del entorno de conmutación por error después de cargar en él la instantánea del entorno principal.

Por ejemplo, en una situación de DR en frío, es posible que debas usar un conjunto diferente de variables de entorno de Airflow en el entorno de conmutación por error. Como otro ejemplo, en una situación de DR semicaliente, es posible que debas otorgar permisos a los usuarios en la IU de Airflow para que puedan acceder al entorno de conmutación por error.

Puedes realizar estos cambios de forma manual o preparar una secuencia de comandos de shell con comandos que cambien la configuración del entorno de conmutación por error mediante la ejecución de los comandos gcloud composer environment update.

Decidir qué hacer con el entorno principal

Algunos desastres pueden ocurrir porque no se puede acceder al entorno principal, pero aún funciona o no funciona correctamente. Por ejemplo, no puedes acceder al entorno principal a través de la red debido a una falla de la infraestructura. Como otro ejemplo, el entorno funciona con algunos errores o con capacidad reducida, pero algunos DAG aún se ejecutan.

Si el entorno original aún se está ejecutando, es posible que genere costos directamente relacionados con Cloud Composer o con otros servicios a los que se accede a través de los DAG, aunque se haya creado un entorno nuevo como reemplazo. Este entorno aún puede ejecutar algunos DAG; por lo tanto, algunas operaciones pueden ejecutarse dos veces: en el entorno principal que aún se está ejecutando y en el de conmutación por error después de cargar la instantánea.

Si el entorno principal existe, pero no funciona correctamente

El entorno principal puede borrarse si se recuperaron todos los datos relevantes. Por ejemplo, es posible que desees recuperar datos que no están incluidos en las instantáneas de entorno, como la configuración de red o el contenido del bucket del entorno fuera de las carpetas /dags y /plugins.

Si el entorno principal vuelve a ser accesible y en buen estado

Si no se pudo acceder al entorno principal solo temporalmente y vuelve a estar accesible y en buen estado, puedes elegir un enfoque:

  • Sigue usando el entorno de conmutación por error.
  • Regresa al entorno principal.

Para seguir usando el entorno de conmutación por error, sigue estos pasos:

  1. Si el entorno principal aún ejecuta DAG, páusalos lo antes posible.
  2. Asegúrate de que se recuperen todos los datos relevantes y, luego, borra el entorno principal.
  3. Repite los pasos de preparación de DR para el entorno de conmutación por error, como la configuración de instantáneas programadas.

Para volver al entorno principal, sigue estos pasos:

  1. Pausa todos los DAG en el entorno de conmutación por error.
  2. Espera a que se completen todas las ejecuciones de DAG en el entorno de conmutación por error o detenlas.
  3. Guardar una instantánea del entorno de conmutación por error
  4. Carga esta instantánea en el entorno principal.
  5. Reanuda los DAG en el entorno principal.
  6. Si es necesario, borra el entorno de conmutación por error.

¿Qué sigue?