Dayu(大禹):基于 KubeEdge 为云边协同 AI 流数据分析提供基础设施
Dayu(大禹)是一个开源平台,用于构建和运行跨云边资源的多阶段 AI 流应用。它把工作流编排、可复用 AI 服务、云边部署、自适应调度、运行观测和结果分析整合到同一个环境中。
KubeEdge 为 Dayu 提供 Kubernetes 原生的云边资源管理基础;Dayu 则在此基础上增加理解数据源、处理流程和调度目标的应用层。二者结合,将分散的模型和设备组织成可编程的云边流分析系统。
挑战:从单个模型走向持续运行的应用工作流
一个真正可用的流分析应用,通常远不只是把单个模型装进容器。以交通感知为例,应用可能需要接入多路摄像头,连续完成目标检测、跟踪、事件识别和中间结果汇总,并持续输出分析洞察。不同处理阶段可能需要不同类型的处理器,而可用算力、网络状态、任务积压和场景复杂度也会持续变化。
云边基础设施能够管理节点和工作负载,但应用团队仍需回答另一组问题:多个 AI 服务如何连接?各阶段应部署到哪些节点?到达的任务应在哪里执行?调度策略如何应对环境变化?整个过程又该如何观察和比较?
如果缺少共享的应用运行时,团队往往要为每一条流水线或每一次调度实验重复搭建上述能力。Dayu 正是为补齐这一层而设计。
Dayu 是什么
Dayu 将流应用表示为由可复用服务组成的有向工作流。它既能描述常见的顺序流水线,也能表达并行分支与结果汇合,同时让应用定义与负责执行它的调度策略保持独立。
借助 Web 界面和声明式模板,用户可以选择数据源、编排应用、指定云边资源、应用调度策略并查看运行结果。同一个平台可以服务于三类相互协作的用户:
- 应用开发者可以用可复用服务组装云边 AI 工作流,不必从头实现分布式运行时。
- 调度研究者可以在统一的执行和观测链路上实现、比较不同策略。
- 平台运维人员可以从一个界面管理实验、查看运行状态并保存结果。
Dayu 可以做什么
Dayu 提供从数据流接入到云边应用观测的完整路径:
- 编排多阶段 AI 工作流。 用户可以按照真实处理依赖组织服务,而不是把整条流水线视为不可拆分的单一负载。
- 连接录制数据与实时数据源。 可重复播放的测试数据和实时摄像头流都能进入同一个应用工作流。
- 运行于异构资源之上。 云服务器和不同类型的边缘设备可以加入同一个协同执行环境。
- 协调服务部署与任务执行。 Dayu 既能决定服务应在哪些节点上可用,也能决定新任务实际在哪里运行,使策略能够在适合应用的粒度上发挥作用。
- 通过调度策略适应变化。 策略可以结合应用上下文和运行观测,对负载与资源变化作出响应。
- 观测和分析完整生命周期。 用户可以查看应用拓扑、部署与执行决策、资源使用、排队、时延和处理结果,并导出数据作进一步分析。
- 扩展平台能力。 新的 AI 服务、调度方法、监控逻辑和可视化方式可以复用既有模板与运行接口。
这组能力让 Dayu 不只用于展示某个 AI 模型,还能帮助用户理解一套完整的流应用如何跨云端和边缘运行。
为什么基于 KubeEdge 构建
Dayu 不会重复实现 KubeEdge 已经解决的云边基础设施能力。两个项目的职责清晰且互补:
| KubeEdge 提供 | Dayu 增加 |
|---|---|
| 跨云端与边缘节点的 Kubernetes 兼容控制面 | 面向数据源、多阶段 AI 工作流和调度目标的应用模型 |
| 分布式节点与工作负载的生命周期管理 | 流处理服务的协同部署与执行机制 |
| 统一的资源与 API 基础 | 面向应用的调度、反馈、可视化和实验管理 |
Dayu 把 KubeEdge 管理的节点和工作负载作为调度决策的真实执行基础。Dayu 维护了与 Sedna、EdgeMesh 等生态项目的集成,以支持云边节点之间的协同服务部署与通信。这样,Dayu 可以专注于应用结构和运行协同,同时与 Kubernetes 原生的边缘管理方式保持一致。
整体架构与使用流程
Dayu 将系统职责组织为五层:
| 层次 | 职责 |
|---|---|
| AI 应用层 | 将可复用 AI 服务编排为应用工作流。 |
| 运行协同层 | 跨工作流协调部署、调度、任务流转、反馈和监控。 |
| 平台服务层 | 通过用户界面、控制服务和数据源管理提供统一操作环境。 |
| 边缘协同层 | 通过 Sedna 与 EdgeMesh 集成连接应用意图、分布式服务和云边通信。 |
| 云边基础层 | KubeEdge 提供统一的集群、节点与工作负载基础。 |

从用户视角看,完整生命周期保持简洁:
- 定义或选择数据源、应用工作流、候选资源和调度策略。
- Dayu 在 KubeEdge 管理的云边节点上准备应用所需服务。
- 流任务沿应用工作流流转,Dayu 同时协调其在可用资源上的执行。
- 运行观测与应用反馈帮助所选策略持续调整决策。
- 处理结果、应用拓扑、性能与资源信息回到 Dayu 界面,供用户查看和分析。
系统内部仍由模块化服务组成,但用户面对的是一条连贯的应用生命周期,而不是一组彼此割裂的基础设施组件。
Dayu 的核心特色
- 面向应用的协同编排。 Dayu 知道流应用包含哪些阶段以及它们之间的依赖,因此可以在服务和任务层面协同,而不只停留在容器层面。
- 两类相互补充的决策周期。 它同时协调服务在哪些节点可用、到达的任务在哪里执行,而不会把二者强行塞进同一种固定机制。
- 可复用的平台,而非单一算法。 应用服务和调度策略均可插拔,不同方法能够共享同一套部署、执行、监控和评估环境。
- 面向异构云边系统设计。 设备能力、工作负载和连接条件的差异,都可以成为调度上下文的一部分。
- 形成从部署到实证分析的闭环。 内置可视化与遥测数据把决策和结果关联起来,支持调试、比较和可复现评估。
对用户与 KubeEdge 社区的价值
对开发者而言,Dayu 缩短了从一组 AI 服务到可运行云边应用的路径;对研究者而言,它提供了无需反复重建外围运行时的统一策略验证环境;对 KubeEdge 社区而言,Dayu 展示了 KubeEdge 资源平面如何进一步承载面向持续 AI 负载、理解应用结构的上层平台。
Dayu 也已支撑同行评审的调度研究。在一项基于 KubeEdge 原型系统的评估中,Hier-EI 相对该研究所比较的基线,报告了最高 3.6 倍的时延合规率提升和 67.4% 的 P95 时延下降。这些结果仅对应特定策略、工作负载和测试环境;Dayu 更广泛的贡献,是提供一套让不同策略得以实现、观测和比较的统一平台。
未来方向
项目将继续扩展可复用服务目录和代表性工作流,改善云边应用的编排与观测体验,并增强对多样化边缘环境的支持。Dayu 也会持续跟进 KubeEdge 生态,让应用与调度创新建立在可维护、Kubernetes 原生的边缘基础之上。