架构实战2-学生管理系统毕设架构设计

1,185 阅读3分钟

需求

背景

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

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

② 要求至少 3 人合作完成;

③ 能够支撑管理 1000 个学生;

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


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

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

② 大家经济条件一般。

作业要求

① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。

② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。

③ 给出你选择的最终方案以及选择理由。

需求分析

功能模块,背景没有描述,简单说明下。

  • 学生管理
  • 课程管理
  • 权限管理

非功能性需求

  • 公网域名访问
  • 能承载1000个学生的信息(存储、访问)

其他

  • 都会java
  • 有个php高手(前端有救了)
  • 大家经济一般(能省则省)

架构设计

根据以上的需求分析,筛选出几个需要考虑的点:

  • php,超文本预处理器,则可以前端开发
  • 大家都会java,后端采用java开发
  • 经济有限、1000个学生,则后端单体架构即可,只要求可运行,不要求高可用
  • 数据库可以使用mysql,单节点或主备
  • 公网需要域名访问,则需要申请公网域名,配置公网DNS
  • 服务器可采用公有云或私有服务,如果是私有IDC,则需要申请公网IP,从公网IP进入再映射到私有服务器
  • 需求比较明确,性能要求不高,不需要考虑架构演进,可一步到位

备选方案1

image.png 优点

  • 可以利用学校现有资源
  • 本地机房私有化部署,数据相对安全 缺点
  • 数据库宕机或数据库磁盘损坏,数据会丢失
  • 需要维护服务器,保证基础服务器可用,需要配置内外网映射

备选方案2

image.png 优点

  • 相对方案1,增加了数据备份,防止数据丢失

备选方案3

image.png 优点

  • 不需要关心基础设施层,公有云配置相当简单,只需要关心前后端服务于数据库即可 缺点
  • 需要收费

取舍

根据以上分析及多个架构设计,我认为最优应选择备选方案3,理由如下:

  • 公有云服务不需要关心基础设施,配置防火墙,域名解析,都非常简单,减少运维成本,踩过私有云的坑
  • 上面三个方案从技术上都大同小异,因为系统本身并不发杂,所以从运维及资源协作上来说,共有云最方便,涉及内部资源使用可能需要走流程、找相关运维人员沟通等
  • 公有云短期并不贵,比如只购买几个月,毕设完成后,可保存基本构建镜像及数据,释放资源即可