模块一作业
1. 画出微信的业务架构图。
2. “学生管理系统”毕设架构设计
题目
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下: ① 要求可以通过公网域名访问;
② 要求至少 3 人合作完成;
③ 能够支撑管理 1000 个学生;
④ 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
① 大家都会 Java,但是有一个是 PHP 高手;
② 大家经济条件一般。
作业要求:
① 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
② 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
③ 给出你选择的最终方案以及选择理由。
复杂度判断
高性能?
只需要支撑管理 1000 个学生,因此,对性能的要求不高
高可用?
学生的数据不能丢失,因此,对数据存储的高可用有要求
可扩展?
业务的需求比较复杂,因此,需要支持业务上的可扩展
成本、安全?
在成本上,作为学生的经济实力比较弱,因此,需要尽可能的节省费用。安全性上,由于是毕业设计,不会在生产环境实际运行,安全性的要求比较低。
备选架构
由于我不熟悉 PHP,对于题目中的【有一个 PHP 高手】这个条件不知道如何去使用,以下的备选方案没有考虑 PHP
备选架构一
描述
在该备选架构中,以 DNS 作为学生管理平台的入口,通过在 DNS 中配置多个服务器的 IP 地址来实现初步负载均衡;两个业务服务分别使用阿里云的 ECS 服务器作为学生管理系统的业务服务(毕设要求支撑 1000 个学生,而使用 1 台最低配的 ECS 已足够满足需求,因此这里为了节省成本,可以只使用一台 ECS);数据库采用阿里云的 RDS 云数据库,通过主备的方式满足数据的高可用。
优点
架构简单,费用比较低
缺点
DNS 作为负载均衡时,客户端本地会缓存 DNS,导致负载均衡不能达到很好的效果。前端页面和后端系统在同一个应用里,无法做到前后端分离。
备选架构二
描述
使用 DNS 作为公网域名的解析入口,将地址解析到 OSS 上,(OSS 本身有域名,但是这个域名不具有个性化)OSS 用来存放前端资源存。前端通过 SLB 作为负载均衡,将流量转发到后端的两个(或者多个)业务服务器上;数据库也使用 RDS 的主备方案。
优点
已 SLB 作为负载均衡可以达到真正负载均衡的目的,实现前后端分离,前端放在 OSS 上可以节省一个前端服务器资源。
缺点
架构比较复杂,成本也相对比较高。
备选架构三
描述
与备选方案一架构一致,只是把云服务和云数据库替换成物理服务器和 MySQL。
优点
机器部署位置可控,可以部署在学校机房里
缺点
购买物理机的成本比较高(当然如果学校可以免费提供物理机就最好了)
方案选择
通过上述优缺点的对比,和三位学生目前的经济情况,最优的方案是备选方案一。
当然学校如果可以免费提供物理机,备选方案三是最优的选择。
评论