架构实战营第一模块作业
1. 画出微信的业务架构图
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
1)要求可以通过公网域名访问;
2)要求至少 3 人合作完成;
3)能够支撑管理 1000 个学生;
4)答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
1)大家都会 Java,但是有一个是 PHP 高手
2)大家经济条件一般
作业要求:
1)对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
2)使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
3)给出你选择的最终方案以及选择理由。
2.1 复杂度分析
高性能
由合适,简单,演化原则,高性能不需考虑
高可用
实现数据高可用即可(冗余)
可扩展
可扩展包含可理解与可复用。
由演化原则,可复用不用考虑;
系统由三个开发人员共同开发,所以需要做到可理解,模块划分清晰,便于分工。
安全
系统可以通过公网域名访问,所以需要具备基本的防御常见攻击能力
成本
需要考虑
2.2. 备选方案
2.2.1 方案 1
腾讯云购买域名并添加 A 记录至 slb 云主机公网 ip
使用 OpenResty 负载均衡并集成基本 waf 功能
两台云主机部署 tomcat 应用。应用内部按照逻辑拆分模块,开发人员按模块分工
DB 使用 mysql 主备
优点:可理解方面,安全方面,成本方面均可接收。
缺点:没有最大化团队中每个人的技术能力。
2.2.2 方案 2
区别于方案 1,划分子系统,由 php 高手负责工作量较大一些的课程子系统(包含课程+考试)
优点:划分子系统后,职责更加清晰,可理解性更强,充分发挥团队中每个人的技术能力。
缺点:拆分后维护成本高一些,php 系统只有一人较为熟悉,容易出现人员单点。
2.2.3 方案 3
区别于方案 1,数据库部分使用购买云数据库
优点:运维更加方便
缺点:云数据库价格偏高,成本较高
2.2.4 方案 4
区别于方案 1,去除 slb,域名配置 ip 列表,通过 dns 负载均衡
优点:成本最低
缺点:没有 waf;dns 缓存时间较长;
2.3 最终方案
方案 1
合适原则:符合团队技术能力,系统运维成本,开发成本较低。满足成本与安全基本需求
简单原则:没有拆分服务,运维相对简单
演化原则:无需考虑太多后期演化
版权声明: 本文为 InfoQ 作者【DZ】的原创文章。
原文链接:【http://xie.infoq.cn/article/dcae67258939ecabcedf93342】。文章转载请联系作者。
评论