写点什么

架构实战营课后作业

用户头像
spark99
关注
发布于: 刚刚

模块一作业

微信业务架构图

“学生管理系统”架构设计

假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:

  1. 要求可以通过公网域名访问;

  2. 要求至少 3 人合作完成;

  3. 能够支撑管理 1000 个学生;

  4. 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。

你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:

  1. 大家都会 Java,但是有一个是 PHP 高手;

  2. 大家经济条件一般。


复杂度分析:

  • 是否需要高性能?系统能支撑 1000 个学生足矣,因此不用考虑高性能。

  • 是否需要高可用?学校内部的学生管理系统,不要求计算高可用,但对存储高可用有一些要求:数据不能全部丢失。

  • 是否需要可扩展?涉及学生管理、课程管理、考试管理、权限管理,系统需要具备一定的扩展性。

  • 成本要求?需要自己来做一个可运行的系统,大家经济条件一般,因此成本不能高。

  • 安全性要求?学生信息主要涉及姓名、学号、成绩等信息,安全性要求不高。

综上分析得到复杂度来源:

  1. 存储高可用:数据不能全部丢失

  2. 系统需要具备一定的扩展性

  3. 经济有限,成本不能高


根据复杂度画出架构图:

  • 方案一


  • 方案二


方案选择:

两种方案都能满足业务要求,但方案一更优,主要原因:

合适原则:

  1. 性能和可用性约束:不需要高性能和高可用计算,方案一足矣;

  2. 成本约束:大家经济条件一般,方案一只需要 3 台服务器,方案二需要 5 台服务器;

  3. 技术约束:方案二需要单独部署和配置 Nginx 服务器,需要熟悉 Nginx;

简单原则:

  1. 部署成本:方案二部署麻烦,需要部署 1 台 Nginx 服务器和 2 台业务服务器;

  2. 维护成本:方案二的维护成本高,需要监控两台服务器、排查问题需要在两台服务器上切换;

演化原则:

  1. 学生数量相对稳定,方案一的系统架构在 2-3 年内够用,无需考虑太多演化,且方案一演化成方案二也相对简单。


发布于: 刚刚阅读数: 3
用户头像

spark99

关注

还未添加个人签名 2020.10.07 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营课后作业