1.现状
1.1. 业务背景
(1)项目名称。
(2)业务描述。
1.2.技术背景
(1)架构描述。
(2)当前的系统容量:比如系统调用量的平均值,请求响应时间的平均值等。
(3)当前系统调用量峰值、最大、最小响应时间等。
2.需求
2.1.业务需求
(1)要改造的内容。
(2)要实现的新需求。
2.2.性能要求
(1)预估系统容量:预估系统调用量的平均值、预估请求响应时间的平均值。
(2)预估系统调用量峰值、最小和最大的请求响应时间。
(3)其他非功能质量:比如安全、可伸缩性。
3.方案描述
3.1.概述
一句话概括方案的亮点,比如:双写、迁移、主从分离、分库分表、扩容、归档、接口改造等。
3.2.详细说明
对方案具体描述,文字描述不清楚的话可以结合图,比如框图、UML、流程图、概念图等。如果有改造方案,则需要突出有变动的地方。可以从下面几个角度进行描述:
- 中间件架构:应用服务器、数据库、缓存、消息队列等。
- 逻辑架构:模块划分、模块通信、信息流、时序等。
- 数据架构:数据结构、数据分布、拆分策略、缓存策略、读写分离策略、查询策略、数据一致性策略。
- 其他重要内容:异常处理、容灾策略、灰度发布、上线方案、回滚方案等。
3.3.性能评估
-
方案的基准数据,并按性能需求评估需要使用的资源数量。
-
- 单机并发量。
- 单机容量。
- 单机吞吐量的峰值。
- 单机并发量。
-
按照预估的性能需求,预估资源数量、伸缩方式和功能。
3.4.方案优缺点
优缺点需要具体化、具有确定性,比如有量化、明确的目标和结果。
4.方案对比
若存在多个方案,这里需给出多个方案的对比,并给出最终方案选择的理由。
5.风险评估
标识所选方案的风险,提出此风险发生的应对策略,例如上线失败需要如何操作等。
6.工作量评估
所选方案的具体工作,评估开发、测试等细化任务需要的时间,形成可实施的任务计划表,计划表一般从项目计划到人员分配两个角度来管理项目。