写点什么

作业:架构实战营模块 1

作者:Poplar89
  • 2021 年 12 月 09 日
  • 本文字数:993 字

    阅读完需:约 3 分钟

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

从架构设计角度,本次需求为微信的业务架构图,重点关注微信的顶层业务,子业务的细节部分不在本次范围内。

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

(1) 复杂度分析

高性能:没有高性能要求,系统压力不高,暂时不考虑。

高可用:目前阶段可以容忍段时间不可用,后续业务发展,需要支持高可用。

高并发:1000 个学生的系统,教师模块并发压力极地。学生模块并发有一定要求。

可扩展:随着后续业务增长会对高可用、高并发有进一步要求。

安全性:系统数据不能被外部系统获取,系统数据不允许全部丢失。

业务复杂度:短期内教师模块业务复杂度高于学生模块,长期看学生模块的复杂度要高于学生模块。


安全性 > 高并发 > 可扩展

(2) 备选方案 1


部署环境为:

  1. 前端:部署在云端,公网域名和前端解析均在云端进行。

  2. 后端:部署在个人电脑。

团队协作:

  1. 教师系统采用 PHP 进行开发。

  2. 学生系统前后端,由两名同学负责。

复杂度分析:

  1. 安全性:数据存在于内网环境,且有主备。

  2. 高并发:目前 1000 个学生的系统,由两个学生服务实例进行支撑。

  3. 可扩展:所有流量均通过部署在内容网的 Nginx 进行转发,可以很容易部署新机器以支撑高可用、高并发方面的扩展。

  4. 业务复杂度:通过拆解学生系统、教师系统,以做到数据、功能的隔离,降低业务复杂度。

(3) 备选方案 2


部署环境为:

  1. 前端:部署在云端,公网域名和前端解析均在云端进行。

  2. 后端:部署在个人电脑。

团队协作:

  1. 考虑到架构复杂度,以及开发压力,前端全部由 PHP 同学进行开发。

  2. 教师系统和学生系统后端分别由一位同学进行开发。

缺点:

  1. 前端部署在云端,费用的问题。

  2. Mysql 备份库浪费资源。

(4) 备选方案 3


部署方案:

  1. 前后端均在个人电脑部署,前后端分别由一个 nginx 进行流量转发。(前端 nginx 可能由学校网络部门提供)

  2. 需要通过学校网络管理部门协调进行公网地址及域名的开通。

  3. 将 Mysql 在线热备,修改为离线备份或手动备份,也能满足对数据安全性的要求。降低

(5) 方案选择

方案选择:

  1. 安全性:所有方案,数据库都为内网存储,数据泄漏风险较低。且都有备份,虽然方案 3 为手动备份,但实际情况下,学生信息丢失对整个业务的影响比较小,也可以接受。但方案 3 数据库成本比较低。

  2. 高并发、高可用:可扩展:方案 1、2、3 均做到了学生系统的高并发、高可用支撑,且扩展性都比较好。

  3. 架构复杂度:方案 1 因为前端、后端均采用了两种架构,因此架构复杂度较高。且方案 1 中 PHP 同学负责整个教师系统的开发,压力会比较大。


综合考虑,选择方案 3.

用户头像

Poplar89

关注

还未添加个人签名 2018.12.07 加入

还未添加个人简介

评论

发布
暂无评论
作业:架构实战营模块1