AIFlow — это платформа оркестрации рабочих процессов на основе событий, которая позволяет пользователям программно создавать и планировать рабочие процессы с помощью сочетания потоковых и пакетных задач.
Большинство существующих платформ оркестрации рабочих процессов (например, Apache AirFlow, KubeFlow) планируют выполнение задач на основе изменений статуса выполнения вышестоящих задач. Хотя этот подход хорошо работает для пакетных задач, которые гарантированно завершатся, он не работает для потоковых задач, которые могут выполняться бесконечное количество времени без изменения статуса. AIFlow предлагается для облегчения организации рабочих процессов, включающих потоковые задачи.
Например, пользователи могут захотеть непрерывно запускать задание потоковой передачи Flink для сбора обучающих данных и запускать задание обучения машинному обучению каждый раз, когда задание Flink обрабатывает все восходящие данные за последний час. Чтобы запланировать этот рабочий процесс с помощью платформы оркестрации рабочих процессов, не основанной на событиях, пользователям необходимо периодически планировать задание обучения на основе времени настенных часов. Если наблюдается всплеск трафика или сбой восходящего задания, задание Flink, возможно, не обработало ожидаемый объем восходящих данных к моменту запуска задания TensorFlow. Восходящее задание должно либо продолжать ждать, либо быстро завершаться сбоем, либо обрабатывать частичные данные, но ни один из этих вариантов не идеален. Для сравнения, AIFlow предоставляет API-интерфейсы для задания Flink, чтобы генерировать событие каждый раз, когда его водяной знак на основе события увеличивается на час, что запускает выполнение заданного пользователем задания обучения без возникновения проблем, описанных выше.
Узнайте больше об AIFlow на https://ai-flow.readthedocs.io.
Управляемый событиями: AIFlow планирует рабочий процесс и задания на основе событий. Это более эффективно, чем планирование на основе статуса, и позволяет планировать рабочие процессы, содержащие потоковые задания.
Расширяемость: пользователи могут легко определять своих собственных операторов и исполнителей для отправки различных типов задач на разные платформы.
Ровно один раз: AIFlow предоставляет механизм обработки событий с семантикой ровно один раз, что означает, что ваши задачи никогда не будут пропущены или повторены, даже если произойдет аварийное переключение.
Использование AIFlow+Flink может быть выполнено в режиме реального времени.
Мы с радостью приветствуем вклад в AIFlow любым способом, будь то сообщение о проблемах, написание функций или внесение изменений в код. Вы можете сообщить о проблемах и запросить функции в разделе «Проблемы» GitHub. Если вы хотите внести изменения в код, ознакомьтесь с сопутствующей документацией.
Для получения дополнительной информации мы рекомендуем вам присоединиться к группе сообщества AIFlow в группах Google и связаться с нами: [email protected] .
Вы также можете присоединиться к группе на DingTalk. Номер группы DingTalk — 35876083
, к которой также можно присоединиться, отсканировав QR-код ниже: