模块一作业:微信业务架构图 & 学生系统技术架构图
1. 画出微信的业务架构图
张小龙说过,面向
场景
来做产品设计,而非功能列表,功能是服务于场景,没有孤立的功能。所以,我们首先基于微信的现有功能
来做场景分析:
微信最核心的场景当属
社交
了,在这个基础上,发展出来了娱乐、支付、金融理财、电商、购物消费、生活服务、交通出行等场景。而在微信客户端原有基础上,又发展了公众号、小程序为载体,来支撑这些应用场景。现有的功能列表来做分析,会非常头大,会发现有很多的维度。所以我们划分一些核心场景域
,再找出通用域
或支撑域。为了直观点,划分为社交、娱乐、服务。
社交场景分析
- 聊天、视频
- 联系人、朋友圈
- 摇一摇、附近
娱乐场景分析
- 短视频、直播
- 看一看、搜一搜
- 游戏
服务场景分析
- 支付
- 钱包
- 银行卡
- 收付款
- 金融理财
- 信用卡还款
- 微粒贷借钱
- 理财通
- 保险服务
- 生活服务
- 手机充值
- 生活缴费
- 交通出行
- 出行服务
- 火车票机票
- 滴滴出行
2. “学生管理系统”毕设架构设计
假设今年学校毕业设计要求提升,要求做真正可运行的学生管理系统,学院对毕设的具体要求如下: 1 要求可以通过公网域名访问;
2 要求至少3人合作完成;
3 能够支撑管理1000个学生;
4 答辩的时候会根据架构方案来进行打分,不推荐太简单和太复杂的方案。
你找了 2 个好朋友一起来做这个项目,你们的基本情况如下:
1 大家都会Java,但是有一个是PHP高手;
2 大家经济条件一般。
作业要求:
1 对照面向复杂度架构设计方法论,构思2个以上的备选架构方案。
2 使用PPT来画出你的备选架构方案,并说明方案的优缺点。
3 给出你选择的最终方案以及选择理由。
分析:
1. 需要公网可以访问,需要有公网域名和公网IP,暴露都公网需要考虑安全性
2. 至少三个人合作完成,大家需要根据个人技能分工,java用来开发后端服务,PHP可以用来写前端页面。
3. 经济条件一般,无需够买物理机,成本太高,可以用云上产品。
4. 能够支撑管理1000个学生,说明请求量短期不会激增,无需考虑大并发。
方案一
考虑到安全和成本,利用云上的VPC和安全组,为安全保驾护航。云上ECS按量付费,成本不会很高。前期前后端部署再同一台ECS上,部署两个副本,防止单节点故障。数据库使用云上的RDS,可以节省成本,也能免运维维护。
方案二
服务容器化,利用云上的VPC和安全组,为安全保驾护航,将前端服务和后端服务打包成容器,利用云上K8s的快速CICD能力,实现代码快速部署。数据库使用云上的RDS,可以节省成本,也能免运维维护。
最终方案
我选择方案一,符合简单原则