AIFlow é uma plataforma de orquestração de fluxo de trabalho baseada em eventos que permite aos usuários criar e agendar fluxos de trabalho de forma programática com uma mistura de tarefas de streaming e lote.
A maioria das plataformas de orquestração de fluxo de trabalho existentes (por exemplo, Apache AirFlow, KubeFlow) agendam execuções de tarefas com base nas mudanças de status das execuções de tarefas upstream. Embora essa abordagem funcione bem para tarefas em lote com término garantido, ela não funciona bem para tarefas de streaming que podem ser executadas por um período infinito de tempo sem alterações de status. AIFlow é proposto para facilitar a orquestração de fluxos de trabalho envolvendo tarefas de streaming.
Por exemplo, os usuários podem querer executar um trabalho de streaming do Flink continuamente para montar dados de treinamento e iniciar um trabalho de treinamento de aprendizado de máquina sempre que o trabalho do Flink tiver processado todos os dados upstream da última hora. Para agendar esse fluxo de trabalho usando uma plataforma de orquestração de fluxo de trabalho não baseada em eventos, os usuários precisam agendar o trabalho de treinamento periodicamente com base no horário do relógio. Se houver pico de tráfego ou falha no job upstream, o job Flink poderá não ter processado a quantidade esperada de dados upstream no momento em que o job do TensorFlow for iniciado. A tarefa upstream deve continuar aguardando, ou falhar rapidamente, ou processar dados parciais, nenhum dos quais é ideal. Em comparação, AIFlow fornece APIs para que o trabalho Flink emita um evento sempre que sua marca d'água baseada em eventos aumenta em uma hora, o que aciona a execução do trabalho de treinamento especificado pelo usuário, sem sofrer os problemas descritos acima.
Saiba mais sobre AIFlow em https://ai-flow.readthedocs.io
Orientado a eventos: AIFlow agenda fluxo de trabalho e trabalhos com base em eventos. Isso é mais eficiente do que o agendamento orientado por status e permite agendar os fluxos de trabalho que contêm trabalhos de fluxo.
Extensível: Os usuários podem definir facilmente seus próprios operadores e executores para enviar vários tipos de tarefas para diferentes plataformas.
Exatamente uma vez: AIFlow fornece um mecanismo de processamento de eventos com semântica exatamente uma vez, o que significa que suas tarefas nunca serão perdidas ou repetidas, mesmo se ocorrer um failover.
B站基于AIFlow+Flink在批流融合调度上的实践
Aceitamos contribuições para o AIFlow de qualquer forma, seja relatando problemas, redigindo recursos ou contribuindo com alterações de código. Você pode relatar problemas para solicitar recursos nos problemas do GitHub. Se você quiser contribuir com alterações de código, verifique a documentação de contribuição.
Para obter mais informações, recomendamos que você participe do Grupo da Comunidade AIFlow nos Grupos do Google e entre em contato conosco: [email protected] .
Você também pode ingressar no grupo no DingTalk. O número do grupo DingTalk é 35876083
, grupo que também pode ser acessado digitalizando o código QR abaixo: