微信业务架构 & 学生管理系统架构设计
微信业务架构
学生管理系统架构设计
备选架构
备选架构 1
备选架构 2
备选架构 3
方案的优缺点
备选架构 1
优点
php 高手可以高效完成前端部分
剩余业务部分为单体结构,部署不算复杂
缺点
系统拆分成了两层,比单体结构复杂
备选架构 2
优点
单体结构,部署方便
定位问题简单
缺点
因为是单体结构,无法使用多语言,只能统一选择 java,php 高手无法发挥特长,加快开发进度
备选架构 3
优点
每个服务定位准确,迭代方便
缺点
部署复杂
定位问题比较吃力
每个服务可能都需要开发通用的功能,导致开发速度变慢
最终方案选择
选择的方案
方案 1
选择理由
从简单原则来看:方案 3 过于复杂,需要丰富的微服务的基础设施。方案 2 最简单,方案 1 也不算太复杂
从合适原则来看:方案 3 不合适,因为人力有限,只有三个人,拆分为 4 个子系统过多了;方案 2 虽然也算可行,但并没有充分利用 php 高手的特长,而选择了全员使用 java,因为单体结构不支持多语言;方案 1 则最合适,因为合理利用了 php 高手的特长,并将其余的部分再合并为一个应用开发,也可以享受单体应用的特点。
从演化原则来看:我们是一次交付应用,用户数也不会发生变化,并不需要在乎可扩展,所以架构 1 和 2 都可以,3 过于浪费。
从成本来看:方案 1 的开发时间成本最低,维护成本也不算高;方案 2 因为没有发挥 php 高手的特长,开发时间成本会长一些,维护成本低;方案 3 则开发时间成本高,维护成本也高。
所以选择,方案 1。开发够快,维护也不复杂,为节约成本可以把前后端都放在一个服务器上。
评论