File tree 7 files changed +113
-6
lines changed 7 files changed +113
-6
lines changed Original file line number Diff line number Diff line change @@ -6,4 +6,16 @@ custom_edit_url: null
6
6
7
7
# Basic System Layer
8
8
9
- [ TBA]
9
+ [ TBD]
10
+
11
+ 基础系统层通过将 [ KubeEdge 容器编排框架] ( https://kubeedge.io/ ) 部署在云边分布式节点上,从而为大禹调度系统提供底层的容器化编排支持。
12
+ ` KubeEdge ` 是华为为边缘场景提出的 [ Kubernetes 框架] ( https://kubernetes.io/ ) 扩展,能很好地部署在资源有限、性能低下的设备上,从而在云服务器和边缘节点上建立容器化编排基础框架。
13
+
14
+
15
+ 具体来说,` KubeEdge ` 使用 ` CloudCore ` 组件和 ` EdgeCore ` 组件实现云边环境中的容器化应用编排和设备管理。
16
+ 其中,云服务器(在整个云边分布式环境中,有且只有一个云服务器)上部署 ` CloudCore ` 组件,负责与边缘设备上的 ` EdgeCore ` 组件通信,并管理维护整个云边分布式设备集群,
17
+ 使云服务器作为整个云边协同多设备中的 Master 管理节点;每个边缘设备上部署 ` EdgeCore ` 组件,负责管理设备本身以及与云服务器的 ` CloudCore ` 通信,维护云边协同的必要工作。
18
+
19
+
20
+ ![ lower-layer-structure.png] ( /img/architecture/lower-layer-structure.png )
21
+
Original file line number Diff line number Diff line change @@ -6,4 +6,27 @@ custom_edit_url: null
6
6
7
7
# Intermediate Interface Layer
8
8
9
- [ TBA]
9
+ [ TBD]
10
+
11
+ 中间接口层基于 ` KubeEdge ` 系统部署,负责对接大禹调度系统的定制化需求,通过自定义组件的形式定制大禹调度系统需要的服务下装和节点通信接口。
12
+ 我们通过修改和扩展官方的 [ 服务下装组件 Sedna] ( https://sedna.readthedocs.io/ ) 和 [ 节点通信组件 EdgeMesh] ( https://edgemesh.netlify.app/ ) 构建中间接口层。
13
+
14
+ ![ lower-layer-structure.png] ( /img/architecture/lower-layer-structure.png )
15
+
16
+ ** Sedna:**
17
+
18
+ ` Sedna ` 通过在Master节点(云服务器)上部署全局管理器 ` Global Manager ` 、在每个设备上(包括云服务器)部署本地控制器 ` Local Controller ` (为便于与上层系统中的组件名区分,这里我们将 ` Local Controller ` 改名为 ` Local Manager ` ),
19
+ 实现云边分布式系统上的统一服务下装与管理。
20
+
21
+ 具体来说,` Global Manager ` 负责云边定制化服务维护、云边服务协同处理、云边分布式配置管理等,可以通过定制化CRD的方式扩展新的云边协同服务;` Local Manager ` 负责在每个设备上维护具体的服务运行时,其接受 ` Global Manager ` 的控制指令维护下装的服务组件,并将每个服务组件作为一个Worker管理,从而实现分布式系统上的跨设备服务维护。
22
+
23
+ 需要注意的是,在大禹调度系统中,上层系统中系统支撑层、协同调度层、应用服务层的功能组件都是以Worker的形式在 ` Sedna ` 中托管。我们通过修改扩展 ` Global Manager ` 和 ` Local Controller ` 中的CRD模板和CRD控制器,定制化实现大禹调度系统服务下装过程中需要的参数传递和文件挂在等过程 ([ 大禹定制版 Sedna] ( https://github.com/dayu-autostreamer/dayu-sedna ) )。
24
+
25
+ ** EdgeMesh:**
26
+
27
+ ` EdgeMesh ` 通过在每个节点上部署 ` EdgeMesh Agent ` 组件,为云边分布式协同系统中不同节点上的Pod间通信提供高效方式,其具有高效路由、自动负载均衡等特性,适合大规模云边场景下的跨设备通信。
28
+
29
+ 根据大禹调度系统的需求,我们定制化修改了 ` EdgeMesh Agent ` 组件中的负载均衡算法策略,使其从原本的简单所有设备轮询转化为对特定目标设备的多个POD做负载均衡,从而对接上层系统的通信需求([ 大禹定制版 EdgeMesh] ( https://github.com/dayu-autostreamer/dayu-edgemesh ) )。
30
+
31
+
32
+
Original file line number Diff line number Diff line change @@ -6,4 +6,19 @@ custom_edit_url: null
6
6
7
7
# System Support Layer
8
8
9
- [ TBA]
9
+ [ TBD]
10
+
11
+ 系统支撑层为大禹调度系统提供面向用户的功能性支撑服务,从而完成对用户直接需求的对接。
12
+ 具体来说,系统支撑层由** 前端服务器** 、** 后端服务器** 和** 数据源服务器** 组成。
13
+
14
+ ** 前端服务器** 使用VUE语言构建了一个可交互的网页式前端界面,在启动大禹调度系统后,用户可以直接访问前端页面,
15
+ 通过前端页面提供的按钮完成所有操作流程。
16
+
17
+ ** 后端服务器** 负责与前端交互,通过Fastapi构建HTTP响应式服务,
18
+ 为用户在前端页面上的操作提供实时具体的响应,包括提供基础服务数据、安装功能组件、回传任务执行结果数据等。
19
+
20
+ ** 数据源服务器** 为用户的流数据处理应用提供模拟数据源.在非真实的仿真场景或测试场景中,
21
+ 缺少真实流数据源(如真实摄像头)往往会导致系统行为和效果无法完全模拟真实场景,
22
+ 因此大禹调度系统中我们通过构建可选的数据源服务器,提供包括RTSP、HTTP在内的多种流数据源发生器的功能,覆盖真实场景下不同类型的数据源。
23
+
24
+
Original file line number Diff line number Diff line change @@ -6,4 +6,34 @@ custom_edit_url: null
6
6
7
7
# Collaboration Scheduling Layer
8
8
9
- [ TBA]
9
+ [ TBD]
10
+
11
+ 协同调度层是大禹调度系统实现核心功能服务的主要结构,其由我们自主开发的多个功能组件组成,
12
+ 为流数据处理应用提供处理、调度、监控等全流程细粒度操作,从而支持实时流数据分析流水线的处理。
13
+ 具体来说,协同调度层主要由** 生成器** 、** 控制器** 、** 处理器** 、** 分发器** 、** 调度器** 、** 监控器** 这六个功能性组件组成。
14
+
15
+ ![ upper-layer-structure.png] ( /img/architecture/upper-layer-structure.png )
16
+
17
+ ** 生成器** (` Generator ` )负责实时捕获流数据和生成流数据处理任务。每个边缘节点上部署一个生成器,同时每个生成器可以绑定到一个流数据源,
18
+ 在捕获数据源的流数据后根据调度器给出的配置决策对流数据进行切分、预处理等操作,形成流数据处理任务,并根据卸载决策将待处理任务发往对应节点的控制器进行进一步地分析处理。
19
+
20
+ ** 控制器** (` Controller ` )负责控制流数据处理任务在云边分布式设备上的转发过程。云边分布式集群中的每一个设备上会部署一个控制器,流数据处理任务在设备间进行转发时会优先进入控制器,
21
+ 控制器在根据任务的当前状态完成具体的转发,转发逻辑具体包括往当前设备的对应阶段处理器完成AI算法处理、发往其他设备继续处理、发往分发器存储已完成的任务数据等。
22
+
23
+ ** 处理器** (` Processor ` )负责对流数据任务完成特定的AI算法处理使用 AI 算法处理数据。
24
+ 在应用服务层中,一个流数据处理应用可能包含一个或多个处理阶段,每个处理阶段对应一个具体的AI应用服务,
25
+ 因此,每个处理器封装嵌入一个AI应用服务的具体逻辑,并对外暴露统一接口,从而可以方便地完成流数据处理服务调用。
26
+ 每个设备上会部署所有阶段的处理器,从而可以方便地将任意阶段任务卸载到任意节点上执行。
27
+
28
+ ** 分发器** (` Distributor ` )负责收集已完全处理完的流数据任务的处理数据。其只在云服务器上存在,收集包含具体的处理结果、过程处理时延、调度决策信息等在内的多种数据,
29
+ 并按需求完成对数据的存储和分发,如将处理结果分发给前后端服务器展示给用户,将处理信息分发给调度器作为调度反馈调整调度决策。
30
+
31
+ ** 调度器** (` Scheduler ` )负责生成流数据处理的调度决策信息,包括配置决策和卸载决策,其只在云服务器上存在。
32
+ 具体来说,配置决策指对流数据本身的预处理,如降采样等;卸载决策指对流数据每阶段处理任务的卸载设备的决策。
33
+ 基于调度器产生的决策信息,大禹调度系统可以对流数据的处理任务执行细粒度的调度切换控制。
34
+
35
+ ** 监控器** (` Monitor ` )负责监控资源使用情况。监控器在云边分布式集群的每个设备上存在,监控设备内部资源状态,如CPU使用率、内存使用率等;也监控设备间资源状态,如节点间的网络带宽等。
36
+
37
+ 在这些组件中,** 生成器** 、** 控制器** 、** 分发器** 、** 调度器** 、** 监控器** 等组件嵌入平台并提供精细的流水线任务组织和调度,它们对用户透明不可见;
38
+ 同时,** 处理器** 可以封装应用服务层中用户定义的单阶段或多阶段(流水线)的应用服务,其中每个处理器封装一个阶段的应用服务,一个或多个处理器可以构成完整的应用处理流程。
39
+
Original file line number Diff line number Diff line change @@ -6,4 +6,15 @@ custom_edit_url: null
6
6
7
7
# Application Service Layer
8
8
9
- [ TBA]
9
+ [ TBD]
10
+
11
+ 应用服务层为用户的需求定制具体的应用处理逻辑,从而向大禹调度系统提供上层的逻辑化应用表示。
12
+
13
+ 具体来说,用户的需求可以转化为由一个阶段或多个阶段AI处理服务组成的应用流水线,
14
+ 例如用户需要完成路面车辆监控,可以转化为“车辆检测、车牌定位、车牌识别”形式的视频流处理流水线,在这个流水线中“车辆检测”这样的服务构成了流水线的一个阶段,
15
+ 且每个阶段可以使用一种独立的AI处理逻辑表示,从而可以封装进协同调度层的处理器中。应用服务层中为用户提供当前系统支持的所有服务类型,并对服务制定对应的规约,
16
+ 用户可以在符合规约的前提下任意编排不同的服务,从而组合成用户需要的应用处理逻辑。
17
+
18
+ 需要注意的是,系统中支持的服务内容和用户对应用的编排均在用户与前端页面的交互中完成。
19
+
20
+
Original file line number Diff line number Diff line change @@ -5,4 +5,20 @@ custom_edit_url: null
5
5
6
6
# Brief Architecture
7
7
8
- [ TBA]
8
+ [ TBD]
9
+
10
+ 大禹系统拥有五层架构,
11
+ 其中,基础系统层和中间接口层构成了下层系统,主要包含支持容器化编排、自定义任务下装、跨异构节点通信的基础设施结构,为流数据处理应用提供底层保障;
12
+ 系统支撑层、协同调度层、应用服务层构成了上层系统,主要包含支撑情境感知、计算决策、流程控制的功能组件,为流数据处理应用提供感算控一体化处理、调度、监控的全流程服务。
13
+
14
+ ![ arch] ( /img/architecture/arch.png )
15
+
16
+ 具体来说,每层的详细功能如下:
17
+
18
+ - 基础系统层:该层采用 ` KubeEdge ` 容器编排架构,部署在云边协同环境的所有分布式节点上。` KubeEdge ` 是华为为边缘场景提出的 ` Kubernetes ` 框架扩展,能很好地部署在资源有限、性能低下的设备上,从而在云服务器和边缘节点上建立容器化编排基础框架。
19
+ - 中间接口层:该层通过修改和扩展官方接口组件 ` Sedna ` 和通信组件 ` EdgeMesh ` ,提供定制化的容器服务安装和组件通信,从而满足整体系统的应用部署和节点通信需求。
20
+ - 系统支撑层:该层为整个系统提供支持服务,包含前端服务器(为用户提供交互式UI)、后端服务器(响应前端请求,完成任务的自动安装)和数据源服务器(模拟真实数据源)。
21
+ - 协同调度层:该层由我们自主开发的多个功能组件组成,为流数据处理应用提供处理、调度、监控等全流程细粒度操作,从而支持实时流数据分析流水线的处理。
22
+ - 应用服务层:该层以容器化无状态微服务的形式接收用户自定义的服务应用。只要用户根据平台定义的统一接口需求开发服务,就可以以容器形式嵌入平台,并编排成流水线,从而在云边节点之间的协同调度执行。
23
+
24
+
You can’t perform that action at this time.
0 commit comments