一个可实施的技术方案模板
1. 背景
描述项目背景,说清楚整个项目的背景以及业务方向。
2. 目标
根据背景列出要实现的目标点:
- xxxx
- xxxxx
…
3. 业务分析
3.1 支持的能力
若项目已上线,本次只是迭代,要写清楚已有业务的能力,以及针对本次迭代目标,要具备什么能力(功能)
若是新项目,要写清楚针对本次迭代目标,要具备什么能力(功能)
3.2 行业调研
除非你创造了一个杀手级应用,否则你的轮子基本都是重复的。这里要写出业务领域内其他公司是如何实现的,若公司内有类似的实现,要写出公司内其他人是怎么实现的。
他人的实现存在什么优点,可以吸取?存在什么缺点,可以改进?不存在什么,我们进行支持。
列一个表格,写出支持什么能力:
能力1 | 能力2 | … | |
---|---|---|---|
有赞搜索引擎 | √ | √ | |
腾讯搜索引擎 | √ | x | |
… |
列一个表格,写出支持的能力用什么方案实现的:
能力1 | 能力2 | … | |
---|---|---|---|
有赞搜索引擎 | ElasticSearch | 冷热集群 | |
腾讯搜索引擎 | 自研 | x | |
… |
4. 系统整体架构
4.1 现有架构
若项目已上线,给出之前项目的架构图,并说明:
- 模块、组件的边界
- 模块、组件的依赖
- 模块、组件的功能
- 核心业务流
若是新项目,本节可以去掉
4.2 技术选型
若项目已上线,本次需要更换框架、存储、中间件等,需要增加本节
若项目未上线,需要增加本节
以表格的形式列出3种选型
方案 | 易用性 | 可靠性 | 性能 | 扩展性 | 监控 |
---|---|---|---|---|---|
MySQL | 标准SQL、社区资料多 | ACID事务、主从、MGR | 4c8g TPS =xxx、QPS=xxx | 主从复制,读从写主 | zabbix |
TiDB | 标准SQL,社区资料多 | ACID事务、分布式 | 4c8g TPS=xxx、QPS=xxx | 分布式 | grafana |
… |
并根据自己的业务场景针对三种不同技术选型,给出最终的选型结果
4.2 架构变更
若项目已上线,本次需要对整体架构进行变更,需要增加本节,对架构图中变更的模块用颜色特殊标记,并给出文字说明
若项目未上线,需要增加本节
5. 详细设计
5.1 模块1
包括不限于流程图、ER图、类图
列出设计到的数据结构(数据库表、ES索引、MQ报文等)
对核心业务流程增加伪代码并进行说明
5.2 模块2
…
6. 存储设计
列出数据库表、ES索引等存储建表语句
若有磁盘IO,列出目录结构
7.灰度方案
若需要进行灰度,给出灰度范围
8.降级方案
表格列出降级范围和方案:
模块 | 降级类型 | 是否有损 | 备注 |
---|---|---|---|
模块1 | 自动降级 | 无 | 说明降级后哪些功能不可用 |
模块2 | 手动降级 | 无 | 说明降级后哪些功能不可用,手动降级方法 |
模块3 | 自动降级 | 有 | 说明降级后哪些功能不可用,对什么产生的损害,是否需要修复,如何修复 |
… |
9. 异常处理
表格列出异常情况和处理方案
模块 | 异常情况 | 处理方案 |
---|---|---|
模块1 | 异常情况1 | 修改配置中心开关xxx,降低数据库压力 |
10. 容量评估
10.1 容量预估
对用到的存储进行评估,列出表格
模块 | 使用到的存储 | 上线一周增长 | 上线一月增长 | 上线半年增长 | 上线一年增长 |
---|---|---|---|---|---|
模块1 | MySQL表xxx | <1000行 <2G | <2000行 <4G | <50000行 <20G | <1000000行 <50G |
… |
10.2 流量预估
对可能存在流量徒增的接口进行评估,列出表格
模块 | 接口 | 上线一周增长 | 上线一月增长 | 上线半年增长 | 上线一年增长 |
---|---|---|---|---|---|
模块1 | 接口1 | <1000QPS | <2000QPS | <5000QPS | <10000QPS |
… |
11. 监控报警
表格列出监控项,说明正常值、阈值
模块 | 功能 | 正常 | 阈值 |
---|---|---|---|
模块1 | 创建订单接口 | 100TPS | 500TPS |
… |
12. 其他
12.1 改造点影响评估
若项目已上线,本次进行改造迭代,评估影响点:
- 用户体验影响
- 底层数据影响
- 集群分批发版时,新老代码影响
12.2 测试方案
写出改造点,重点需要测试什么,测试依赖有什么,是否需要压力测试、Mock大批量数据测试
12.3 上线方案
- 需要修改什么配置
应用 | 配置项 | 配置值 |
---|---|---|
服务A | order.mq.filter | true |
… |
- 数据库SQL语句
- MQ创建Topic、消费组
- ES模板
- 各模块、组件部署依赖关系
- 应用包版本升级
12.4 方案评审记录
评审时间 | 评审人 | 评审意见 | 备注 |
---|---|---|---|
2021.01.01 11:30 | 小明 | xxx模块业务流程图需要细化 |
12.5 参考资料
一个可实施的技术方案模板相关推荐
- 如何写一篇可实施的技术方案?
为何要写这篇博文? 在日常开发中,老大经常要求我们给出一个完善并合理的技术方案之后才能进行开发.并且要求技术方案一定要细,要重点覆盖监控.异常处理.灰度.降级方案.同时要注重边界处理.最初,我的技术方 ...
- 服务端技术方案模板参考
如何写好一个技术方案对于开发来说非常关键,这是一个工程类技术方案模板,基于我之前的一些积累,适合相对独立的业务需求承接. 实际开发中可以作为一个模板来套用,在这个基础上进行增加或者删减. 一.概要 很 ...
- 技术天地 | CSS-in-JS:一个充满争议的技术方案
导读 为了解决传统CSS在现代前端应用开发中遇到的痛点,FreeWheel评估了大量新一代的CSS框架/工具/方案.在本文中,作者以评估过程为线索,介绍了CSS-in-JS的背景.现状.开发特点和趋势 ...
- 计算机机房电力切换演练方案,机房停电应急演练实施具体技术方案.doc
文档介绍: 增城市科技经贸和信息化局 停电应急演练实施方案 2014年9月27日 目 录 1 演练概述ﻩ3 1.1演练背景ﻩ3 1.2演练目标ﻩ3 1.3演练方式 3 1.4演练对象及范围ﻩ4 1.5 ...
- APP开发技术方案模板
下载链接:https://download.csdn.net/download/ycy0706/10961357 目 录 1 项目概述 3 1.1 项目说明 3 1.1.1 项目背景 3 1.1 ...
- 技术总结-技术方案模板
背景介绍 重点说明如下几个问题: 当前遇到了什么问题?(要解决什么) 现状为啥无法满足该需求 (现状的弊端或者不足之处是什么) 希望通过该方案达到的目的是什么 (期望目标是什么) 方案说明 该部分主要 ...
- 如何做一个可实施的故障预案?
为何要写这篇博文? 其实写这篇博文的目的有三: 之前写的 <如何写一篇可实施的技术方案> 还是有一些浏览量的,也有很多人私信和留言反馈效果不错.也好久没写博客了,深夜睡不着写一下吧. 小伙 ...
- 如何写好客户端技术方案
文章目录 一. 背景 二. 为什么要写技术方案 三. 写技术方案需要注意哪些点 四. 技术方案模板 1. 技术文档 描述 1.1. 项目组相关成员 1.2. 设计准备 1.2.1. 需求及产品设计 1 ...
- 自动驾驶人机交互HMI产品技术方案
1. 概述 1.1 目的 本文档描述集卡自动驾驶系统中HMI产品的技术方案,设计人员遵循本方案进行设计,为项目开发实施提供技术方案保障. 1.2 范围 本文档适用于HMI产品项目.本文档用于指导HMI ...
最新文章
- 算术平均值滤波matlab程序,基于S7-1200 AD采样的高效数字滤波算法的设计与实践...
- ASP.NET 2.0 正式版中无刷新页面的开发
- (紀錄)[ASP.NET MVC][jQuery]-1 純手工打造屬於自己的 jQuery GridView
- portainer的日常使用
- MapReduce-流量统计求和-分区代码实现
- 【Qt开发】QT对话框去掉帮助和关闭按钮 拦截QT关闭窗口的CloseEvent
- 这张磁盘有写保护_架构师不得不了解的硬件知识 - 磁盘阵列RAID
- js 读取外部的本地json文件
- Fluent 安装过程
- 关于dom4j中jaxen运行报错问题
- Spring AOP切面的执行顺序
- C语言实现循环缓冲fifo及总结
- 多线程输出奇数和偶数
- c语言中个各标点符号作用,C语言运算符和标点符号.xls
- 【OpenCV】 - 图像分割之分水岭算法,watershed()函数的输出,对marker和image的改变
- 影视剧作中的经典桥段部分
- VS2019安装失败
- c语言输出函数语句,c语言输出语句及格式输出函数介绍
- 阿里云服务器创建快照、回滚磁盘
- 【ACWing】1540. 主导颜色