Skip to content

V2.Software requirement document

Knight.zhou edited this page Oct 18, 2017 · 15 revisions

V2.软件需求概览:

1.安装GitLab、MediaWiki、Piwik、Jenkins、Docker、NetLogo、Netlify、Jupiter、OpenModelica、等一系列基础环境

2.建立自己的 Docker Registry,私有的Docker镜像服务,用于存储我们自己的Docker镜像仓库(Repository)

3.使用GitLab进行代码管理,并联动Jenkins进行自动化打包,生成Docker Image,推送到自己的Repository

4.使用Docker Compose在目的机上进行集成环境部署

Function Requirements:(功能需求)

  1. 在"Mediawiki"功能被激活时,系统通过“MediaWiki”相关操作,实现”运行于PHP+mySQL环境。使用为维基百科开发的wiki程序“。
  2. 在"Piwik"功能被激活时,系统通过"PHP和MySQL的开放源代码的Web统计软件"相关操作,实现"一些关于你的网站的实用统计报告,比如网页浏览人数, 访问最多的页面, 搜索引擎关键词功能"。
  3. 在"MediaGoblin"功能被激活时,系统通过"MediaGoblin"相关界面操作,实现"媒体发布平台功能"。
  4. 在"Juypter"功能被激活时,系统通过"服务器上安装使用jupyter notebook"相关命令行,实现"交互式笔记本,支持运行 40 多种编程语言。 前端展现基于浏览器,可以远程使用"。
  5. 在"OpenModelica"功能被激活时,系统通过"一个开源的基于Modelica语言的建模和仿真环境"相关命令行,实现"用于工业界和学术界研究"。
  6. 在"Jenkins"功能被激活时,系统通过"Jenkins持续集成(CI/CD)是一种软件开发实践",实现"帮助团队成员频繁、快速的集成,测试他们的工作成果,以尽快发现集成错误。 更频繁、更早的集成意味着更早的发现问题。通过持续集成,及时发现和解决代码故障,提高代码质量,减少故障处理成本等等"。
  7. 在"Nexus"功能被激活时,系统通过"搭建本地的仓库服务或仓库代理服务器"相关配置,实现"代理远程仓库的同时维护本地仓库,以节省带宽和时间,资产管理功能"。
  8. 在"Netlify"功能被激活时,系统通过"netlify push/build"相关命令行,实现"基于Netlify的Global CDN, Continuous Deployment, one-click HTTPS"。
  9. 在"Gitlab"功能被激活时,系统通过"git pull/run"相关命令行,实现"使用Git作为代码管理工具,并在此基础上搭建起来的web服务"。

MileStone(里程碑)

1.截止2017/11/08,Mediawiki+Piwik+Mediagoblin docker-compose 验证完成;

2.截止2017/12/08,Mediawiki+Piwik+Mediagoblin+Gitlab+Juypter+Netlify+OpenModelica docker-compose 验证完成;

Non-Function Requirements(非功能需求)

  1. "系统的平均故障间隔时间应该为 2000 小时",
  2. "系统的平均修复时间应为 1 小时",
  3. 以及最多应该能够存储1T容器映像数据"。

Design Constraints(设计约束)

  1. 支持"101.6.160.51内外网运行"
  2. 支持"101.6.160.59内网运行"
  3. 获得Jenkins的CI/CB/CD/的工作流程监控;

微处理架构——处理复杂事物

许多公司,比如Amazon、eBay和NetFlix,通过采用微处理结构模式解决了上述问题。其思路不是开发一个巨大的单体式的应用,而是将应用分解为小的、互相连接的微服务。

一个微服务一般完成某个特定的功能,比如围棋棋谱管理、围棋玩家管理等等。每一个微服务都是微型六角形应用,都有自己的业务逻辑和适配器。一些微服务还会发布API给其它微服务和应用客户端使用。其它微服务完成一个Web UI,运行时,每一个实例可能是一个云VM或者是Docker容器。

ms-services

Clone this wiki locally