写点什么

架构实战营第一模块作业

用户头像
DZ
关注
发布于: 2021 年 04 月 07 日

1. 画出微信的业务架构图

2. “学生管理系统”毕设架构设计

假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:

1)要求可以通过公网域名访问;

2)要求至少 3 人合作完成;

3)能够支撑管理 1000 个学生;

4)答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案

你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:

1)大家都会 Java,但是有一个是 PHP 高手

2)大家经济条件一般

作业要求:

1)对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。

2)使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。

3)给出你选择的最终方案以及选择理由。

2.1 复杂度分析

  1. 高性能

由合适,简单,演化原则,高性能不需考虑

  1. 高可用

实现数据高可用即可(冗余)

  1. 可扩展

可扩展包含可理解与可复用。

  • 由演化原则,可复用不用考虑;

  • 系统由三个开发人员共同开发,所以需要做到可理解,模块划分清晰,便于分工。

  1. 安全

系统可以通过公网域名访问,所以需要具备基本的防御常见攻击能力

  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

合适原则:符合团队技术能力,系统运维成本,开发成本较低。满足成本与安全基本需求

简单原则:没有拆分服务,运维相对简单

演化原则:无需考虑太多后期演化

发布于: 2021 年 04 月 07 日阅读数: 146
用户头像

DZ

关注

还未添加个人签名 2018.01.24 加入

还未添加个人简介

评论

发布
暂无评论
架构实战营第一模块作业