Reprise après sinistre avec des instantanés d'environnement

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Cette page explique comment utiliser les instantanés d'environnement la reprise après sinistre.

Définitions

Ce guide utilise les définitions suivantes:

  • Un sinistre est un événement au cours duquel Cloud Composer ou d'autres composants essentielles au fonctionnement de votre environnement sont indisponibles. Cet événement nécessite un basculement vers une autre région et Cloud Composer de l'infrastructure. Une catastrophe peut être naturelle ou humaine, y compris les temps d'arrêt des régions Google Cloud et les interruptions par vous-même de l'infrastructure.
  • Dans le contexte de Cloud Composer, la reprise après sinistre est de restauration du fonctionnement de l’environnement après un sinistre. La implique de recréer l'environnement, éventuellement dans une autre région. Pour plus d'informations sur la reprise après sinistre, consultez Guide de planification de reprise après sinistre
  • L'environnement principal est un environnement Cloud Composer que vous pour lesquels vous souhaitez activer une fonctionnalité de reprise après sinistre.
  • L'environnement de basculement est un environnement Cloud Composer désigné pour prendre le relais des activités de l'environnement principal.
  • Le scénario de reprise après sinistre tiède est une variante de la reprise après sinistre, dans lequel vous utilisez de basculement que vous créez avant qu'un sinistre ne se produise.
  • Le scénario de reprise après sinistre à froid est une variante de la reprise après sinistre, dans lequel vous créez de basculement après un sinistre.
  • La reprise après sinistre interrégionale est une variante de reprise après sinistre tiède ou à froid, où le l'environnement principal et l'environnement de basculement se trouvent dans des régions différentes.

À propos de la procédure de reprise après sinistre

La procédure de reprise après sinistre permet de résoudre le problème l’environnement est devenu inopérant (cassé ou autrement inaccessible), car en cas de sinistre.

Cette procédure suppose que votre environnement principal ne va pas être corrigé sur place pour faire face à la catastrophe. À la place, vous créez une seconde clé (basculement) côte à côte. Cet environnement fonctionne au lieu de l'environnement principal environnement. Par la suite, vous pouvez décider de revenir à l'instance principale ou pour continuer à utiliser l'environnement de basculement.

Comme la procédure utilise un environnement de basculement, des modifications seront apportées lorsque vous migrez depuis l'environnement principal. les modifications entre le serveur principal et de l'environnement de basculement (liste non exhaustive):

  • L'URL du serveur Web sera différente. Cela modifie l'adresse Interface utilisateur d'Airflow et point de terminaison de l'API REST Airflow.

  • L'URL du bucket de l'environnement sera différente.

  • Vous devrez peut-être ajuster la configuration des autorisations d'accès et de réseau.

Dans le scénario de reprise après sinistre tiède, vous connaissez les valeurs du serveur Web, les adresses de bucket de l'environnement et la configuration réseau à l'avance.

Avant de commencer

  • Cloud Composer est compatible avec les instantanés programmés dans les versions 2.0.32 et ultérieures. Les instantanés d'environnement sont compatibles avec les versions 2.0.9 et ultérieures.

Présentation de la préparation

Les deux scénarios de reprise après sinistre incluent les étapes de préparation suivantes:

  1. Créez un environnement de basculement.

    • Dans le scénario de reprise après sinistre tiède, vous maintenez cet environnement disponible.
    • Dans le scénario de reprise après sinistre à froid, vous créez cet environnement uniquement pour tester votre procédure de reprise après sinistre. Une fois la préparation terminée, supprimer cet environnement et le créer à nouveau après un sinistre.
  2. Créez un bucket pour les instantanés.

    • Le bucket doit être disponible dans la région de DR. Pour la reprise après sinistre interrégionale, le bucket d'instantanés doit être multirégional ou situé dans un est différente de celle de l'environnement principal.

    • Vérifier que les DAG peuvent accéder aux ressources régionales

  3. Configurez la maintenance des bases de données.

  4. Configurez des instantanés programmés.

  5. Testez votre procédure de reprise après sinistre.

Présentation de la reprise après sinistre

Après un sinistre:

  1. (Reprise après sinistre à froid uniquement) Créez un environnement de basculement.
  2. Si possible, empêchez l'environnement principal d'exécuter les DAG.
  3. Charger un instantané du bucket d'instantanés vers le basculement environnement.
  4. Si nécessaire, d'ajuster la configuration de l'environnement de basculement.
  5. Déterminez ce que vous souhaitez faire de l'environnement principal.

Étapes de préparation

Suivez la procédure décrite ci-dessous pour configurer la reprise après sinistre pour votre environnement.

Créer un environnement de basculement

Créez un environnement qui agit comme un environnement de basculement.

Respectez les consignes suivantes :

  • Votre environnement principal et votre environnement de basculement doivent utiliser la même version de Cloud Composer et Airflow.

  • Dans le scénario de reprise après sinistre tiède, veillez à mettre à jour et mettre à niveau les deux environnements simultanément. Par exemple, si vous mettre à niveau l'environnement principal vers un modèle Cloud Composer ultérieur ou installer des packages PyPI, votre environnement de basculement ces modifications.

  • Nous vous recommandons de créer l'environnement de basculement dans une région différente de l'environnement principal. Par conséquent, un plus large éventail de sinistres potentiels plusieurs scénarios, comme un sinistre qui affecte la disponibilité de toute la région.

  • Nous vous recommandons d'utiliser Terraform pour créer pour que la configuration soit cohérente. Vérifiez que Les définitions Terraform pour les environnements principal et de basculement sont synchronisé.

  • La configuration de l'environnement de basculement (taille de l'environnement, (nombre de planificateurs et autorisations IAM) est recommandée à la configuration de l'environnement principal. Les autorisations IAM pour les deux environnements doivent accorder l'accès approprié aux utilisateurs et aux instantanés.

Vérifier la disponibilité des ressources

Les DAG peuvent fonctionner sur des ressources externes, et l'accès à ces ressources peut être dépend de la configuration de l'environnement (comme les autorisations accordées compte de service, configuration réseau ou projet de l'environnement). Marque que ces ressources sont disponibles pour l'environnement de basculement.

Un environnement peut interagir avec certaines ressources externes via connexions stockées dans Airflow. Chèque si ces ressources doivent être ajustées dans l'environnement de basculement l'environnement principal.

Créer un bucket de stockage pour les instantanés

Créez un bucket de stockage pour les instantanés d'environnement. N'utilisez pas de buckets d'environnement pour la reprise après sinistre, car la configuration la règle de conservation et le cycle de vie sont appliqués au niveau du bucket.

Assurez-vous que ce bucket de stockage dispose des autorisations IAM, une règle de conservation et une configuration de cycle de vie définie de manière à empêcher une suppression accidentelle ou un accès non autorisé. Pour en savoir plus sur configuration d'un bucket pour les instantanés, consultez la page Configurer des instantanés programmés

Vous pouvez :

  • Créez un bucket dans une autre région.
  • Créez un bucket multirégional.

Configurer la maintenance des bases de données

Réduisez la taille de la base de données de métadonnées Airflow en exécutant la DAG de maintenance de base de données. Cela facilite le processus d'enregistrement et charger les instantanés plus rapidement. La base de données de métadonnées Airflow doit contenir moins de de plus de 20 Go de données pour prendre en charge les instantanés.

Configurer des instantanés programmés

Configurez des instantanés programmés pour l'instantané principal environnement.

Les instantanés ne peuvent être créés que dans un environnement opérationnel. Ils doivent donc être économisés avant que le sinistre ne se produise.

Pour en savoir plus sur le fonctionnement des instantanés, consultez Enregistrez et chargez des instantanés d'environnement. Consultez le Section Enregistrer un instantané d'environnement de la pour savoir où trouver les instantanés enregistrés.

(Facultatif) Configurer la surveillance des opérations planifiées sur les instantanés

Pour les instantanés programmés à une fréquence d'au moins une fois toutes les 12 heures, vous pouvez utiliser Cloud Monitoring pour être averti lorsqu'un instantané n'est pas créé automatiquement.

Pour les programmations de fréquences plus basses, utilisez la Google Cloud CLI pour vérifier les résultats des opérations d'instantanés. Consultez la section Vérifier les opérations d'enregistrement des instantanés.

  1. Dans Google Cloud Console, accédez à la page Monitoring.

    Accéder à Monitoring

  2. Dans le volet de navigation Monitoring, sélectionnez  Alertes :
  3. Si vous n'avez pas créé vos canaux de notification et que vous souhaitez être averti, cliquez sur Modifier les canaux de notification et ajoutez vos canaux de notification. Revenez à la page Alertes après avoir ajouté vos canaux.
  4. Sur la page Alertes, cliquez sur Créer une règle.
  5. Pour sélectionner la métrique, développez le menu Sélectionner une métrique, puis procédez comme suit :
    1. Pour limiter le menu aux entrées pertinentes, saisissez Composer Snapshot dans la barre de filtre. Si aucun résultat ne s'affiche après avoir filtré le menu, désactivez l'option Afficher seulement les ressources et les métriques actives.
    2. Pour le type de ressource, sélectionnez Environnement Cloud Composer.
    3. Pour Catégorie de métrique, sélectionnez Environnement.
    4. Dans le champ Métrique, sélectionnez Nombre de créations d'instantanés.
    5. Sélectionnez Appliquer.
  6. Cliquez sur Ajouter un filtre, puis utilisez les menus déroulants pour ajouter les filtres suivants:
    Filter Comparateur Valeur
    Étiquette de ressource > environment_name = Nom de l'environnement dans lequel vous souhaitez surveiller les instantanés programmés.
    Surveiller les étiquettes > résultat = SUCCEEDED
  7. Dans la section Transformer les données, définissez les attributs suivants: <ph type="x-smartling-placeholder">
      </ph>
    • Pour Fenêtre glissante, sélectionnez la fenêtre de surveillance pour cette alerte. Cette valeur a une incidence sur la configuration du seuil à l'étape suivante.

      Valeur recommandée pour la surveillance programmée des instantanés: 1 jour.

    • Dans le champ Fenêtrage glissant, sélectionnez delta.
  8. Cliquez sur Suivant.
  9. Les paramètres de la page Configurer le déclencheur d'alerte déterminent le moment où l'alerte se déclenche. Complétez cette page avec les paramètres indiqués dans le tableau suivant.
    Champ Valeur
    Condition type Threshold
    Alert trigger Any time series violates
    Threshold position Below threshold
    Threshold value Nombre d'instantanés programmés que vous prévoyez d'enregistrer dans le délai configuré selon la fenêtre glissante pour l'alerte.

    Calculez cette valeur à l'aide de la formule suivante:

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

    Remarque:Déduire 1 heure dans la formule est de prendre en compte les différentes durées d'exécution des instantanés. Cela permet d'éviter Générer des faux positifs si le dernier instantané est toujours en cours d'exécution lors d'un contrôle de surveillance.

    Exemple:
    Si vous utilisez la période glissante recommandée de 1 jour, et que la fréquence de programmation est toutes les deux heures, définissez cette valeur sur 11 (selon le calcul: 24 / 2 - 1 = 11).

    Si la planification s'exécute correctement, au cours d'une période de 24 heures, doit comporter au moins 11 instantanés. Si ce n'est pas le cas, cela signifie qu'une opération d'instantané n'a pas abouti. et Cloud Monitoring déclenche cette alerte.

    Condition name Nom personnalisé de la condition.
  10. Cliquez sur Suivant.
  11. Facultatif : Pour ajouter des notifications à votre règle d'alerte, cliquez sur Canaux de notification. Dans la boîte de dialogue, sélectionnez un ou plusieurs canaux de notification dans le menu, puis cliquez sur OK.
  12. (Facultatif) Mettez à jour la durée de fermeture automatique de l'incident. Ce champ détermine à quel moment Monitoring ferme les incidents en l'absence de données de métriques.
  13. Facultatif : Cliquez sur Documentation, puis ajoutez les informations à inclure dans le message de notification.
  14. Cliquez sur Nom de l'alerte et saisissez un nom pour la règle d'alerte.
  15. Cliquez sur Créer une stratégie.
Pour plus d'informations, consultez la page Règles d'alerte.

Tester votre procédure de reprise après sinistre

Veillez à tester votre procédure de reprise après sinistre après l'avoir configurée, puis par la suite. Cela vous permet de résoudre les problèmes potentiels qui pourraient sur le processus réel de reprise après sinistre.

Dans le scénario de reprise après sinistre à froid, vous pouvez supprimer l'environnement de basculement après avoir terminer de tester la procédure de reprise après sinistre.

Vérifier les opérations d'enregistrement des instantanés

Vous pouvez utiliser la Google Cloud CLI pour récupérer la liste des enregistrements d'instantanés et vérifier si vos instantanés sont prêts pour la reprise après sinistre différents scénarios.

Cette méthode est utile si vous enregistrez des instantanés moins d'une fois toutes les 12 heures. Pour vérifier les instantanés enregistrés plus souvent, il est préférable de configurer Alertes Cloud Monitoring Voir Configurez la surveillance des opérations planifiées sur les instantanés.

gcloud

Répertoriez toutes les opérations d'instantané pour un environnement spécifique. Pour obtenir des informations complètes sur les commandes, consultez gcloud composer operation 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

Remplacez :

  • LOCATIONS par la liste des identifiants des régions où l'environnement est localisé
  • PROJECT_ID par l'identifiant du projet dans lequel se trouve l'environnement ;
  • ENVIRONMENT_ID par l'identifiant de l'environnement dans lequel vous souhaitez vérifier les opérations liées aux instantanés ;

Exemple :

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

Après un sinistre

Après un sinistre, suivez la procédure ci-dessous pour récupérer votre instance principale environnement.

(Reprise après sinistre à froid uniquement) Créer un environnement de basculement

Suivez les instructions de la section Créer un environnement de basculement.

Empêcher l'environnement principal d'exécuter les DAG

Si possible, arrêtez l'exécution des DAG dans l'environnement principal:

  • Si l'environnement principal est toujours accessible, mettre en pause tous les DAG.
  • Si le bucket de l'environnement principal est accessible, déplacez tous les DAG bucket d'un environnement, ou vers un dossier en dehors de /dags du bucket bucket de l'environnement.

Charger un instantané dans l'environnement de basculement

Charger un instantané à partir de l'environnement principal dans l'environnement de basculement.

Une fois l'instantané chargé dans l'environnement de basculement, il planifie exécute des tâches comme si rien n'était exécuté par l'environnement principal après pour créer un instantané. Cependant, certaines de ces tâches ont peut-être déjà été exécutées par l'environnement principal. L'environnement de basculement ne comporte aucune signifie identifier les tâches qui ont été exécutées après la création de l'instantané et avant un sinistre. Par conséquent, certaines tâches peuvent être exécutées deux fois (dans les deux l'environnement principal et l'environnement de basculement). Nous recommandons que toutes les tâches sont idempotentes et que les instantanés programmés sont créées toutes les deux heures.

(Si nécessaire) Ajuster la configuration de l'environnement de basculement

Dans certains cas, vous souhaiterez peut-être modifier la configuration du basculement après avoir chargé l'instantané de l'environnement principal.

Par exemple, dans un scénario de reprise après sinistre à froid, vous devrez peut-être utiliser un ensemble différent Variables d'environnement Airflow dans l'environnement de basculement. Autre exemple : Dans un scénario de reprise après sinistre annoncée, vous devrez peut-être accorder des autorisations aux utilisateurs l'interface utilisateur d'Airflow, afin qu'ils puissent accéder à l'environnement de basculement.

Vous pouvez effectuer ces modifications manuellement ou préparer un script shell avec qui modifient la configuration de l'environnement de basculement en exécutant gcloud composer environment update.

Déterminer ce que vous souhaitez faire de l'environnement principal

Certains sinistres peuvent se produire, car l'environnement principal n'est pas accessible mais toujours opérationnel ou ne fonctionne pas correctement. Par exemple, vous ne pouvez pas à l'environnement principal via le réseau en raison d'une infrastructure l'échec. Autre exemple : l'environnement fonctionne avec des erreurs capacité réduite, mais certains DAG sont tout de même exécutés.

Si l'environnement d'origine est toujours en cours d'exécution, générer des coûts directement liés à Cloud Composer ou à d'autres services ; accessibles par le biais des DAG, même si un environnement a été créé le remplacement. Cet environnement peut toujours exécuter certains DAG, Par conséquent, certaines peuvent être exécutées deux fois: dans l'environnement principal en cours d'exécution et dans l'environnement de basculement après le chargement de l'instantané.

Si l'environnement principal existe, mais ne fonctionne pas correctement

L'environnement principal peut être supprimé si toutes les données pertinentes ont été récupérées. Pour exemple, vous voudrez peut-être récupérer les données non incluses dans les instantanés d'environnement, comme la configuration réseau ou le contenu bucket en dehors des dossiers /dags et /plugins.

Si l'environnement principal redevient accessible et opérationnel

Si l'environnement principal n'était inaccessible que temporairement et qu'il devient accessibles et saines, vous pouvez choisir une approche:

  • Continuez à utiliser l'environnement de basculement.
  • Revenez à l'environnement principal.

Pour continuer à utiliser l'environnement de basculement:

  1. Si l'environnement principal exécute toujours les DAG, les suspendre dès que possible.
  2. Assurez-vous de récupérer toutes les données pertinentes, puis supprimez l'instance principale environnement.
  3. Répétez les étapes de préparation de reprise après sinistre pour l'environnement de basculement, telles que la définition les instantanés programmés.

Pour revenir à l'environnement principal:

  1. Suspendez tous les DAG dans l'environnement de basculement.
  2. Attendez que toutes les exécutions de DAG se terminent dans l'environnement de basculement ou arrêtez-les.
  3. Enregistrez un instantané de l'environnement de basculement.
  4. Chargez cet instantané dans l'environnement principal.
  5. Réactivez les DAG dans l'environnement principal.
  6. Si nécessaire, supprimez l'environnement de basculement.

Étape suivante