Apache Airflow – это платформа с открытым исходным кодом, используемая для создания, планирования и мониторинга рабочих процессов. Airflow преодолевает некоторые ограничения утилиты cron, предоставляя расширяемую платформу, которая включает операторов, программируемый интерфейс для создания заданий, масштабируемую распределенную архитектуру и широкие возможности отслеживания и мониторинга. С момента своего добавления в Apache foundation в 2015 году Airflow получила широкое распространение в сообществе для проектирования и организации конвейеров ETL и рабочих процессов ML. В Airflow рабочий процесс определяется как направленный ациклический граф (DAG), гарантирующий, что определенные задачи выполняются одна за другой, управляя зависимостями между задачами.
Упрощенная версия архитектуры Airflow показана ниже. Он состоит из веб-сервера, который предоставляет пользовательский интерфейс, хранилища реляционных метаданных, которое может быть базой данных MySQL/PostgreSQL, постоянного тома, в котором хранятся файлы DAG, планировщика и рабочего процесса.
Вышеуказанная архитектура может быть реализована для запуска в четырех режимах выполнения, включая:
- Последовательный исполнитель & – Этот режим полезен для разработки/тестирования или демонстрации. Он сериализует операции и позволяет одновременно выполнять только одну задачу.
- Локальный исполнитель &- Этот режим поддерживает распараллеливание и подходит для рабочей нагрузки малого и среднего размера. Он не поддерживает масштабирование.
- Celery Executor & – Это предпочтительный режим для производственных развертываний и один из способов масштабирования числа работников. Чтобы это сработало, для координации требуется дополнительный сервер celery, который является брокером RabbitMQ или Redis.
- Dask Executor &- Этот режим также позволяет расширять масштаб за счет использования библиотеки Dask.distributed, позволяя пользователям запускать задачу в распределенном кластере.
Вышеуказанная архитектура может быть реализована в виртуальных машинах Azure или с помощью управляемых служб в Azure, как показано ниже. Для производственных развертываний мы рекомендуем использовать управляемые сервисы со встроенными возможностями высокой доступности и гибкого масштабирования.
Изображение Puckel’s Airflow docker содержит последнюю сборку Apache Airflow с автоматической сборкой и выпуском в общедоступный реестр DockerHub. Служба приложений Azure для Linux интегрирована с общедоступным реестром DockerHub и позволяет запускать веб-приложение Airflow в контейнерах Linux с непрерывным развертыванием. Служба приложений Azure также позволяют мульти-контейнер с Docker и Kubernetes для развертывания составить полезный режим выполнения сельдерея.
на&#кино xD; 
 а;
мы разработали для Azure QuickStart шаблона, который позволяет быстро развернуть и создать воздушный поток инстанции в Azure с помощью службы приложений Azure и экземпляр базы данных Azure для PostgreSQL в качестве хранилища метаданных.
на&#кино xD; 
 а;
&#кино xD; 
 а;
при QuickStart шаблона автоматически скачивает и устанавливает самые последние образ контейнера Docker от puckel/настройки воздушного потока, и инициализирует базу данных в базы данных Azure для PostgreSQL Server, как показано на следующем рисунке:
&#кино xD; 
 а;
&#кино xD; 
 а; переменные среды для воздушного потока докер изображения можно установить с помощью настройки приложения в Службе приложений Azure, как показано на следующем рисунке:
&#кино xD; 
 а;
&#кино xD; 
 а; переменные среды, используемые в процессе развертывания являются:
&#кино xD; 
 а;- 
 а;
- расход воздуха__базовый__в SQL_алхимии_Конн &- задает строку подключения в веб-приложение, чтобы подключиться к базе данных Azure для PostgreSQL.
- расход воздуха__базовый__нагрузка_примерах &- установите значение true, чтобы загрузить Даг примеры во время развертывания.
в
 а;
в
 В; &#кино xD; 
 а; от WEBSITES_ENABLE_APP_SERVICE_STORAGE, как установлено в True, который может быть использован в качестве постоянного хранилища для Дага файлов доступных для планировщика и рабочий контейнер изображений.
После его развертывания вы можете просмотреть пользовательский интерфейс веб-сервера на порту 8080, чтобы увидеть примеры DAG и отслеживать их, как показано на следующем рисунке:
Следующие шаги
Теперь вы готовы организовать и спроектировать конвейеры данных для рабочих процессов ETL и машинного обучения, используя операторов Airflow. Вы также можете использовать Airflow для планирования и мониторинга заданий во множестве управляемых баз данных в Azure, определив подключения, как показано ниже.
Если вы ищете захватывающий вызов, вы можете развернуть образ kube-airflow с помощью celery executor со службами Azure Kubernetes, используя helm charts, Azure Database for PostgreSQL и RabbitMQ. Дайте нам знать, если вы его разработали, и мы будем рады предоставить ссылку на него в этом блоге.
Благодарности
Особая благодарность Марку Больцу и Джиму Толанду за их вклад в публикации.
beinginthecloud.com – URL-адрес сайта-источника