模块一作业
1. 微信业务架构图
2. 学生管理系统毕设架构设计
作业需求
要求可以通过公网域名访问
要求至少 3 人合作完成
能够支撑管理 1000 个学生
需求分析
高性能:1000 个学生, 对于系统来说,并不会造成什么压力。不需要考虑高性能。
高可用:需要高可用的业务是选课还有数据(比如成绩)。
可扩展:业务可能比较复杂
安全:因为要求可以通过公网域名访问,一定的安全考虑是需要的(比如登录,数据安全)。但是不需要太高的安全性,因为不牵涉金融和太多的个人隐私。
成本:假设成本是由 3 人团队分摊还有经济条件一般。
架构设计思路:
因为资金有限,主要的考量是能提供高能支援高可用数据,一般安全性的低成本架构。
因为团队有 3 人比较熟悉 Java 和 MySQL ,会优先考虑这些技术。
备选方案
方案一
优点:
节约资源:使用学校的 DNS
快速开发和维护:目前团队的主要技术是 Java
架构简单, 运维成本低
支援数据高可用,降低数据丢失。
缺点:
单机业务服务器,可用性不足
2)
优点:
节约资源:使用学校的 DNS
架构简单, 运维成本低
支援数据高可用,降低数据丢失。
用 React 作为前端可支援比较复杂的前端设计和业务流程
缺点:
单机业务服务器,可用性不足
由于团队的主要技术是 Java,对 React 比不是那么熟悉。开发时间会相对长一些。
3)
优点:
节约资源:使用学校的 DNS
可用性最高
支援数据高可用,降低数据丢失。
用 React 作为前端可支援比较复杂的前端设计和业务流程
缺点:
架构比较复杂, 运维成本会高些
开发时间最长
成本最高
最终方案
方案三不符合合适原则。因为成本超出预算,还有只需要支援 1000 个学生,用户数量也不会变化太大。
方案一和方案二都符合合适原则,成本低,架构也简单,容易维护。
虽然方案二开发时间相对长一些,但是长远来看用是有利的。因为学生系统业务比较复杂, React 作为前端可支援比较复杂的前端设计和业务流程。
最终选择的方案是 2.
评论