L'Edge Executor dans Airflow 3.0

Airflow 3.0 introduit l'Edge Executor, un nouveau mode d'exécution permettant de lancer des tâches sur des machines en périphérie (edge devices). Les tâches s'exécutent hors du cluster principal, idéal pour les environnements IoT, les succursales distantes ou les réseaux contraints.

Architecture

Un edge worker léger s'installe sur le device distant. Il se connecte au scheduler central via HTTPS, récupère les tâches assignées, les exécute localement et renvoie les résultats. Aucun accès direct à la base de données n'est requis.

python
from airflow.sdk import DAG, task
from datetime import datetime


with DAG(
    dag_id='edge_iot_pipeline',
    schedule='*/15 * * * *',  # toutes les 15 minutes
    start_date=datetime(2025, 5, 1),
) as dag:

    @task(queue='edge-usine-lyon')  # cibler un edge worker
    def collecter_capteurs() -> dict:
        """S'exécute sur le device en périphérie."""
        import serial
        port = serial.Serial('/dev/ttyUSB0', 9600)
        data = port.readline().decode()
        temperature, humidite = data.strip().split(',')
        return {
            'temperature': float(temperature),
            'humidite': float(humidite),
        }

    @task  # s'exécute sur le cluster principal
    def analyser(mesures: dict):
        if mesures['temperature'] > 80:
            print(f"ALERTE : {mesures['temperature']}C")
        print(f"Température : {mesures['temperature']}C")

    analyser(collecter_capteurs())

Cas d'usage

L'Edge Executor est conçu pour les scénarios où les données doivent être collectées ou traitées localement : capteurs industriels, traitement d'images sur site, synchronisation de données en environnement déconnecté ou à bande passante limitée.

bash
# Installation du edge worker sur le device distant
pip install apache-airflow-edge-worker

# Configuration et lancement
export AIRFLOW_EDGE__API_URL=https://airflow.example.com/api
export AIRFLOW_EDGE__API_TOKEN=secret-token
export AIRFLOW_EDGE__QUEUE=edge-usine-lyon

# Démarrer le worker edge
airflow edge worker
# Le worker poll le scheduler et exécute les tâches assignées

Sources