newcoderlife

Hybrid Cloud 开发计划
关于 Hybrid Cloud其实我很久以前就想写 Hybrid Cloud 了,但是因为种种原因一直搁置到现在。...
扫描右侧二维码阅读全文
15
2018/11

Hybrid Cloud 开发计划

关于 Hybrid Cloud

其实我很久以前就想写 Hybrid Cloud 了,但是因为种种原因一直搁置到现在。在我购入新机之后,终于有时间和精力开始推进这个项目。

我理想中的 Hybrid Cloud 是一个个人混合云项目,主要功能有离线下载,BT,文件存储和共享功能,包含 Windows,网页和Android(可能还会有 iOS 和 OS X,等我有设备了再说吧)平台。

为什么写 Hybrid Cloud

想要写这个项目主要是我觉得网络上的其它云方案,不管是开源方案(比如 nextcloud)还是闭源的(群晖之类的厂商提供的方案),都有各种各样的局限。比如:

  • 依赖相关硬件
  • 价格高昂
  • 平台不完善
  • 代码老旧

对于本穷逼,群晖之类的付费方案不考虑,我又无法忍受在自己的服务器上运行垃圾代码,所以想要自己动手写云(话说这轮子造的有点大啊)。

开发计划

Hybrid Cloud 项目很大,如果只是我一个人完成的话,可能周期会拖得很长。考虑到工作后没有足够的时间跟进开发工作,所以为了它我可能还要读个研 (:

需求分析

本项目分为后端,网页前端,Android 前端,Windows GUI 前端等多部分,并且涉及到复杂的逻辑。同时考虑到项目开发时间较长,所以决定分模块开发。项目在组织形式上将分为多个软件仓库,托管于 Github。

后端

后端主要分为两部分,首先是文件存储于共享。由于是个人云,所以文件将不会加密。字符集将会采用 UTF-8。文件将会存储在目录中,同时与 URL 相对应。重复文件将仅存储一份。

然后是云同步部分,对于不同版本的文件将会储存不同的副本,并使用 URL 访问。系统将支持备份功能。

网页前端

网页将会做成网页应用的形式,页面会仿照 Windows 资源管理器的形式,在右键菜单提供历史版本的文件访问。后续如果有时间将会添加富文本编辑功能。

技术选型

后端

后端将首先采用 Python 开发,现阶段将会首先完成文件储存于共享功能。后端项目将会暂时运行在 Linux 上,文件存储在 EXT4 文件系统中,并且支持修改文件存储路径。

相关技术列表:

需求 技术
开发语言 Python 3.6.5 (Follow system)
服务器环境 Ubuntu Server 18.04 (Latest LTS version)
Web 服务器 Nginx 1.14.0 (Follow system)
后端框架 Django 2.1.3 (Latest release version)

对于文件与 URL 对应问题,我将会采用 REST API 来解决。将会采用 Django REST Framework 来组织 URL。同时前后端分离,采用 REST API 交互。

网页前端

前端将由 Nginx 代理,前后端分离。考虑到文档支持程度,目前暂定前端框架为 VueJS。语言将会使用 TypeScript,方便日后项目拓展。网页前端选用的技术列表如下:

需求 技术
脚本语言 TypeScript 3.1 (Latest release version)
前端框架 VueJS v2.5.17 (Latest release version)

Android 客户端

Windows GUI 客户端

时间安排

后端和网页前端日程表

事件 描述 截止时间
技术调研 浏览市面上的相关项目,修改开发计划 2018.11.16 - 2018.12.31
第一阶段需求技术确认 确认第一阶段的开发需求和技术选型 2018.12.31
后端开发框架搭建 搭建基础开发框架,Django,rest-framework,Nginx,DevOps 2018.1.1 - 2018.1.31
后端代码填充 填充于完善后端代码,完成文件存储于共享功能 2018.2.1 - 2018.2.28
前端原型设计 设计前端 GUI 和操作逻辑,修改开发计划,编写静态界面 2018.3.1 - 2018.3.10
前端代码完善 完善前端脚本设计 2018.3.11 - 2018.3.31
前后端对接 使用 REST API 对接前后端 2018.4.1 - 2018.4.10
项目上线运维 完善 DevOps 流程,项目正式上线使用 2018.4.11 - 2018.4.30

Android 客户端日程表

Windows GUI 客户端日程表

未完待续

Last modification:May 30th, 2019 at 07:19 pm
点击广告投喂博主 以获得更快的访问速度!

Leave a Comment