架构训练营模块一作业
1. 画出微信的业务架构图。
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
①要求可以通过公网域名访问;
②要求至少 3 人合作完成;
③能够支撑管理 1000 个学生;
④答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
①对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
②使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③给出你选择的最终方案以及选择理由。
判断复杂度
1、高性能?1000 个人来说对于性能要求并不高。
2、高可用?学生管理系统对于高可用要求并不高,学校的教学并不是完全依赖于学生管理系统,但是对于数据高可用需要特别的注意,不能全部丢失学生信息。
3、可扩展?学生管理系统需求相对复杂,所以对应可扩展性需要注意,明确规定需要三个人合作完成,为了合作顺利,需要按照模块划分编码。
4、成本、安全?由于大家经济一般,所以这边成本相对需要控制一下。
总结下来:可扩展:业务相对比较复杂,按模块划分编码,数据高可用:数据不能全部丢失,成本:需要租用云服务器,按量付费。
备选架构方案
备选方案一
备选方案二
方案取舍
基于团队的技术水平,方案的成本,开发周期三个方面思考
如果使用方案一:团队人员都会 Java,有一个 PHP 高手,如果我们要将学生管理系统拆分成多个子系统,一个系统由 PHP 实现,另外两个子系统由 Java 实现,这个时候就会出现,团队协作的问题,也会存在开发成本比较高的情况,且部署运维都会比较麻烦,服务器相对比较耗费成本。
如果使用方案二:我们按照模块拆分,2 个模块用 Java,一个模块用 PHP 这个也是不合理的,所以我们需要三个开发都用 Java 编写,且按照模块的方式编写。我们只用 2 台服务器,也降低了成本。
评论