写点什么

架构实战营模块一作业

用户头像
陈俊
关注
发布于: 2021 年 04 月 08 日

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

作业:


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

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

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

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

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

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

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

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

  2. 大家经济条件一般

作业要求:

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

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

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

作业:

备选方案一。

说明:

1.nginx 做反向代理,负载均衡

2.拆分为多个服务,PHP 高手可以按照自己技术栈开发自己负责的服务

3.使用单机 redis 缓存常用数据

4.数据库做主备备份提高可用性

5.购买服务器,需要公网备案


备选方案二。

说明:

1.使用阿里云服务

2.设计一个系统,包含多个模块,为了维护方便,统一技术栈,采用 Java 开发

3.使用 redis 缓存常用数据

4.数据库做主备备份提高可用性

5.云服务的 SLB 产品具备公网访问


方案一。

优点:

1.拆分服务有更高的扩展性

2.拆分服务可以让 PHP 高手按照自己最拿手的技术栈开发,提高开发效率

缺点:

1.拆分服务提高运维成本

2.技术栈不同意,提高系统维护风险

3.需要独立做公网备案

4.需要有 nginx 运维经验


方案二。

优点:

1.不用拆分服务,统一技术栈,提高系统后续可维护性

2.云服务产品具备成熟可用的公网访问、负载均衡等能力

缺点:

1.如果后续有更复杂的需求,需要进一步拆分服务

2.不能发挥每个人的技术优势

3.云服务产品比独立的服务器成本更高


最终选择备选方案二。

原因:

1.初期以及可预见的后续发展中,不具备爆发式复杂的需求,根据合适、简单、演进原则,选择方案二

2.关于发挥个人最大的技术优势和团队统一技术栈带来的可维护性,更多的应该考虑系统可维护性,除非技术栈又不可拒绝的优势,比如 go 之于高并发需求

3.云服务产品虽然有更高的成本,但是对于运维的便利性,高出的成本在可接受范围

用户头像

陈俊

关注

还未添加个人签名 2017.09.10 加入

还未添加个人简介

评论

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