架构训练营第一章作业
微信业务架构图
“学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下 1)要求可以通过公网域名访问 2)要求至少 3 人合作完成 3)能够支撑管理 1000 个学生 4)答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下 1)大家都会 Java,但是有个 PHP 高手 2)大家经济条件一般
作业要求:1)对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。2)使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。3)给出你选择的最终方案以及选择理由
答案:
1)复杂度分析
业务复杂度与技术复杂度均不高,系统要求支撑管理 1000 个学生,学生数量不多,而相比较而言业务复杂度稍微高一些,且总计开发有 3 个人,可以针对业务进行拆分,将业务拆分 3-4 个部分,有一个 PHP 高手,可以考虑拆分业务为独立的服务,充分利用人员的技术优势。另外,毕设的要求系统可运行,且需要通过公网域名访问,那么必然需要实际的服务器资源部署学生管理系统,需要购买公网 ip 以及域名,可以考虑买物理服务器或者上云,从实际情况来看,学生经济条件一般,所以最好选用上云。
2)备选方案
a、备选方案一:拆分 3 个独立的服务,3 人各自负责一个服务,PHP 高手负责业务最复杂的课程模块(没有实际具体分析是否课程业务最复杂,这里假设),可以均衡 3 人的开发进度。
优点:充分利用 PHP 高手的技术能力,提高整体交付效率;
缺点:涉及到服务间调用,增加了复杂度;资源成本更高;后期维护困难
b、备选架构二:均使用 Java 开发语言,采用分模块的单体架构,3 人分别负责自己的模块,部署多个应用实例。
优点:分模块开发,依然能够保证 3 人的开发效率;没有模块业务之间的交互简单;统一技术栈,方便维护。
缺点:需要自己购买服务器部署,成本略高
c、备选架构三:与备选架构二一致,不同的点在于部署方式,该方案直接采用上容器云的方式
优点:成本低、部署简单
缺点:需要选择云服务商,熟悉相关服务的购买和配置(如负载均衡的购买)
综合以上 3 个方案,最终选择第三个方案,整体架构简单 ,成本最低,易于开发和维护,同时毕业设计答辩过后,可根据实际情况释放掉资源,按需付费。
评论