架构实战营 - 模块 1 - 作业
一、微信业务架构图
二、「学生管理系统」毕设架构设计
基本要求
1. 要求做真正可运行的学生管理系统
2. 要求可以通过公网域名访问
3. 要求至少 3 人合作完成
4. 能够支撑管理 1000 个学生
5. 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
团队现状
已组成 3 人小队,团队现状如下:
1. 大家都会 Java,但是有一个是 PHP 高手
2. 大家经济条件一般
隐性要求
1. 只需支持 1000 个学生,无高性能、高可用的需求
2. 团队经济条件一般,需要尽量节约成本
3. 需求并不紧急,可以从容开发
4. 需要保证一定程度的可用性,需要保证数据的一致性
方案设计
排除 SOA 架构方案
排除 SOA 类型架构方案的理由:
1. 如果考虑服务可用性的需求,会导致服务器数量显著增加,由于需要尽可能节约成本,故尽量不考虑服务拆分,以尽可能节约服务器资源。
2. 服务拆分后,如果要保证可用性, 每个服务子系统均需要部署多个节点,导致需要考虑较为复杂的负载均衡、服务发现相关的隐性需求,故不考虑该方案。
备选架构「1」
方案描述:
团队成员中有一位 PHP 高手,考虑该同学使用 PHP 快速搭建前端页面的优势,由该同学全权负责前端开发。
其他两位同学进行后端服务的开发。
考虑一定的可用性。
备选架构「2」
方案描述:
三位同学分工完成单体应用的开发。
考虑一定的可用性。
最终方案选择
选择架构「1」
理由
需求中并未要求较高的开发效率,所以 PHP 高手的优势并不明显。
需要尽量节约成本,故需要尽可能少的使用服务器资源。
版权声明: 本文为 InfoQ 作者【雪中亮】的原创文章。
原文链接:【http://xie.infoq.cn/article/5bf098d2b6fe9a78209daec03】。未经作者许可,禁止转载。
评论