PoC 与基准验证

PoC 用真实场景验证关键假设:明确验收指标、数据规模与失败退出条件;避免做成演示玩具,结论要能回答“是否满足生产要求”。

PoC 与基准验证是什么

PoC(概念验证)的作用是用真实场景回答一个关键风险问题:这个方案在接近生产的规模下能不能满足要求。它区别于演示:演示说明原理可行,PoC 给出可比较的量化结论。做之前先定验收指标、数据规模与失败退出条件,做完把实测值与验收线逐项对照并附原始数据。最怕的情形是把 PoC 做成玩具——小数据集跑通就下结论,真实规模下延迟与吞吐完全达不到。

基本信息

目标回答关键风险问题:性能、兼容性、迁移成本与运维可行性
方法真实数据规模 + 贴近生产的链路 + 明确的通过线
退出条件预先定义不通过的条件与止损点,避免无限期投入
证据原始压测数据、环境规格、参数配置与复现脚本
结论去向结论并入 ADR,作为选型或架构变更的依据

典型使用场景

  • 技术选型:对比两个数据库或消息中间件在真实数据量下的表现
  • 性能验证:新的索引方案或缓存策略能否满足 P99 目标
  • 迁移可行性:从旧系统迁移的数据量、耗时与中断窗口是否可控
  • 兼容性验证:新旧版本接口或驱动升级后是否存在行为差异
  • 容量结论:为目标架构给出单实例支撑能力与扩容系数
  • 成本核算:托管与自建的用量成本对比需要实测数据支撑

验收线与记录要素

验收线与记录要素
# 通过线
指标:P99 ≤ 120ms、错误率 < 0.1%
数据:订单表 5000 万行,峰值 800 QPS,读写比 9:1
# 止损线(预先定义)
P99 > 200ms 或错误率 > 1% 即停止验证,不再追加投入
# 环境记录
实例规格、内核版本、中间件版本、参数配置一并写入结论附件
# 结论格式:实测值 / 通过线 / 是否达标 / 偏差原因

阶段检查

阶段要做的事常见疏漏
准备写清指标、规模与退出条件指标含糊,结论无法判定
环境尽量与生产一致,记录差异用小机型或关闭持久化,结论虚高
数据与生产同量级、同分布用小数据集,无法暴露索引与排序问题
执行固定变量逐项对比,重复多次一次跑完就下结论,忽略波动
结论实测与验收线对照,附原始数据只给结论不给证据,无法复核
PoC 环境与生产的差异要写进结论:差异越大,结论外推的风险越高;生产是多节点集群而 PoC 是单节点时,线性外推通常不成立。
只验证关键假设:次要问题留到实施阶段处理,全部展开会让 PoC 无限期拖延,失去决策价值。

易错点

  • 用小数据集验证:结论在生产规模下失效,选型决策被误导
  • 没有失败标准:试验无限期拖延,资源被长期占用
  • 环境与生产差异不记录:结论被直接外推,上线后表现远低于预期
  • 只验功能不验性能:功能可用但延迟与吞吐不达标,返工代价更大
  • 结论不留原始数据:无法复现与复核,争议时缺少依据

数据来源与参考

  • 《软件架构:架构模式、特征及实践指南》(Richards & Ford)
  • 《精益企业》(Humble 等):实验方法
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌