架构实战营 - 第三期 - 模块三作业
外包学生管理系统架构文档
前言
本文是外包学生管理系统的详细架构设计文档,用于知道系统后续的开发、测试和运维。
词汇表
Nginx:常用的接入层反向代理和负载均衡器;
Mysql:常用的关系型数据库;
Linux:一种计算机操作系统,常用于服务器端;
Spring:一种典型的 Java 后端应用程序开发框架;
1. 业务背景
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,有必要建设一套学生管理系统,从学生管理现状出发,根据学生管理的新要求进行开发设计的,解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。
2. 约束和限制
必须在 2021 年 12 月 1 日前完成交付,总工期 60 天;
成本不能超过 10w;
全校教师 2k,学生 5w;
数据库采用 Mysql,开发平台 Linux;
教育网部署,公网可访问;
开发人员 2 人,前端 1 人(熟悉 VueJS),后端 1 人(擅长 Java);
3. 总体架构
Nginx:接入层代理,提供 7 层(HTTP 协议)反向代理,支持根据域名和 URL 进行请求路由到不同后端子系统;
后端子系统:分别提供学生管理、课程管理、权限管理独立功能的 3 个不同子系统,提供 RestAPI 的接口服务(HTTPS/1.1),使用 MyBatis 实现数据库的读写访问;
MySQL:提供数据存储服务,采用简单的主从架构,主机提供读写服务,备机常规时间不提供服务,主库故障时,可通过人工切换备库成为主库,故障恢复后,原主库切换为备库,并从新的主库恢复流水;
4. 详细设计
4.1 核心功能
登录 &鉴权
提供 SSO 和基于 RBAC 的权限管理功能
学生管理
。。。
课程管理
。。。
4.2 设计规范
前端使用 VueJS 框架,UI 使用 Bootstrap,后端使用 Spring Boot web 开发框架;
MySQL 使用 Innodb 存储引擎;
前后端使用 RestAPI 进行通信;
5. 质量设计
成本
1 台 Nginx 代理服务 :2 核 4G,10G 硬盘,带宽 10M
3 台子系统服务:2 核 ,4G,20G 硬盘
2 台数据服务:2 核,8G,500G 硬盘
6. 演进规划
6.1 迭代一(2 周)
完成权限管理系统开发,任务分解如下:
...
6.2 迭代二(1 周)
完成学生管理系统开发,任务分解如下:
。。。
6.3 迭代三(1 周)
完成课程管理系统开发,任务分解如下:
。。。
6.4 迭代四(1 周)
生产环境部署和整体联调,任务分解如下:
。。。
评论