架构实战营 模块 1 作业
1. 画出微信的业务架构图
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下:
要求可以通过公网域名访问;
要求至少 3 人合作完成;
能够支撑管理 1000 个学生;
答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
大家都会 Java,但是有一个是 PHP 高手
大家经济条件一般
作业要求:
对照面向复杂度架构设计方法论,构思 2 个以上的备选架构方案。
使用 PPT 来画出你的备选架构方案,并说明方案的优缺点。
给出你选择的最终方案以及选择理由。
1、采用 Java 和php技术,分别用 Java 做其中2个模块,Php做另一个模块,
2、采用2台nginx服务器做负载,以防单点故障问题
优点:充分发挥编程优势,保证效率和程序性能
缺点:部署复杂、成本高、需要维护同时 PHP 和 JAVA 两种技术
1、采用单体应用多个模块
2、采用 JAVA 语言
3、应用和数据库部署在一台服务器,数据库相互备份,保证数据不丢失
4、应用部署简单,维护简单
优点:单体应用、高可用、高性能、部署简单、维护简单
缺点:应用和数据库在一起风险大点
架构复杂度判断:
高可用:不需要服务高可用,但是需要数据高可用
高性能:不需要考虑高性能
可扩展:业务变化程度不大,不用考虑
成本、安全:都是经济一般的学生,需要考虑
方案取舍:
团队技术水平:虽然有一个 PHP 高手,但是其他人都不会 PHP,因此采用都会的 JAVA,因此方案2更合适
方案成本: 服务器用的越少越好,方案2合适
开发周期: 多个模块单体应用,开发便捷,方便管理,方案1、2都合适
对方认可度: 老板说方案不能太复杂,因此方案2更适合
最终选择:方案 2
评论