写点什么

week3 - 作业

作者:in9
  • 2022-10-30
    北京
  • 本文字数:1438 字

    阅读完需:约 5 分钟

week3 - 作业

写出外包学生管理系统的架构文档


【作业要求】


  1. 基于模块 1 第 5 课 P15 页的外包学生管理系统备选架构 1(见下 1 页),写出完整的架构设计文档;

  2. 注意不是备选架构文档,而是最终落地的详细架构设计文档;

  3. 无需考虑数据库表设计,因为表设计是方案设计阶段做的,不是架构设计阶段做的。


【提示】


  1. 架构设计文档是完整的文档(Word 或语雀文档之类的都可以),而不是 PPT;

  2. 架构文档涵盖的内容请参考模块 3 第 4 课,细化架构设计参考模块 3 第 6 课;

  3. 外包学生管理系统的业务请参考模块 1 第 5 课的课件;

  4. 架构文档模版可以参考:架构实战营详细架构设计文档模版

前言

随着学校的规模的不断扩大,学生数量的增加,需要处理的信息也日趋增大。不仅花费大量的教师资源,处理效率也十分低下。

修订历史


  1. 业务背景


为提高学生管理的管理水平,优化资源,尽可能降低管理成本成为学生管理的新课题,学生管理系统是从学生管理现状出发,根据学生管理的新要求进行开发设计的,它需要解决学生信息管理数据信息量大修改不方便,对一系列数据进行分析时花费时间长等问题,帮助学生管理人员有效管理学生信息。


因此学生信息管理系统可以通过系统规范地管理、科学性统计和快速查询、修改、增加、删除等,提高信息的准确度以及日常管理工作效率。


本系统主要是应用于学生各类信息的管理,总体任务是实现学生信息关系的系统化、规范化、自动化,其主要任务是统计学生各类信息进行日常管理,如查询、修改、增加、删除、以及学生选课、成绩的查询等功能设计的管理系统。


2. 约束和限制

  1. 10.26 日 23:59 之前必须完成。

  2. 采用 MySQL 数据库

  3. 采用阿里云管理资源

  4. 控制成本-每年设施的烧用低于 5w 人民币

3. 总体架构



3.1 架构分析

  1. 高可用

  2. 学生管理系统存储的信息为历届学生信息和其相关的课程等信息,此信息对于每个同学本身是很重要的,如果出现丢失或者无法使用的情况,可能对学校的不变。

  3. 所以目前看 MySQL 数据库很关键需要采用主从模式进行部署,同时要定期对数据进行备份,保证数据的可用性。

2. 可扩展

  1. 系统前期由学生、课程和权限系统组成,后期随着这系统的落地,使用频率逐渐增加,会有继续扩展系统面向场景的可能;比如学生体检、住宿信息等与学生紧密相关的内容扩展。

  2. 所以应用架构采用微服务架构建立,对各功能进行划分,同时留有一定扩展位,方便内容的扩展。

  3. 成本

  4. 学校本身对于此处成本控制较为严格且敏感。

  5. 所以采用按需+包年的组合进行云上资源的部署,来降低设备采购成本和交付时间。

3.2 总体架构


  1. 采用微服务架构提供服务。

  2. 使用 MySQL 数据库,通过分库的方式,完成多系统的数据部署。

  3. 采用主从模式进行应用的部署,保证数据的高可用性,同时可以通过备库进行查询分析。

4. 详细架构

4.1 核心架构

4.1.1 学生管理


4.1.2 课程管理


4.1.3 权限管理


4.2 关键设计

  1. 微服务架构能力

  2. 课程/学生数据管理

  3. 鉴权管理

4.3 设计规范

  1. 采用 SpringBoot 组成微服务场景

  2. MySQL 采用 InnoDB 模式

  3. MySQL 数据库 管理 与 应用权限分离

  4. 业务服务器需要启动防火墙,只允许内网访问业务端口

5. 质量设计

  1. 可测试性

  2. 应用留有测试接口,制造数据方便测试人员接入,同时将整个过程逐步自动化。

2 . 可观测性

  1. 应用系统构建中增加包括:系统指标、数据库指标、日志收集和链路性能监控等能力的接入,方便应用系统出现问题时的解决。

3 . 可维护性

  1. 代码开发过程中标准化、模块化、文档化,保证快速的变更和稳定的服务。

4 . 成本

  1. 通过对基础设施的标准化管理减少运维成本,通过对代码质量监控减少开发成本,通过云上提供的账单控制资源成本。

6. 演进规划

  1. 完成基础鉴权功能的继承、学生管理和课程管理功能

  2. 接入学生住宿管理

  3. 接入学生缴费管理

用户头像

in9

关注

还未添加个人签名 2017-11-30 加入

还未添加个人简介

评论

发布
暂无评论
week3 - 作业_in9_InfoQ写作社区