模块一作业:微信业务架构图 & 学生管理平台
一、微信业务架构图
二、学生管理平台
需求分析:
需要公网域名访问,那么就不只是学校内网访问,需要数据安全问题与服务器的安全问题,但是由于只是需要能运行,而且能管理 1000 个学生,并不是真实的学生数据,所以也不存在信息泄露问题。针对一些 Ddos、cc、肉鸡等攻击可以做一些基本的防护,一般情况下就不会有问题了,几位同学虽不是运维出身,但这些网上都是有解决方案的,应该可以搞定。
总人数只有三个人,主要是 java 和 PHP,可以注意到 java 大家都会,那么选 java 的生态作为后端的开发框架是最好的选择,避免了很多的学习成本投入。
由于没有前端同学,那么需要选取一个普适的、简单的、开源的(毕竟没钱)前端框架,如 React,Vue 等都可。由于只需要可运行,那么界面的美观可以要求适当放低。
由于总人数 3 人,那么就不能选太复杂的框架,微服务等可以不需要,也没必要对服务进行物理拆分,后端代码按业务模型划分,满足日后的可快速拆解独立出去的需求,大致分为学生管理、课程管理、考试管理、权限管理。
由于大家经济条件一般,建议使用一台服务器负责包括数据库、应用、nginx 的部署即可,阿里云、腾讯云等有学生优惠价,一台 ECS 一年最多也就几百块钱。如果觉得还能负担,那么数据库、应用、nginx 单独部署也可以。
复杂度分析:
高可用:由于只需要能运行,不需要高可用。
高性能:由于只需要支撑 1000 人使用,那么也不需要考虑高性能。
可扩展:由于是毕设,后期暂时没有实际使用需求,暂时不会更复杂,但是为了编码清晰,且是三人合作,那么做一些模块划分是需要的,后期也可以基于这样的模块划分拆分微服务、子系统、多应用等。
成本、安全:由于大家都不宽裕,那么经济成本是要尽量控制的,优选便宜的云服务。由于大家面临毕业要找工作等,时间成本不宽裕也不算太紧,那么业务模块粗分还是可以的。安全性上,由于数据是假数据,但是服务是外网可访问的,那么需要做一些基础的服务器的防护。
方案设计:
架构筛选--三原则分析:
合适原则:由于两个系统架构都能满足 1000 人使用、外网访问等,且三个人开发都不会太复杂,认为两个架构都符合合适原则。
简单原则:由于两个架构都不复杂,开发实现与部署都不算太困难,也可算作都符合。但由于第一个架构需要再同一台机器上部署多种组件,认为可能对于学生来说有一定复杂性,优先级:架构二>架构一。
演化原则:两个架构都是可拆分的,但是架构一扩展时需要将服务从原服务器中拆分出来重新部署,且如果需要增加业务服务器,不能直接增加服务器,还需要运维部署,所以认为不满足演化原则。优先级:架构二>架构一。
综合选择结果:
架构二:开发、部署简单,且易于扩展,成本上来说三个人短时间负担 5 台简单服务器也可接收。
版权声明: 本文为 InfoQ 作者【babos】的原创文章。
原文链接:【http://xie.infoq.cn/article/0fd99d9164ce412556bfb43f5】。未经作者许可,禁止转载。
评论