简介
Flyte 是一个开源的工作流编排平台,专为机器学习和数据处理任务设计。它帮助用户定义、管理和运行复杂的数据工作流,确保数据的可重复性、可扩展性和高效性。Flyte 的客户端,支持使用python sdk、Console、ctl和API等方式提交工作流,后台将工作流编译成多个任务链接成数据依赖的有向无环图 (DAG),在执行时按依赖关系调度各个任务。
Flyte 的主要功能包括:
- 任务和工作流编排:支持复杂的任务链,自动处理依赖和调度,实现高效的任务管理。
- 资源管理和扩展性:依赖 Kubernetes,自动进行资源调度和弹性扩展,支持大规模的并行计算。
- 数据版本控制和再现性:通过内置的 Data Catalog 记录输入、输出数据,实现任务和工作流的结果复用和可再现性。
- 插件支持:Flyte 允许集成多种数据和计算工具,如 Spark、SQL、TensorFlow 等。
基础组件架构
Flyte的整体架构如下图所示:
Flyte由user plane、control plane和data plane构成。
- user plane:包含用户开发、提交、操作和查看工作流的工具,包括Flytekit(sdk)、Flytectl和FlyteConsole
- control plane:Flyte后端服务的一部分,用于处理user plane的请求,并存储和管理工作流的元数据信息,同时编译、构建和提交工作流执行。主要包括FlyteAdmin和Flyte native scheduler。
- data plane:是Flyte后端服务的另一部分,主要包含FlytePropeller,执行工作流的核心引擎。FlytePropeller是为工作流执行,扩展K8S原生Controller实现的K8S Operator。control plane向data plane发送工作流执行请求事件以供执行,data plane又会向control plane返回请求事件的状态,便于control plane管理和更新工作流状态并向用户展示。
User Plane
在Flyte中,工作流(Workflow)会被表示为任务(Task)的有向无环图(DAG)。这种方式是一种便于代码和程序理解的方式,对人不友好。所以Flyte提供了以用户易于理解的格式创建、管理和可视化工作流(Workflow)的工具。主要包括:
Flytekit
Flytekit是一个SDK,帮助用户使用Python编程和设计新的Workflow。它可以解析Python代码,将其编译为有效的工作流DAG,并将其提交给Flyte执行。
下面是在python中使用Flytekit构建的一个简单的模型训练的工作流:
import pandas as pd
from sklearn.datasets import load_wine
from sklearn.linear_model import LogisticRegression
from flytekit import task, workflow
from flytekit.types.pickle import FlytePickle
#
标签:架构,workflow,工作,任务,Plane,Flyte,data,调研
From: https://blog.csdn.net/weixin_43837507/article/details/144806135