Освоение развертывания Airflow с помощью Docker Compose: подробное руководство

В современном быстро меняющемся мире эффективное управление рабочими процессами имеет решающее значение для успешной реализации проекта. Apache Airflow, популярная платформа с открытым исходным кодом, предоставляет мощное решение для организации и планирования сложных рабочих процессов. Когда дело доходит до развертывания Airflow, Docker Compose предлагает удобный метод настройки и управления средой Airflow. В этой статье мы рассмотрим различные методы развертывания Airflow с помощью Docker Compose, а также приведем примеры кода, иллюстрирующие каждый подход.

Метод 1: базовое развертывание Airflow
В этом методе мы настроим базовое развертывание Airflow с помощью Docker Compose. Вот пример файла docker-compose.yamlдля простого развертывания Airflow:

version: '3'
services:
  airflow-webserver:
    image: apache/airflow:latest
    ports:
      - 8080:8080
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
    environment:
      - AIRFLOW__CORE__LOAD_EXAMPLES=False
    command: webserver
  airflow-scheduler:
    image: apache/airflow:latest
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
    command: scheduler

Метод 2: настройка конфигурации воздушного потока
В этом методе мы настроим конфигурацию воздушного потока, предоставив собственный файл airflow.cfg. Вот обновленный файл docker-compose.yaml, включающий том конфигурации:

version: '3'
services:
  airflow-webserver:
    image: apache/airflow:latest
    ports:
      - 8080:8080
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
      - ./config/airflow.cfg:/opt/airflow/airflow.cfg
    environment:
      - AIRFLOW__CORE__LOAD_EXAMPLES=False
    command: webserver
  airflow-scheduler:
    image: apache/airflow:latest
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
      - ./config/airflow.cfg:/opt/airflow/airflow.cfg
    command: scheduler

Метод 3: масштабирование Airflow с помощью Celery Executor
Чтобы масштабировать Airflow и обрабатывать более крупные рабочие нагрузки, мы можем использовать Celery Executor. Вот пример файла docker-compose.yamlс сельдереем:

version: '3'
services:
  airflow-webserver:
    image: apache/airflow:latest
    ports:
      - 8080:8080
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
      - ./config/airflow.cfg:/opt/airflow/airflow.cfg
    environment:
      - AIRFLOW__CORE__LOAD_EXAMPLES=False
      - AIRFLOW__CORE__EXECUTOR=CeleryExecutor
    command: webserver
  airflow-scheduler:
    image: apache/airflow:latest
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
      - ./config/airflow.cfg:/opt/airflow/airflow.cfg
    environment:
      - AIRFLOW__CORE__EXECUTOR=CeleryExecutor
    command: scheduler
  airflow-worker:
    image: apache/airflow:latest
    volumes:
      - ./dags:/opt/airflow/dags
      - ./logs:/opt/airflow/logs
      - ./config/airflow.cfg:/opt/airflow/airflow.cfg
    environment:
      - AIRFLOW__CORE__EXECUTOR=CeleryExecutor
    command: worker

Развертывание Airflow с помощью Docker Compose обеспечивает гибкий и эффективный подход к управлению рабочими процессами. В этой статье мы рассмотрели несколько методов, включая базовое развертывание, настройку конфигурации Airflow и масштабирование с помощью исполнителя Celery. Используя Docker Compose, вы можете легко настраивать среды Airflow и управлять ими в соответствии с вашими конкретными потребностями.

Не забывайте следить за последней версией документации Airflow и Docker Compose, чтобы быть в курсе любых изменений или обновлений процесса развертывания.