架构实战营第 4 期 -- 模块一作业
1. 画出微信的业务架构图
2.“学生管理系统”毕设架构设计
假设学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院毕设的具体要求如下:
1. 要求可以通过公网访问域名;
2. 要求至少 3 个人合作完成;
3. 能够支撑管理 1000 个学生
4. 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起做这个项目,你们的基本情况如下:
1. 大家都会 java,但是有一个 PHP 高手;
2. 大家经济条件一般。
作业要求:
1. 对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案;
2. 使用 PPT 来画出你的备选架构方案,并说明方案的优缺点;
3. 给出你选择的最终方案及理由
备选架构 1
【优点】
成本最低;
实现简单,部署容易;
MySQL 主从复制,保证数据高可用;
【缺点】
Nginx 服务器与业务服务器都只有一台,有单点故障的可能;
且单机性能不能确保可以达到访问量需求。
备选架构 2
【优点】
较备选架构 1,多了台业务服务器,保障了服务高可用同时,也能满足性能需求。
【缺点】
成本增加,且毕设作品无需过多考虑服务高可用。
备选架构 3
【优点】
拆分子系统,保证可扩展性;
没有采用微服务架构,因为成本有限,且会使架构更复杂;
团队中有 PHP 高手,采用异构系统,充分发挥资源优势;
【缺点】
成本较高;
拆分子系统后,且引入 PHP,会导致测试、运维效率低;
备选架构 4
【优点】
前后端分离,Nginx 上部署 PHP 前端模块,业务服务器上 Java 负责业务逻辑处理,充分发挥优势;
【缺点】
较备选架构 1,增加运维压力。
仍存在单点故障问题。
最终方案 -- 备选架构 4
【合适原则】
符合团队的技术水平,都懂 Java,且发挥 PHP 高手的优势;
开发成本低;
系统运维成本较低。
【简单原则】
不进行系统拆分,部署维护简单;
【演进原则】
一次性交付,无需考虑后期演化;
评论