架构实战营 模块一作业
微信业务架构图
学生管理系统架构设计
复杂度分析
高性能:支撑管理 1000 个用户这样的量级通常单机性能就足以支撑。
高可用:学生管理系统主要面向学校内部,对可用度要求不高,但也不能长时间或频繁发生故障。
可扩展:无须考虑持久扩展演进。
其他:对数据安全性不高,但考虑到录入数据的工作量,最好有一台备机。另外,项目成员经济条件有限,因此不能使用太复杂、成本太高的方案。
备选方案一(本地架构)
项目使用 java 为开发语言,主要的考虑是大家都会 Java,但并不都懂 PHP,可以保证开发效率。
由于是学校内部系统,可以重用学校的基础设施,一般学校都有自己的域名,可以共用域名,然后通过内部的负载均衡,如 nginx,根据路径配置分发规则。
优点:
重用学校的基础设施,可以降低成本,同时对开发人员本身的服务器运维能力要求也不高,因为学校有专门的运维人员。
缺点:
学校对服务器权限有要求,开发人员可能无法自由地接触服务器,维护起来不太方便。另外,学校不一定有专门的 dba,对于开发人员来说,会有数据库的主从备份设计及维护的要求。
备选方案二(云架构)
项目使用 java 为开发语言。
购买市场上的云产品,使用现在主流的 K8S 以及容器技术。
优点:
由于所有的的技术基本都是云原生态的,可以减少了运维的成本,比如高可用,弹性伸缩,备份恢复等。预算的角度应该也不会很高,前期一个 K8S 的集群,两个 node 再加上云原生态的主备数据库系统即可。
缺点:
技术栈比较新,可能需要一定的学习时间。
版权声明: 本文为 InfoQ 作者【Gor】的原创文章。
原文链接:【http://xie.infoq.cn/article/234640c0714ae6e644ccb0803】。未经作者许可,禁止转载。
评论