写点什么

架构训练营第 1 期 模块一作业

用户头像
高远
关注
发布于: 3 小时前

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

微信业务架构图


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

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

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

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

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

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


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

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

2 大家经济条件一般。


作业要求:

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

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

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


方案一

优点
  • 发挥团队多语言优势,并行开发提高效率

  • 子系统的拆分可以快速部署

  • 数据库主备保证高可用

缺点
  • 两套代码较难维护,且 PHP 代码由于只有一名成员会写,无法做代码审核

  • 两套代码增加了 debug 的难度

方案二

优点
  • 模块化开发有助于平行开发

  • 统一技术栈便于团队协作

  • 数据库主备保证高可用

缺点
  • Web 服务器闲时资源浪费

方案三

优点
  • Serverless 架构节省计算成本

  • 部署相对容易

  • 权限及安全设置相对容易

缺点
  • Vendor Lock

  • 基于 Lambda 的开发有诸多限制,需要预先学习特定知识

最终方案

最终选用方案二。原因如下:

合适原则

  • 团队熟悉的技术栈

  • 能够应付项目要求中的负载

  • 成本可控

简单原则

  • 尽量减少组件的数量(弃用 PHP)

演化原则

  • 架构容易扩展。初期 Nginx 和 web server 可放在同一服务器上,后期可拆分到不同服务器,之后可以添加更多的 Web 服务器来应付更大的负载

发布于: 3 小时前阅读数: 4
用户头像

高远

关注

还未添加个人签名 2017.11.24 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营第1期 模块一作业