架构实战营第三模块课后作业
外包学生管理系统的详细架构设计文档
1. 业务背景:
随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费 大量的教师资源,处理效率也十分低下。
为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课 题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要 解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题, 帮助学生管理人员有效管理学生信息。
因此学生信息管理系统可以通过系统规范化地管理、科学性统计和快速查询、修改、 增加、删除等,提高信息的准确度以及日常管理的工作效率。
本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、 规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删 除、以及学生选课、成绩的查询等功能设计的管理系统。
2. 总体架构:
3、详细设计:
3.1 核心功能:
架构说明: 合适原则: ① 符合团队技术水平和积累; ② 开发成本低; ③ 系统运维成本低。 简单原则: ① 不进行系统拆分,部署维护简单; ② 没用微服务,无需微服务基础设施。 演化原则: ① 一次性交付,无需考虑太多后期演化; ② 学校的学生数量不会发生很大变化,系统架构够用多年。
3.2 关键设计:
详细架构设计 1 – Role&Rela 陞�on 【客户端 Role 设计】
1. 前端采用 VUE 实现,基于 restful api 与后端实现数据传输;
2. 服务端 nginx 会将请求交给 fastcgi 客户端,通过 fastcgi_pass 将用户的请求发送给 phpfpm,实现后端 php 服务交互。
【客户端和服务器的 Relation 设计】 1. 客户端与服务端采用 TCP 连接,采用 JSON 传递数据。 2.服务端提供 HTTP 接口。
【服务器 Role 设计】 为了提高服务器业务并发能力,可以考虑采用负载均衡架构,使用 nginx 作为代理服务器采 用分发请求到集群服务器。
【MySQL 的 Role 和 Rela 陞�on 设计】 采用 MySQL 主从同步,提升数据读取速度。
3.3 设计规范:
1. 接口采用 restful api 规范,采用 json 格式; 2.MySQL 采用 InnoDB 引擎; 3. 服务器采用 nginx+php-fpm 架构。 4. 前端独立部署 VUE 框架 eslint 编码规范。
4、质量设计:
1. 可测试性:MeterSphere 自动化测试框架监控 api 和页面请求状态; 2. 可维护性:k8s 管理 docker 镜像部署,shell 脚本实现自动化运维; 3.可观测性:搭建可视化管理后台和数据面板; 4. 成本:采用 mysql 和 redis,nginx,php 架构均为开源项目,可以很好的控制成本。
评论