首页 > 其他分享 >Flyte工作流平台调研(一)——整体架构

Flyte工作流平台调研(一)——整体架构

时间:2024-12-31 11:57:15浏览次数:3  
标签:架构 workflow 工作 任务 Plane Flyte data 调研

简介

Flyte 是一个开源的工作流编排平台,专为机器学习和数据处理任务设计。它帮助用户定义、管理和运行复杂的数据工作流,确保数据的可重复性、可扩展性和高效性。Flyte 的客户端,支持使用python sdk、Console、ctl和API等方式提交工作流,后台将工作流编译成多个任务链接成数据依赖的有向无环图 (DAG),在执行时按依赖关系调度各个任务。

Flyte 的主要功能包括:

  1. 任务和工作流编排:支持复杂的任务链,自动处理依赖和调度,实现高效的任务管理。
  2. 资源管理和扩展性:依赖 Kubernetes,自动进行资源调度和弹性扩展,支持大规模的并行计算。
  3. 数据版本控制和再现性:通过内置的 Data Catalog 记录输入、输出数据,实现任务和工作流的结果复用和可再现性。
  4. 插件支持: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

相关文章

  • Flyte工作流平台调研(二)——核心概念说明
    Flyte是一个面向数据和机器学习工作流的开源分布式处理平台,它通过任务(Task)和工作流(Workflow)的概念,为用户提供了一种构建、调试和运行可重复、可扩展的工作流的能力。本文基于Flyte的核心概念,结合Flyte官网和我的调研内容,详细介绍Flyte的体系结构及其核心功能。Task(任务......
  • 随笔-处理器微架构-测量最大IPC
    目录固定cpu运行频率max_ipc_test.shLSD(LoopStreamDetector)arm固定cpu频率方式固定cpu运行频率我的测试环境cpu频率管理是intel_pstate:$lscpu|grep-ihzModelname:Intel(R)Core(TM)i5-10500CPU@3.10GHzCPUmaxMHz:......
  • BLOB 和TEXT 有什么区别?思维导图 代码示例(java 架构)
    列对比运算符用于在SQL查询中比较两列或一列与一个值。SQL支持多种类型的对比运算符,如=、<>或!=(不等于)、<、<=、>和>=等等。这些运算符可以用来构建WHERE子句中的条件表达式,以筛选出符合特定条件的记录。在Java架构中,当你使用JDBCAPI与数据库交互时,你可以......
  • Deepseek V3 —— 6850亿参数混合专家(MoE)架构开源大模型!Deepseek V3全方位客观评测
    地址:https://www.youtube.com/watch?v=BnoMTeKxwBQ......
  • 深入理解 Java 模板模式:代码复用与架构优化的利器
    深入理解Java模板模式:代码复用与架构优化的利器在Java编程世界中,设计模式如同智慧的结晶,帮助开发者应对各种复杂的软件开发需求。其中,模板模式(TemplatePattern)以其独特的代码复用和流程标准化能力,成为构建灵活且可维护系统的关键工具。今天,让我们一同深入探究Java中......
  • 编程全景洞察:从基础架构到前沿创新与行业影响
    由于文章过长,博主写的时候可能会有一些差错以及一些不连贯或者是一些重复,请大家谅解~编程全景洞察:从基础架构到前沿创新与行业影响编程的基础语言与逻辑架构编程的世界始于基础编程语言,它们是构建数字世界的基石。C语言,作为一种经典的系统编程语言,以其简洁高效、直接操......
  • 随笔-处理器微架构-获取处理器参数
    intelx86芯片有提供CPUID指令,输出结果为16进制的数据,按照特定的格式进行解析即可直接可用的工具有:cpuid/lscpu/x86info、getconf-a|grep-icache参考:intelCPUIDinstructionARM工具:cat/proc/cpuinfo、lscpu原理:https://www.kernel.org/doc/html/latest/arch/arm64/......
  • RAG开源框架调研
    最近打算基于RAG开源框架做一些小demo,之前只用过个别框架,没有系统调研过,这里记录一下。关注的一些点:项目热度(GitHubStar)社区活跃度(GitHubissues数量)license(商用友好度)技术栈(前后端)项目名称项目地址licenseStarIssues(open/closed)技术栈isGraphRAGAny......
  • 深入探究微服务架构与分布式系统关键技术
    1.SpringBoot和SpringCloud的区别?SpringBoot:简化开发:SpringBoot是为了简化基于Spring的应用程序的创建和部署。它通过提供默认配置、依赖管理和内嵌服务器等功能,使得开发者可以快速上手,不需要进行大量的配置。独立运行:使用SpringBoot,你可以很容易地创建一个独立运行的......
  • 性能与一致性的平衡:深入解析同步与异步日志架构的最佳实践
    在分布式系统和高并发应用中,日志管理不仅是系统调试和故障排查的关键工具,也是性能监控、用户行为分析和安全审计的重要组成部分。然而,日志的记录和存储往往面临着性能与一致性之间的矛盾。在实际应用中,如何在保证系统性能的同时确保日志数据的一致性和完整性,成为架构设计中的......