架构训练营 - 第一周作业
1. 画出微信的业务架构图
2. “学生管理系统”毕业设计架构
假设学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院毕设的具体要求如下:
1. 要求可以通过公网访问域名;
2. 要求至少 3 个人合作完成;
3. 能够支撑管理 1000 个学生
4. 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起做这个项目,你们的基本情况如下:
1. 大家都会 java,但是有一个 PHP 高手;
2. 大家经济条件一般。
作业要求:
1. 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案;
2. 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点;
3. 给出你选择的最终方案及理由
根据对需求可以将学生管理系统总结为如下的功能:
学生管理
课程管理
权限管理
根据这些功能是放到一个模块,还是放到多个模块,设计为如下的架构:
架构 1 一套服务处理所有请求
这个架构中,每个业务服务都是等价的,都可以完成所有的请求。
架构 2: 划分为不同的子系统
这个架构中,将学生管理系统拆分为不同的子系统,并且分别部署。
总结
由于系统是多个人开发,为了充分利用不同同学的优势,采用方案2
的架构设计。因为通过将功能拆分为不同的子系统,这些子系统之间相互独立,可以使用不同的语言进行开发。同时可以将实现复杂的系统分配给编程能力较好的同学。
实际部署架构
由于学生的经济条件一般,并且只是应对毕业答辩,所以可以通过如下的方式实现题目要求:
申请免费域名
申请花生壳代理服务,并使用上一步的申请的域名指向。
在学生的电脑上搭建多个 docker 服务,模拟线上架构
其部署架构如下图所示:
评论