架构师实战营模块一作业
1. 微信业务架构图
业务架构,即描述系统对用户提供的功能,类似 4+1 视图中的场景视图,两个关键字:功能,场景。
个人理解:场景作为边界,粒度细到具体的功能;
2.学生管理系统
2.1 需求
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
2.2 资源
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
2.3 分析
需求主要在于,在经济成本有限的情况下,保证系统可运行且能够支撑管理 1000 用户,因此可知系统对并发支持要求不高,需要考虑可用性,以及一定的成本约束,另外基于当前 Java+PHP 的技术栈,可适当控制可扩展性。
2.4 设计
方案一
部署方面,本方案利用 Nginx 进行负载均衡。基于当前用户数量及场景考虑,采用云存储而非独立文件服务器,以减少运维及服务器成本。数据库方面采用主从结构,保证可用性。
技术实现方面,采用 PHP 高手负责业务实现,提供 API 接口调用,另外两位同学基于 HTML+JS+CSS,负责前端实现,这样可充分利用各自技术特长,保证可行;
方案二
本方案为云实现方案,通过各种云方案接口实现系统。
方案三
本方案为基于 Spring 微服务架构。
2.5 对比
采用方案二。理由如下:
1.方案一充分利用了各自技术特长,技术复杂度比较低,但是需要服务器较多,经济成本大;
2.方案三的运维部署比较复杂,技术要求相对高;
3.方案二中主要的技术点在于对接各服务接口,考虑有 PHP 高手在,难度不大,并且经济成本也比较低;
基于架构设计原则之合适,简单,演进考虑,方案二比另外两个方案更均衡,所以采用此方案。
版权声明: 本文为 InfoQ 作者【圈圈gor】的原创文章。
原文链接:【http://xie.infoq.cn/article/2309485771015c8731418473e】。未经作者许可,禁止转载。
评论