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 tras fallos.
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, como el tiempo de inactividad de las Google Cloud regiones y las interrupciones en tu propia infraestructura.
- La recuperación tras fallos (DR), en el contexto de Cloud Composer, es un proceso para restaurar el funcionamiento del entorno después de un desastre. El proceso consiste en recrear el entorno, posiblemente en otra región. Para obtener más información sobre la recuperación tras desastres, consulta la guía de planificación para la recuperación tras desastres.
- Un entorno principal es un entorno de Cloud Composer en el que quieres habilitar una función de recuperación ante desastres.
- Un entorno de failover es un entorno de Cloud Composer designado para hacerse cargo de las actividades del entorno principal.
- La recuperación tras fallos en caliente es una variante de la recuperación tras fallos en la que se usa un entorno de conmutación por error de reserva que se crea antes de que se produzca un desastre.
- La recuperación tras fallos en frío es una variante de la recuperación tras fallos en la que se crea un entorno de conmutación por error después de que se produzca un desastre.
- La recuperación tras desastres interregional es una variante de la recuperación tras desastres activa o pasiva en la que el entorno principal y el de conmutación por error se encuentran en regiones diferentes.
Acerca del procedimiento de recuperación tras fallos
El procedimiento de recuperación ante desastres resuelve el problema cuando tu entorno principal deja de funcionar (se estropea o no se puede acceder a él) debido a un desastre.
En este procedimiento se da por hecho que el entorno principal no se va a reparar in situ para hacer frente al desastre. En su lugar, crea un segundo entorno (de conmutación por error) en paralelo. Este entorno funciona en lugar del entorno principal. Más adelante, puedes decidir volver al entorno principal o seguir usando el de conmutación por error.
Como 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 failover incluyen lo siguiente (la lista no es exhaustiva):
La URL del servidor web será diferente. De esta forma, se cambia la dirección de la interfaz de usuario de Airflow y del endpoint de la API REST de Airflow.
La URL del segmento del entorno será diferente.
Es posible que tengas que ajustar la configuración de la red y los permisos de acceso.
Si usas el escenario de recuperación ante desastres en caliente, conoces de antemano los valores del servidor web, las direcciones de los segmentos del entorno y la configuración de la red.
Antes de empezar
La base de datos de Airflow debe tener menos de 20 GB de datos para crear capturas.
El número total de objetos de las carpetas
/dags
,/plugins
y/data
del segmento del entorno debe ser inferior a 100.000 para poder crear snapshots.Si usas el mecanismo XCom para transferir archivos, asegúrate de usarlo de acuerdo con las directrices de Airflow. La transferencia de archivos grandes o de un gran número de archivos mediante XCom afecta al rendimiento de la base de datos de Airflow y puede provocar errores al cargar instantáneas o actualizar el entorno. Puedes usar alternativas como Cloud Storage para transferir grandes volúmenes de datos.
Descripción general de la preparación
Ambos escenarios de recuperación ante desastres incluyen los siguientes pasos de preparación:
Crea un entorno de conmutación por error.
- En el caso de la recuperación ante desastres activa, este entorno está disponible.
- En el escenario de recuperación ante desastres en frío, creas este entorno solo para probar tu procedimiento de recuperación ante desastres. Una vez que hayas completado la preparación, elimina este entorno y vuelve a crearlo después de que se produzca un desastre.
Crea un segmento para las capturas.
El segmento debe estar disponible en la región de recuperación ante desastres. En el caso de la recuperación ante desastres entre regiones, el segmento de capturas debe ser multirregional o estar ubicado en una región diferente a la del entorno principal.
Comprueba que los DAGs puedan acceder a los recursos regionales.
Descripción general de la recuperación tras fallos
Después de que se produzca un desastre:
- (Solo recuperación ante desastres en frío) Crea un entorno de conmutación por error.
- Si es posible, impide que el entorno principal ejecute DAGs.
- Carga una instantánea del contenedor 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 indican a continuación para configurar la recuperación ante desastres en tu entorno.
Crear un entorno de conmutación por error
Crea un entorno que actúe como entorno de conmutación por error.
Sigue estas directrices:
-
El entorno principal y el de conmutación por error deben usar la misma versión y compilación de Airflow.
En el caso de la recuperación ante desastres en caliente, asegúrate de actualizar y mejorar ambos entornos de forma sincronizada. Por ejemplo, si actualizas el entorno principal a una compilación de Airflow posterior o instalas paquetes de PyPI, el entorno de failover también debe tener estos cambios.
Te recomendamos que crees el entorno de conmutación por error en una región diferente a la del entorno principal. De esta forma, se pueden cubrir más escenarios posibles de desastre, como un desastre que afecte a la disponibilidad de toda la región.
Te recomendamos que uses Terraform para crear entornos principales y de conmutación por error, de forma que ambos tengan una configuración coherente. Asegúrate de que las definiciones de Terraform de 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, el número de programadores y los permisos de IAM) se ajuste a la configuración del entorno principal. Los permisos de IAM de ambos entornos deben dar acceso adecuado a los usuarios y a las copias de seguridad.
Comprobar la disponibilidad de los recursos
Los DAGs pueden operar en recursos externos, y el acceso a esos recursos puede depender de la configuración del entorno (como los permisos concedidos a la cuenta de servicio, la configuración de red o el proyecto del entorno). Asegúrate de que esos recursos estén disponibles en 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.
Crear un segmento de almacenamiento para las capturas
Crea un segmento de almacenamiento para las copias de las instantáneas del entorno. No utilices segmentos de entorno para la recuperación tras desastres, ya que la configuración de la política de conservación y del ciclo de vida se aplica a nivel de segmento.
Asegúrate de que este segmento de almacenamiento tenga permisos de gestión de identidades y accesos, una política de conservación y una configuración de ciclo de vida que impidan la eliminación accidental o el acceso no autorizado. Para obtener más información sobre cómo configurar un bucket para las capturas, consulta Configurar capturas programadas.
Puedes hacer lo siguiente:
- Crea un segmento en otra región.
- Crea un segmento multirregional.
Configurar el mantenimiento de la base de datos
Para que la base de datos de Airflow no ocupe demasiado espacio y no supere el límite de tamaño, configura la limpieza de la base de datos. De esta forma, el proceso de guardar y cargar instantáneas será más rápido. La base de datos de Airflow debe tener menos de 20 GB de datos para crear instantáneas.
Configurar capturas programadas
Configura las capturas programadas del entorno principal.
Las capturas solo se pueden crear en un entorno correcto, por lo que deben guardarse antes de que se produzca el desastre.
Para obtener más información sobre cómo funcionan las capturas, consulta Guardar y cargar capturas del entorno. Consulta la sección Guardar una captura del entorno de la documentación para obtener información sobre dónde encontrar las capturas guardadas.
(Opcional) Configurar la monitorización de operaciones de creación de snapshots programadas
En el caso de las capturas programadas con una frecuencia de al menos una vez cada 12 horas, puede usar Cloud Monitoring para recibir alertas cuando no se cree una captura automáticamente.
En el caso de las programaciones de menor frecuencia, se usa la CLI de Google Cloud para verificar los resultados de las operaciones de creación de snapshots. Consulta Verificar operaciones de guardado de capturas.
- En la Google Cloud consola, ve a la página Monitorización.
- En el panel de navegación de Monitoring, selecciona notificationsAlertas.
- Si no has creado tus canales de notificación y quieres recibir notificaciones, haz clic en Editar canales de notificación y añade tus canales de notificación. Vuelve a la página Alertas después de añadir tus canales.
- En la página Alertas, selecciona Crear política.
- Para seleccionar la métrica, despliega el menú Seleccionar una métrica y, a continuación, haz lo siguiente:
- Para limitar el menú a las entradas relevantes, introduce
Composer Snapshot
en la barra de filtro. Si no hay resultados después de filtrar el menú, desactive el interruptor Mostrar solo recursos y métricas activos. - En Tipo de recurso, seleccione Entorno de Cloud Composer.
- En Categoría de métrica, selecciona Entorno.
- En Métrica, seleccione Número de creaciones de la vista general.
- Selecciona Aplicar.
- Para limitar el menú a las entradas relevantes, introduce
-
Haga clic en Añadir filtro y, a continuación, utilice los menús desplegables para añadir los siguientes filtros:
Filtro Comparador Valor Etiqueta de recurso > environment_name = Nombre del entorno en el que quieres monitorizar las copias de seguridad programadas. Etiqueta de monitor > resultado = SUCCEEDED
- En la sección Transformar datos, defina los siguientes atributos:
- En Ventana de tiempo, selecciona la ventana de monitorización de esta alerta.
Este valor influye en la configuración del umbral en el siguiente paso.
Valor recomendado para la monitorización de las copias de seguridad programadas: 1 día.
- En Función de ventana acumulativa, selecciona delta.
- En Ventana de tiempo, selecciona la ventana de monitorización de esta alerta.
Este valor influye en la configuración del umbral en el siguiente paso.
- Haz clic en Siguiente.
- Los ajustes de la página Configurar activador de alerta determinan cuándo se activa la alerta.
Completa esta página con los ajustes de la siguiente tabla.
Campo Valor Condition type
Threshold
Alert trigger
Any time series violates
Threshold position
Below threshold
Threshold value
El número de instantáneas programadas que esperas que se guarden en el periodo configurado como Ventana de tiempo de la alerta. Calcula este valor con la siguiente fórmula:
(rolling window in hours / schedule frequency in hours) - 1
Nota: Al restar
1
hora en la fórmula, se tienen en cuenta los distintos tiempos de finalización de las copias de seguridad. Esto ayuda a evitar que se produzcan falsos positivos si la última instantánea sigue ejecutándose durante una comprobación de la monitorización.Ejemplo:
Si usa el periodo de 1 día recomendado y la frecuencia de la programación es una vez cada 2 horas, defina este valor en11
(según el cálculo:24 / 2 - 1 = 11
).Si tu programación funciona correctamente, en cualquier periodo de 24 horas deberías tener al menos 11 instantáneas. Si no lo haces, significa que una operación de creación de una copia de seguridad no se ha completado correctamente y Cloud Monitoring activa esta alerta.
Condition name
El nombre personalizado que le has dado a la condición. - Haz clic en Siguiente.
- Opcional: Para añadir notificaciones a tu política de alertas, haz clic en Canales de notificación. En el cuadro de diálogo, selecciona uno o más canales de notificación y, luego, haz clic en Aceptar.
- Opcional: Actualiza la duración del cierre automático de incidentes. Este campo determina cuándo cierra Monitoring los incidentes si no hay datos de métricas.
- Opcional: Haz clic en Documentación y añade la información que quieras incluir en las notificaciones.
- Haz clic en Nombre de la alerta y escribe el que quieras asignar a la política de alertas.
- Haz clic enCreate Policy (Crear política).
Probar el procedimiento de recuperación tras fallos
Asegúrate de probar el procedimiento de recuperación ante desastres después de configurarlo y, a continuación, periódicamente. De esta forma, puedes solucionar los posibles problemas que puedan afectar al proceso de recuperación ante desastres.
En el escenario de recuperación ante desastres en frío, puedes eliminar el entorno de conmutación por error después de terminar de probar el procedimiento de recuperación ante desastres.
Verificar operaciones de guardado de la instantánea
Puedes usar la CLI de Google Cloud para obtener la lista de operaciones de guardar snapshot y verificar si tus snapshots están listos para situaciones de recuperación ante desastres.
Este método es útil si guardas capturas con una frecuencia inferior a una vez cada 12 horas. Para verificar las copias de seguridad guardadas con más frecuencia, lo mejor es configurar las alertas de Cloud Monitoring. Consulta Configurar la monitorización de operaciones de creación de copias de seguridad programadas.
gcloud
Lista todas tus operaciones de creación de instantáneas de un entorno específico.
Para consultar la referencia completa de los 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
Sustituye:
LOCATIONS
con 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 quieres comprobar las operaciones de instantánea
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
Sigue los pasos que se indican a continuación después de que se produzca un desastre para recuperar tu entorno principal.
(Solo recuperación ante desastres en frío) Crear un entorno de conmutación por error
Siga las instrucciones de la sección Crear un entorno de conmutación por error.
Impedir que el entorno principal ejecute DAGs
Si es posible, evita que el entorno principal ejecute DAGs:
- Si el entorno principal sigue siendo accesible, pausa todos los DAGs.
- Si se puede acceder al contenedor del entorno principal, mueve todos los DAGs del contenedor del entorno o a una carpeta fuera de
/dags
en el contenedor del entorno principal.
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 copia de seguridad se haya cargado en el entorno de conmutación por error, se programarán y ejecutarán las tareas como si el entorno principal no hubiera ejecutado nada después de crear la copia de seguridad. 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 han ejecutado después de crear la captura y antes de un desastre. Como consecuencia, es posible que algunas tareas se ejecuten dos veces (tanto en el entorno principal como en el de conmutación por error). Recomendamos que todas las tareas sean idempotentes y que las capturas programadas se creen cada dos horas.
Si es necesario, ajusta la configuración del entorno de conmutación por error.
En algunos casos, puede que quieras 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 un escenario de recuperación ante desastres en frío, es posible que tengas que usar un conjunto diferente de variables de entorno de Airflow en el entorno de conmutación por error. Por ejemplo, en un escenario de recuperación ante desastres activo, es posible que tengas que conceder permisos a los usuarios en la interfaz de usuario de Airflow para que puedan acceder al entorno de conmutación por error.
Puedes hacer estos cambios manualmente o preparar un shell script con comandos que cambien la configuración del entorno de conmutación por error ejecutando 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 sigue operativo o no funciona correctamente. Por ejemplo, no puedes acceder al entorno principal a través de la red debido a un fallo de la infraestructura. Otro ejemplo: el entorno funciona con algunos errores o con una capacidad reducida, pero algunos DAGs se siguen ejecutando.
Si el entorno original sigue en ejecución, puede generar costes directamente relacionados con Cloud Composer u otros servicios a los que se acceda a través de los DAGs, aunque se haya creado un nuevo entorno como sustituto. Este entorno aún puede ejecutar algunos DAGs, por lo que es posible que algunas operaciones se ejecuten dos veces: en el entorno principal, que sigue en funcionamiento, 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
El entorno principal se puede eliminar si se han recuperado todos los datos pertinentes. Por ejemplo, puede que quieras recuperar datos que no estén incluidos en las copias de los entornos, como la configuración de la red 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 era inaccesible temporalmente y vuelve a estar accesible y en buen estado, puedes elegir una de estas opciones:
- Sigue usando el entorno de conmutación por error.
- Vuelve al entorno principal.
Para seguir usando el entorno de conmutación por error, haz lo siguiente:
- Si el entorno principal sigue ejecutando DAGs, paúsalos lo antes posible.
- Asegúrate de que se hayan recuperado todos los datos pertinentes y, a continuación, elimina el entorno principal.
- Repite los pasos de preparación ante desastres para el entorno de conmutación por error, como configurar capturas programadas.
Para volver al entorno principal, haz lo siguiente:
- Pausa todos los DAGs del entorno de conmutación por error.
- Espera a que se completen todas las ejecuciones de DAG en el entorno de conmutación por error o deténgalas.
- Guarda una captura 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, elimina el entorno de failover.