文章目录
- 1 业务理解
- 1.1 项目目标
- 1.2 业务术语
- 1.3 系统边界
- 1.4 关键领域模型
- 2 系统架构图
- 2.1 分层架构图
- 2.2 系统链路图
- 2.3 系统部署图
- 3 关键流程
- 3.1 关键流程1
- 3.1.2 流程简述
- 3.1.2 业务流程图
- 3.1.3 安全性
- 3.1.3.1 资金安全
- 3.1.3.2 内容安全
- 3.1.4 稳定性
- 3.1.4.1 接口依赖
- 3.1.4.2 限流
- 3.1.4.3 可伸缩性
- 3.1.4.4 数据库
- 3.1.4.5 缓存
- 3.1.4.6 数据一致性
- 3.1.4.7 监控告警
- 3.1.4.8 容灾兜底快恢
- 3.1.4.9 核心预案
- 3.1.4.10 其它风险
- 3.2 关键流程2
- 3.3 关键流程3
- 4 资源信息
- 4.1 容器
- 4.2 数据库
- 4.3 缓存
- 4.4 消息队列
- 4.5 定时任务
- 4.6 其它资源
- 5 关键问题总结
参考文档:
《 XXXX》
变更记录:
版本号 | 变更人 | 变更时间 | 变更记录 |
---|---|---|---|
V1.0.0 | 张三 | 2022-12-10 | 初始模板 |
1 业务理解
1.1 项目目标
项目的范围、约束和期望
1.2 业务术语
名词 | 解释 | 案例 |
---|---|---|
充值 | ||
提现 |
1.3 系统边界
描述系统负责的业务范围,以及上下游关系。
1.4 关键领域模型
2 系统架构图
2.1 分层架构图
逻辑视图,用于描述系统的功能需求,即系统给用户提供哪些服务;以及描述系统软件功能拆解后的组件关系、组件约束和边界,反映系统整体组成与系统如何构建的过程。
2.2 系统链路图
用于描述系统软件组件之间的通信时序,数据的输入输出。这里描述的是整个系统组件间的处理过程,而不是具体某个接口内部的处理流程图。
2.3 系统部署图
开发出的软件系统,最终是要运行在物理或软件环境上。物理环境可能是服务器、PC机、移动终端等物理设备;软件环境可以是虚拟机、容器、进程或线程。部署图就是对这个部署信息进行描述。
3 关键流程
关键流程是指可能产生高舆情、高资损风险的场景
3.1 关键流程1
3.1.2 流程简述
3.1.2 业务流程图
3.1.3 安全性
3.1.3.1 资金安全
资金安全评估,包括且不限于如下几项
- 资金调用链路。如支付宝、微信转账完整链路,用户优惠券发放链路。
- 资金对账方案。整体对账+明细对账方案,对账口径等。
- 资损评估。是否有资损(包括用户资金损失和平台资金损失),风险规模,熔断和止损方案。
3.1.3.2 内容安全
如果有PGC/UGC的内容,或者有用户、商家上传的部分,要明确每个字段的内容安全方案。
3.1.4 稳定性
3.1.4.1 接口依赖
接口名 | 访问链接 | 下游强弱依赖和读写比例 | 日常&峰值流量 |
---|---|---|---|
xxDB:强依赖,2读1写 |
强依赖:下游错误时自身接口完全不可用。
弱依赖:下游错误时,自身功能部分不可能,如部分字段不展示或展示计算中等。
3.1.4.2 限流
接口名 | 是否有限流,如果有限流则说明方案和影响 |
---|---|
限流方案如:
- SLB限流
- 应用内如Sentinel限流
- cpu等自适应限流
- 消息队列消费速率限流
- 对下游限流(保护下游,或者防止下游拖垮自己)
限流时影响包括且不限于:
- 用户侧错误信息、文案,不能报被限流等,也不能提示用户重试(避免雪崩)。
- 资金、权益类场景重点关注前端兜底文案,不能兜底显示中奖或具体金额,可显示错误页或者部分数值显示“计算中”等。
- 可能产生的数据不一致情况,以及如何应对。
3.1.4.3 可伸缩性
链路名 | 资源是否可以水平扩展 | 链路上是否有单点风险 | 如果出现资源不足如何应对 |
---|---|---|---|
登录 | |||
抢红包 |
3.1.4.4 数据库
数据库性能评估,包括不限于日常&峰值水位(cpu、内存、磁盘等占比),慢SQL
3.1.4.5 缓存
梳理缓存抖动、击穿、热点、带宽打满等异常情况下对业务的影响。
3.1.4.6 数据一致性
评估链路中是否有数据不一致的场景,包括不限于:
- 分布式写场景。部分写失败场景,幂等、重试等逻辑。
- 异步链路:消息延迟、乱序、丢失等风险。
- 离线计算链路:如果离线任务产出不及时,对系统的影响。
- 数据污染:上游数据错误、离线任务产出异常防范,如设置关键字段的上下限(优惠券发放最多xx元)
针对每个场景,要明确:
- 数据不一致的影响面
- 是否会出现资损或舆情
- 对账、监控、告警
3.1.4.7 监控告警
- 接口成功率监控
- 接口流量监控
- 应用cpu、线程池、磁盘等监控
- 数据库监控
- 对账监控
3.1.4.8 容灾兜底快恢
- 强弱依赖整理,降级方案
- 容灾。如存储可靠性、存储备份、应用可用性、多机房等
- 兜底机制
- 单点风险
- 快恢方案
3.1.4.9 核心预案
罗列业务中关键的可开关、可调整参数等
3.1.4.10 其它风险
风险 | 解决方案/结论 |
---|---|
数据迁移过程中,可能会有丢数据风险 | 这么XX做可以基本规避这个风险 |
3.2 关键流程2
3.3 关键流程3
4 资源信息
4.1 容器
ECS、微服务容器等资源情况。
4.2 数据库
实例 | 类型 | 表名 | 是否分库分表,分表字段 | 单表总行数 | 每日新增行数 |
---|---|---|---|---|---|
mysql、TableStore等 |
4.3 缓存
4.4 消息队列
实例 | Topic | 峰值qps | 每日总量 | 消息平均大小 | 订阅者列表 |
---|---|---|---|---|---|
4.5 定时任务
任务 | 实现方式(分布式、crontab等) | 执行开始时间 | 平均时长 | 备注 |
---|---|---|---|---|
4.6 其它资源
SLB、CDN、OSS等
5 关键问题总结
维度 | 问题 | 级别 | 描述 | 解决方案 | 成本 | 责任人 | 完成时间 |
---|---|---|---|---|---|---|---|
安全 | 高/中/低 | 高/中/低 | |||||
稳定性 | |||||||
成本 | |||||||
效率 | |||||||
体验 |