架构实战营模块 1 课后作业
一、画出微信的业务架构图。
二、“学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
一、分析复杂度
1、高性能:支撑管理 1000 个学生,一般系统均可满足,高性能要求较低。
2、高可用:服务可以不可用。数据高可用:数据不要全部丢失。
3、可扩展:能够一定程度上,满足未来复杂业务的扩展性
4、成本、安全:成本,大家经济条件一般,都会 java,有一个 PHP 高手;
安全,没有做特别要求。
二、备选架构
1、架构备选方案 1
优点:nginx 代理,满足域名访问需求;三台服务器做应用集群,应用在一个系统内,业务按模块划分。
Mysql 主从备份。
缺点:服务器需要 5 台;应用语言实现全部为 java,php 优势未发挥;成本相对较高。
2、架构备选方案 2
优点:nginx 代理,满足域名访问需求;二台服务器部署 java 实现的子系统,另一台服务器部署 php 实现的子系统。Mysql 主从备份。php 优势得到发挥,在一定程度上降低了成本。
缺点:服务器需要 5 台;
3、架构备选方案 3
优点:nginx 代理,满足域名访问需求;一台服务器部署 java 实现的两套子系统,一台服务器部署 php 实现的子系统。Mysql 主从备份。
缺点:服务器需要 4 台;
三、最终方案及选择理由
选择 "架构备选方案 3"。
合适原则:
1)、符合团队技术水平和积累,php 语言优势得到发挥
2)、开发成本最低,只需要 4 台服务器
3)、运维成本也较低
简单原则:
1)、没有微服务,无需微服务基础设施
2)、有系统拆分,但只需要部署两台服务器,运维成本还是较低,部署也比较简单和方便
演化原则:
1)、一次性交付,无需考虑后续太多演变
2)、学生数量较固定,系统架构够用许多年。
评论