架构实战营模块一作业
微信的业务架构
“学生管理系统”毕设架构设计
题目
需求背景
可运行的学生管理系统
可通过公网域名访问
3 人合作完成
支撑管理 1000 个学生
资源背景
三人开发团队,三人均会 java,一人精通 php
开发团队经济条件一般
作业要求
对照面向复杂度架构设计方法论,给出 2 个以上方案
给出最终方案以及选择理由
不推荐太简单或者太复杂的方案
方案
首先分析系统详细需求可以拆分成三个子系统或者子服务
学生管理
课程及考试管理
权限管理
判断复杂度
1000 个学生的请求不会带来太大的并发要求,不需要太高性能
数据需要高可用,服务高可用要求不高
业务需求变化会比较多,需要可扩展
因团队经济条件一般,尽量低成本
因为存储的都是公开信息,安全要求不高
备选架构基本要求
利用公有云服务器降低成本
利用公有云提供的高可用数据服务提供数据高可用能力
利用公有云的域名解决方案
基于演化原则,一个学校学生数量不会变化太多,所以在之后也不会有高性能的需求
备选架构方案以及最终方案
方案一
方案二
应选择方案二,选择理由如下:
基于适合原则,因为有三个开发人员,将系统拆分成三个服务,互相之间通过协议交互,可以让三个人相对独立地同步开发,提高开发效率
基于适合原则,因为有一个开发人员精通 php,将其中复杂度较高的课程 &考试管理服务由精通 php 的人用 php 开发,其他两个复杂度较低的交由另外两人用 java 开发。
基于简单原则,服务没有高可用需求,可以只部署一套服务
基于演化原则,后续当需求发生变化需要扩展时,可单独更新其中的一个服务
评论