写点什么

架构实战营 模块一 作业

用户头像
小金库so
关注
发布于: 4 小时前
架构实战营 模块一 作业

作业一:微信业务架构图


作业二:“学生管理系统”毕业架构设计

学院毕设具体要求

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

  • 要求至少 3 人合作完成

  • 能够支撑管理 1000 个学生

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

当前条件

  • 3 个人一组

  • 3 人都会 Java,其中 1 人精通 PHP

  • 大家经常条件一般

作业要求

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

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

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


系统需求分析

【业务需求分析】

1、学生管理需求

2、教师管理需求

3、课程管理需求

4、考试管理需求

5、权限管理需求


【平台需求分析】

1、 支持公网域名访问,即需要使用 DNS、Nginx 支持。

2、至少支撑 1000 个学生管理


方案设计

复杂度分析

  • 高性能分析:目前要求可支撑管理 1000 名学生,加上管理员及老师,最多可管理 1200 人左右。

  • 高可用分析:考虑到学生管理系统非重要核心系统,无需考虑高可用,但是对于核心数据比较敏感,允许少量数据丢失,但是不能丢失全部数据,需要保障数据的高可用。

  • 高扩展分析:目前学校独立使用,需求比较单一,系统完成后可持续使用,无需考虑高扩展。

  • 成本分析:考虑到是学生,经济能力有限,故采用低成本。

  • 安全分析:需要保障核心学生隐私信息。


综上所述,对于该系统,需要满足以下条件:

  1. 数据高可用,保障核心数据不会全部丢失。

  2. 低成本。

  3. 用户隐私信息安全保障。

备选方案

方案一:单机应用


优点:成本少,无需考虑复杂场景

缺点:单机应用,数据库无备份功能。

方案二:拆分子系统


优点:按模块拆分子系统,各系统相对独立。

缺点:考虑到三个人,开发会相对复杂,出现故障难以快速定位。

方案三:负载均衡


优点:有数据库备份,负载均衡保障服务高可用。

缺点:成本相对来说比较高。

方案取舍

  • 从团队人员来看,一共三个人,其中三个都会 Java,其中一个 PHP 高手。考虑到业务相对不会很复杂,且后续维护方便,所有采用 Java 编程语言。

  • 团队成员经济一般,所以采用中低成本架构设计。

  • 能够支撑管理 1000 名学生,所以对高性能要求比较低。

  • 学校要求不能过于简单或过于复杂。


根据以上判断,选择方案三

架构设计三原则

合适原则

1、符合团队技术人员的要求,没有过高的技术要求

2、开发成本与经济成本相对比较低


简单原则

1、没有进行业务拆分,部署及维护比较简单

2、没有用到微服务,无需用到微服务的底层技术


演进原则

学生数量相对固定,不会发生太多变化

用户头像

小金库so

关注

还未添加个人签名 2017.10.17 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营 模块一 作业