「架构实战营」模块一《为何架构设计能力难以提升》作业
画出微信的业务架构图
“学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
备选架构一
优点:
拆分成三个子系统,毕业设计项目组团队方便分工;
拆分成三个子系统,系统架构不至于太简单;
数据库有主备,数据不易丢失;
没有微服务,无需微服务基础设施;
缺点:
拆分成多个子系统,开发成本高;
数据库有主备,需要购买多台数据库服务器,系统运维成本稍高;
备选架构二
优点:
未拆分多个子系统,开发成本低;
数据库有主备,数据不易丢失;
没有微服务,无需微服务基础设施;
缺点:
未拆分多个子系统,毕业设计项目组团队不便分工;
未拆分多个子系统,系统架构过于简单;
数据库有主备,需要购买多台数据库服务器,系统运维成本稍高;
备选架构三
优点:
拆分成三个子系统,毕业设计项目组团队方便分工;
拆分成三个子系统,系统架构不至于太简单;
没有微服务,无需微服务基础设施;
缺点:
拆分成多个子系统,开发成本高;
数据库没有主备,容易造成数据丢失;
备选架构四
优点:
微服务、分多机房、数据库进行了垂直拆分,系统达到了高可用、高性能;
缺点:
微服务、分多机房、数据库进行了垂直拆分,系统运维成本太高;
最终选择:备选架构三
合适原则:
满足“学生管理系统”毕业架构设计要求,进行了子系统拆分,方便分工,架构方案不算太简单;
系统运维成本低,只采用了一台数据库服务器;
简单原则:
没有微服务,无需微服务基础设施;
演化原则:
一次性交付系统,无需考虑后期演化;
评论