Чем отличаются планировщик Cron и платформа оркестрации Airflow

Ответ

Cron — это стандартный демон-планировщик задач в Unix-подобных системах. Airflow — это полноценная платформа для программного создания, планирования и мониторинга сложных потоков задач (workflows).

Основное различие заключается в масштабе и возможностях.

Характеристика Cron Airflow
Основная задача Выполнение команд по простому расписанию Оркестрация сложных потоков задач (DAGs)
Зависимости Не поддерживает. Задачи независимы. Ключевая функция. Задачи могут зависеть друг от друга.
Мониторинг Отсутствует (только логирование в системные файлы) Продвинутый Web UI с визуализацией, логами, статистикой.
Масштабируемость Ограничена одной машиной Горизонтально масштабируемая архитектура (workers, scheduler).
Повторный запуск Только вручную Автоматический повторный запуск упавших задач.
Конфигурация Простой текстовый файл (crontab) Задачи описываются как код на Python (DAGs).

Когда что использовать?

  • Cron идеально подходит для простых, изолированных и повторяющихся задач на одном сервере. Например, запуск скрипта для резервного копирования раз в сутки.

    # Запускать скрипт backup.sh каждый день в 03:00
    0 3 * * * /home/user/scripts/backup.sh
  • Airflow необходим для построения сложных ETL/ELT-пайплайнов, где задачи зависят друг от друга, требуют мониторинга, логирования и могут выполняться распределенно.

    # Пример DAG в Airflow
    from airflow.operators.bash import BashOperator
    
    with DAG(dag_id='data_pipeline', schedule_interval='@daily') as dag:
        extract_data = BashOperator(task_id='extract', bash_command='... ')
        transform_data = BashOperator(task_id='transform', bash_command='...')
        load_data = BashOperator(task_id='load', bash_command='...')
    
        # Определение зависимостей
        extract_data >> transform_data >> load_data

Вывод: Cron — это таймер, Airflow — это дирижёр для оркестра.