Aller au contenu
Orchestration

Orchestration : planifier, surveiller, alerter

Orchestrer, c'est coordonner les étapes d'un pipeline : ordre, planning, reprises et alertes. On s'en sert dès que plusieurs tâches dépendent les unes des autres et doivent finir à l'heure.

  • orchestrateur
  • airflow
  • dagster
  • prefect
  • cron
  • sla
  • alerte
  • fraîcheur
  • astreinte

Syntaxe

Modèle
Un orchestrateur répond à cinq questions :  quand    planning cron ("0 5 * * *") ou déclenchement par l'arrivée d'une donnée  quoi     les tâches et leurs dépendances (un graphe sans cycle)  si échec nouvelles tentatives, puis reprise à la tâche en échec  qui      alerte envoyée à la bonne personne, avec le lien vers les journaux  à temps  engagement de fraîcheur (SLA) surveillé, alerte avant l'échéanceOutils courants : Airflow (DAG de tâches), Dagster (actifs de données),Prefect (flux Python) — tous trois couvrent ces cinq besoins.

Exemple

Exemple concret
Pipeline « tableau de bord des ventes », engagement : prêt à 7 h 0005:00  déclenchement planifié (cron 0 5 * * *)05:00  extraire_commandes  ─┐05:00  extraire_stocks     ─┤ en parallèle05:12  dbt build (staging → marts), attend les deux extractions05:40  test de fraîcheur : dernière commande vieille de moins de 6 h → OK05:41  rafraîchissement du tableau de bordIncident : l'API des stocks est indisponible05:00  extraire_stocks échoue05:10  nouvelle tentative → échec05:20  seconde tentative → échec, alerte envoyée à l'astreinte data       dbt build ne démarre pas : aucun chiffre partiel n'est publié06:30  toujours rien : alerte d'échéance « le tableau de bord ne sera pas prêt à 7 h »Résultat attendu : à 9 h, personne ne lit sans le savoir les chiffres de la veille.

À retenir

  1. L'orchestrateur coordonne mais ne calcule pas : le travail lourd se fait dans l'entrepôt, Spark ou dbt, et l'orchestrateur se contente de lancer et de surveiller.
  2. Le déclenchement par la donnée (actifs ou datasets selon l'outil) lance un traitement quand sa table d'entrée est mise à jour, plutôt qu'à une heure fixe en espérant qu'elle soit prête.
  3. Mesurez le SLA sur la fraîcheur des données publiées, pas sur le succès des tâches : un pipeline vert qui a chargé zéro ligne viole quand même l'engagement.
  4. Une alerte utile dit quoi, quand et où regarder. Une alerte qui sonne chaque nuit pour rien finit ignorée ; supprimez ou corrigez celles qui ne demandent aucune action.
  5. Piège : relancer tout le pipeline à la main après un échec au lieu de reprendre à la tâche en échec. Les étapes déjà réussies s'exécutent deux fois et, si elles ne sont pas idempotentes, dupliquent les données.

Voir aussi