Categories
技术讨论

UCOCloud云服务架构初步设计

在前一段时间考虑云服务的时候,大致整理了一个系统架构。只是业余工作,和公司工作无关。

借用了一下云服务的概念,目前通过服务端的程序为用户提供对应的数据服务。而整个架构是在满足工程计算方面的实际需求,而不进行过度设计。

1. 整体特点

UcoCloud架构如下图所示,主要包括web前端、Master主控服务以及一系列的Worker工作机。

image

UcoCloud以Master服务为核心,负责任务队列、调度以及Worker的管理,不涉及具体业务。这里的Master服务不同与Gate服务,如果后来业务需要可以增加Gate服务,从而支持多个Master。

Worker承担具体业务,可以不同类型,可以随时增加更多worker来增强计算能力。

Web前端只是一个Master服务交互的界面,与用户进行交互。

必要时可以增加专门的File Server。

2. Master服务

Master服务主要功能有3个,维护Task队列和Worker在线列表,同时负责Task的调度。Master采用简单授权,以JSON格式数据交换;Master建议用Python开发,为有状态服务。

image

任务队列 /Task 包括以下接口服务:

•Add: 增加任务 (ROLE_USER)

•View: 查看任务 (ROLE_USER)

•Delete: 删除任务 (ROLE_USER)

•List: 任务列表(ROLE_USER)

•Result: 任务结果(ROLE_USER)

•Get: 获取任务(ROLE_WORKER)

•Update: 更新任务(ROLE_WORKER)

Worker列表 /Worker 包括以下接口服务:

•Register : 注册worker(ROLE_WORKER)

•Exit : 退出worker(ROLE_WORKER)

•Check : 心跳消息,获取任务列表

•调度器 /Scheduler

•Update : 调度器更新(如果是有状态服务,应该自起线程自动维护)

关于调度机制:

(主要涉及调度任务的分配、已分配任务的检测和重新分配等,待补充完善)

3. web前端

Web前端为Master服务的前端,Web前端不维护具体数据。Web前端从Master服务获取信息;Web与Master之间使用JSON数据交流。

建议用php开发,但不限制。

对于普通用户,提供以下交互界面:

image

对于管理员用户:

image

4. Worker工作机

worker工作机负责具体任务的执行。但是这里的worker只负责与Master的数据沟通和通讯,具体的业务处理由worker调用相关程序执行。

image

5. 关于Task任务

Task具有以下属性;

image

工作流程不画图了,简要如下:

image

image

6. 关于开发环境

image

7. 其他

关于授权/Email通知/Log及报表等略.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.