PoC 与基准验证是什么
PoC(概念验证)的作用是用真实场景回答一个关键风险问题:这个方案在接近生产的规模下能不能满足要求。它区别于演示:演示说明原理可行,PoC 给出可比较的量化结论。做之前先定验收指标、数据规模与失败退出条件,做完把实测值与验收线逐项对照并附原始数据。最怕的情形是把 PoC 做成玩具——小数据集跑通就下结论,真实规模下延迟与吞吐完全达不到。
基本信息
| 目标 | 回答关键风险问题:性能、兼容性、迁移成本与运维可行性 |
|---|---|
| 方法 | 真实数据规模 + 贴近生产的链路 + 明确的通过线 |
| 退出条件 | 预先定义不通过的条件与止损点,避免无限期投入 |
| 证据 | 原始压测数据、环境规格、参数配置与复现脚本 |
| 结论去向 | 结论并入 ADR,作为选型或架构变更的依据 |
典型使用场景
- 技术选型:对比两个数据库或消息中间件在真实数据量下的表现
- 性能验证:新的索引方案或缓存策略能否满足 P99 目标
- 迁移可行性:从旧系统迁移的数据量、耗时与中断窗口是否可控
- 兼容性验证:新旧版本接口或驱动升级后是否存在行为差异
- 容量结论:为目标架构给出单实例支撑能力与扩容系数
- 成本核算:托管与自建的用量成本对比需要实测数据支撑
验收线与记录要素
验收线与记录要素
# 通过线
指标:P99 ≤ 120ms、错误率 < 0.1%
数据:订单表 5000 万行,峰值 800 QPS,读写比 9:1
# 止损线(预先定义)
P99 > 200ms 或错误率 > 1% 即停止验证,不再追加投入
# 环境记录
实例规格、内核版本、中间件版本、参数配置一并写入结论附件
# 结论格式:实测值 / 通过线 / 是否达标 / 偏差原因阶段检查
| 阶段 | 要做的事 | 常见疏漏 |
|---|---|---|
| 准备 | 写清指标、规模与退出条件 | 指标含糊,结论无法判定 |
| 环境 | 尽量与生产一致,记录差异 | 用小机型或关闭持久化,结论虚高 |
| 数据 | 与生产同量级、同分布 | 用小数据集,无法暴露索引与排序问题 |
| 执行 | 固定变量逐项对比,重复多次 | 一次跑完就下结论,忽略波动 |
| 结论 | 实测与验收线对照,附原始数据 | 只给结论不给证据,无法复核 |
PoC 环境与生产的差异要写进结论:差异越大,结论外推的风险越高;生产是多节点集群而 PoC 是单节点时,线性外推通常不成立。
只验证关键假设:次要问题留到实施阶段处理,全部展开会让 PoC 无限期拖延,失去决策价值。