Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
En esta página, se describe cómo usar las instantáneas del 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 u otros componentes esenciales para el funcionamiento de tu entorno no están disponibles. Este evento requiere una conmutación por error a otra región y a otros entornos de Cloud Composer. La causa de un desastre puede ser natural o provocada por el ser humano, lo que incluye el tiempo de inactividad de las regiones de Google Cloud y las interrupciones en tu propia infraestructura.
- En el contexto de Cloud Composer, la recuperación ante desastres (DR) es un proceso para restablecer el funcionamiento del entorno después de un desastre. El proceso implica recrear 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 para la recuperación ante desastres.
- El entorno principal es un entorno de Cloud Composer para el que deseas habilitar una capacidad de DR.
- El entorno de conmutación por error es un entorno de Cloud Composer designado para hacerse cargo de las actividades del entorno principal.
- El escenario de DR en espera es una variante de la recuperación ante desastres en la que se usa un entorno de conmutación por error en espera que se crea antes de que ocurra un desastre.
- El escenario de DR en frío es una variante de la recuperación ante desastres en la que se crea un entorno de conmutación por error después de que ocurre un desastre.
- La DR entre regiones es una variante de la recuperación ante desastres en frío o en caliente en la que el entorno principal y el de conmutación por error se encuentran en regiones diferentes.
Acerca del procedimiento de recuperación ante desastres
El procedimiento de recuperación ante desastres resuelve el problema cuando tu entorno principal deja de funcionar (se daña o no se puede acceder a él por algún otro motivo) debido a un desastre.
En este procedimiento, se supone que tu entorno principal no se corregirá en el lugar para abordar el desastre. En cambio, creas un segundo entorno (de conmutación por error) de forma paralela. Este entorno funciona en lugar del entorno principal. En una etapa posterior, es posible que decidas volver al entorno principal o seguir usando el entorno de conmutación por error.
Dado 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 los siguientes (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 se deba ajustar la configuración de la red y los permisos de acceso.
Si usas la situación de DR de recuperación en caliente, conoces los valores del servidor web, las direcciones de bucket del entorno y la configuración de red con anticipación.
Antes de comenzar
La base de datos de Airflow debe tener menos de 20 GB de datos para crear instantáneas.
La cantidad total de objetos en las carpetas
/dags
,/plugins
y/data
del bucket del entorno debe ser inferior a 100,000 para crear instantáneas.Si usas el mecanismo XCom para transferir archivos, asegúrate de usarlo según los lineamientos de Airflow. La transferencia de archivos grandes o una gran cantidad de archivos con XCom afecta el rendimiento de la base de datos de Airflow y puede provocar errores al cargar instantáneas o actualizar tu entorno. Considera usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
Descripción general de la preparación
Ambos casos de DR incluyen los siguientes pasos de preparación:
Crea un entorno de conmutación por error.
- En la situación de DR tibia, mantienes este entorno disponible.
- En la situación de DR fría, creas este entorno solo para probar tu procedimiento de recuperación ante desastres. Después de completar la preparación, borras este entorno y lo vuelves a crear después de que ocurre un desastre.
Crea un bucket para las 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.
Verifica que los DAG puedan acceder a los recursos regionales.
Descripción general de la recuperación ante desastres
Después de un desastre, haz lo siguiente:
- (Solo para DR en frío) Crea un entorno de conmutación por error.
- Si es posible, evita que el entorno principal ejecute DAGs.
- Carga una instantánea desde el bucket de instantáneas en el entorno de conmutación por error.
- Si es necesario, ajusta la configuración del entorno de conmutación por error.
- 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 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 y compilación de Airflow.
En la situación de DR en espera, asegúrate de actualizar y actualizar ambos entornos de forma sincronizada. Por ejemplo, si actualizas el entorno principal a una compilación posterior de Airflow o instalas paquetes de PyPI, tu entorno de conmutación por error también debe tener estos cambios.
Te recomendamos que crees el entorno de conmutación por error en una región diferente del entorno principal. Como resultado, se puede abarcar una gama más amplia de posibles situaciones de desastre, como un desastre que afecte la disponibilidad de toda la región.
Te recomendamos que uses 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 los entornos principal y de conmutación por error estén sincronizadas.
Se recomienda que 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) se ajuste a 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.
Comprueba la disponibilidad del recurso
Los DAG pueden operar en recursos externos, y el acceso a esos recursos 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. Comprueba si estos recursos se deben ajustar en el entorno de conmutación por error en comparación con el entorno principal.
Crea un bucket de almacenamiento para las instantáneas
Crea un bucket de almacenamiento nuevo para las instantáneas del 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 manera que se evite el acceso no autorizado o la eliminación accidental. Para obtener más información sobre cómo configurar un bucket para las instantáneas, consulta Configura instantáneas programadas.
Puedes hacer lo siguiente:
- Crea un bucket en otra región.
- Crea un bucket multirregional.
Configura el mantenimiento de la base de datos
Configura la limpieza de la base de datos para que la base de datos de Airflow sea pequeña y se mantenga dentro del límite de tamaño. Esto acelera el proceso de guardar y cargar instantáneas. La base de datos de Airflow debe tener menos de 20 GB de datos para crear instantáneas.
Configura 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 deben guardarse antes de que ocurra el desastre.
Para obtener más información sobre cómo funcionan las instantáneas, consulta Cómo guardar y cargar instantáneas del entorno. Consulta la sección Cómo guardar una instantánea del entorno de la documentación para obtener información sobre dónde encontrar las instantáneas guardadas.
(Opcional) Configura la supervisión de las operaciones de instantáneas programadas
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 no se cree una instantánea de forma automática.
Para los programas de menor frecuencia, usas Google Cloud CLI para verificar los resultados de las operaciones de instantáneas. Consulta Cómo verificar las operaciones de guardar instantáneas.
- En la consola de Google Cloud , ve a la página Monitoring.
- En el panel de navegación de Monitoring, selecciona notifications Alertas.
- 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.
- En la página Alertas, elige Crear política.
- Para elegir la métrica, expande el menú Seleccionar una métrica y, luego, haz lo siguiente:
- 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. - En Tipo de recurso, selecciona Cloud Composer Environment.
- En Categoría de métrica, selecciona Entorno.
- En Métrica, selecciona Recuento de creación de instantáneas.
- Selecciona Apply (Apply).
- Para limitar el menú a las entradas relevantes, ingresa
-
Haz clic en Agregar filtro y usa los menús desplegables para agregar los siguientes filtros:
Filtro Comparador Valor Etiqueta de recurso > environment_name = Es el nombre del entorno en el que deseas supervisar las instantáneas programadas. Etiqueta de supervisión > resultado = SUCCEEDED
- 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 programadas: 1 día.
- En Función de ventana progresiva, selecciona delta.
- En Ventana progresiva, selecciona la ventana de supervisión para esta alerta.
Este valor afecta la configuración del umbral en el siguiente paso.
- Haz clic en Siguiente.
- 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 de la siguiente tabla.
Campo Valor Condition type
Threshold
Alert trigger
Any time series violates
Threshold position
Below threshold
Threshold value
Es la cantidad de instantáneas programadas que esperas que se guarden en el período configurado como Ventana continua para la alerta. Calcula este valor con la siguiente fórmula:
(rolling window in hours / schedule frequency in hours) - 1
Nota: La deducción de
1
horas en la fórmula tiene como objetivo tener en cuenta los diferentes tiempos de finalización de las instantáneas. Esto ayuda a evitar que se generen falsos positivos si la instantánea más reciente aún se está ejecutando durante una verificación de supervisión.Ejemplo:
Si usas la ventana continua recomendada de 1 día y la frecuencia de tu programa es cada 2 horas, establece este valor en11
(según el cálculo:24 / 2 - 1 = 11
).Si tu programa se ejecuta correctamente, en cualquier período de 24 horas, deberías tener al menos 11 instantáneas. Si no es así, significa que una operación de instantánea no se completó correctamente y Cloud Monitoring activa esta alerta.
Condition name
Es el nombre personalizado que le asignaste a la condición. - Haz clic en Siguiente.
- Para agregar notificaciones a tu política de alertas, haz clic en Canales de notificaciones (opcional). En el diálogo, elige uno o más canales de notificaciones del menú y, luego, haz clic en Aceptar.
- 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.
- Opcional: Haz clic en Documentación y, luego, agrega la información que deseas incluir en un mensaje de notificación.
- Haz clic en Nombre de la alerta y, luego, ingresa un nombre para la política de alertas.
- Haz clic en Crear política.
Prueba tu 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 posibles problemas 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 guardar instantáneas
Puedes usar Google Cloud CLI para recuperar la lista de operaciones de guardar instantánea 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 guardadas con mayor frecuencia, lo mejor es configurar las alertas de Cloud Monitoring. Consulta Configura la supervisión de las operaciones de instantáneas programadas.
gcloud
Enumera todas tus operaciones de instantáneas para un entorno específico.
Para obtener la referencia completa del comando, 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 región en la que se encuentra el entornoPROJECT_ID
con el identificador del proyecto en el que se encuentra el entornoENVIRONMENT_ID
con 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
Qué hacer después de un desastre
Sigue los pasos que se describen a continuación después de un desastre para recuperar tu entorno principal.
(Solo para DR en frío) Crea un entorno de conmutación por error
Sigue las instrucciones de la sección Crea un entorno de conmutación por error.
Detén la ejecución de DAGs en el entorno principal
Si es posible, evita que el entorno principal ejecute DAGs:
- Si aún se puede acceder al entorno principal, pausa todos los DAGs.
- Si se puede acceder al bucket del entorno principal, mueve todos los DAGs del bucket del entorno o a una carpeta fuera de
/dags
en el bucket del entorno principal.
Cómo cargar 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 medios para reconocer qué tareas se ejecutaron después de crear la instantánea y antes de un desastre. Como resultado, algunas tareas podrían ejecutarse dos veces (tanto en el entorno principal como en el de conmutación por error). Te recomendamos que todas las tareas sean idempotentes y que las instantáneas programadas se creen cada dos horas.
(Si es necesario) Ajusta la configuración del entorno de conmutación por error
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 activa, 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 ejecutando comandos gcloud composer environment update
.
Decide qué hacer con el entorno principal
Algunos desastres pueden ocurrir porque no se puede acceder al entorno principal, pero este sigue operativo o no funciona correctamente. Por ejemplo, no puedes acceder al entorno principal a través de la red debido a una falla en la infraestructura. Como otro ejemplo, el entorno funciona con algunos errores o con capacidad reducida, pero algunos DAGs aún se ejecutan.
Si el entorno original sigue en ejecución, es posible que genere costos relacionados directamente 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 que es posible que algunas operaciones se ejecuten dos veces: en el entorno principal que aún se está ejecutando y en el entorno de conmutación por error después de cargar la instantánea.
Si el entorno principal existe, pero no funciona correctamente
Se puede borrar el entorno principal si se recuperaron todos los datos pertinentes. Por ejemplo, es posible que desees recuperar datos que no se incluyen en las instantáneas del entorno, como la configuración de redes o el contenido del bucket del entorno fuera de las carpetas /dags
y /plugins
.
Si el entorno principal vuelve a estar accesible y en buen estado
Si el entorno principal solo fue inaccesible de forma temporal y vuelve a estar accesible y en buen estado, puedes elegir uno de los siguientes enfoques:
- Sigue usando el entorno de conmutación por error.
- Regresa al entorno principal.
Para seguir usando el entorno de conmutación por error, haz lo siguiente:
- Si el entorno principal aún ejecuta DAGs, pausa su ejecución lo antes posible.
- Asegúrate de que se recuperen todos los datos pertinentes y, luego, borra el entorno principal.
- Repite los pasos de preparación para la recuperación ante DR en el entorno de conmutación por error, como configurar instantáneas programadas.
Para volver al entorno principal, haz lo siguiente:
- Pausa todos los DAG en el entorno de conmutación por error.
- Espera a que se completen todas las ejecuciones del DAG en el entorno de conmutación por error o deténlas.
- Guarda una instantánea del entorno de conmutación por error.
- Carga esta instantánea en el entorno principal.
- Reanuda los DAGs en el entorno principal.
- Si es necesario, borra el entorno de conmutación por error.