首页 › 运营与质量 › 小批量原则
运营与质量 · 排队与流动

小批量原则

把活拆小、分批交出去,问题早暴露,出事也波及得少。

Small Batch Sizes◷ 约 3 分钟▤ 3 个真实故事换成 AI 也一样在知识地图里看它和谁相连 →

2024 年 7 月 19 日 04:09(世界协调时),CrowdStrike 给它的 Falcon 安全软件发出一个小小的配置文件。这类更新是用来帮软件识别新的攻击手法的,此前已经顺利发过好几次。

它一次性推给了客户装着 Falcon 的 Windows 电脑。没有先发给一小批,也没有停下来看看效果。当时在线、收到它的机器,一台台蓝屏崩溃。

05:27,CrowdStrike 撤回了文件,之后才上线的机器安然无恙。可微软后来估计,这时已有 850 万台 Windows 设备中招。这不到全部 Windows 电脑的百分之一,但微软说,波及之所以这么广,是因为「使用 CrowdStrike 的企业运行着许多关键服务」。那一天的其余经过,见案例。

18 天后,CrowdStrike 发布根因分析,列了六条发现。最后一条只有一句话:「每个模板实例都应分阶段发布。」现在,每次更新先发给一小批「金丝雀」机器,再一圈圈扩大范围,每扩一圈都停一停,收集数据看它表现如何。客户也可以自己选在哪儿、什么时候接收更新。

先小后大

一批,就是你一口气做完、交出去的那一份:一次发布,一车货,一个代码合并请求,一天的表格。把它变小,有两个好处。

一是反馈来得早。研究软件团队交付方式的 DORA 项目说得很直白:小批量能缩短「拿到改动反馈所需的时间,让分诊和修复问题更容易」。头十台机器崩了,你是从十台机器上知道的。

二是真出了错,波及得少。亚马逊从 2017 年那次 S3 事故里得出了同样的教训:一条输错的命令,打垮了所有请求都离不开的一个子系统。它的修法之一,是加快把这个子系统拆成更小的单元(它叫 cell),以缩小故障的「爆炸半径」,也让恢复更快。

小批量还能少等。大批量里的活,要等同批其余的都做完才算完,哪怕排在第一个的也一样。这又是利特尔法则:完成速度不变时,系统里堆的活越多,每件平均待得越久。

四十张请柬

设想有人要寄四十张聚会请柬。看起来高效的做法是:四十张先全折好,再全装进信封,再全封口,再全贴邮票。第一张做完的请柬,要到晚上快结束才出现。要是卡片根本塞不进信封,这事要到装第一个信封时才发现,而那时四十张已经全折完了。

一张一张做,第一张一分钟就好。信封有问题,装第一张就露馅,另外三十九张还没折错尺寸。

小批量也不是白来的。每一批都有固定成本:准备、交接、检查。DORA 指出,团队做大批量的原因之一,就是交接的固定成本太高;持续交付想做的,正是改变这笔账,让小批量做得起。另一个坑是:活拆小了做,交付前又重新攒成一大包,早来的反馈就这么扔掉了。

AI 的活也要小批量

AI 编程工具往反方向推。它几分钟就能写出一整个功能。DORA 的指南说,AI「很擅长快速生成大块代码,但大改动很难安全地审查、测试和集成」。它还说,审查机器写的代码,「每行花的心力可能比审查人写的代码还高」。它称自己的研究显示,小批量工作「放大了采用 AI 对产品表现的正面作用」。

落到实处,就是让智能体一次只做一个小改动,看过一个再要下一个,而不是最后收下一个巨大的改动。让智能体上岗也一样。一个新的客户回复智能体,或者给老智能体换了一套新指令,可以先让它回一小部分真实来信,有人逐条看它发了什么,再让它接下全部。

CrowdStrike 的那次更新本身很小。出事,是因为它一次大范围推了出去,没有先拿一小批试过。

先看几件事

玩一玩

出处

  1. CrowdStrike, External Technical Root Cause Analysis, Channel File 291, August 6, 2024
  2. CrowdStrike, Tech Alert, Windows crashes related to Falcon Sensor, July 19, 2024
  3. Microsoft, Helping our customers through the CrowdStrike outage, July 20, 2024
  4. Amazon Web Services, Summary of the Amazon S3 Service Disruption in the Northern Virginia (US-EAST-1) Region, 2017
  5. DORA, Capabilities: Working in small batches
  6. CrowdStrike, Preliminary Post Incident Review (PIR), Content Configuration Update Impacting the Falcon Sensor and the Windows Operating System (BSOD), updated July 25, 2024
  7. The Guardian, What is CrowdStrike, and how did it cause a global Windows outage?, July 19, 2024
  8. UK Parliament, Hansard, House of Commons, CrowdStrike IT Outage, July 22, 2024
  9. The Guardian, Glitch in Amazon web servers causes problems for popular sites, February 28, 2017
  10. The Guardian, How did an Amazon glitch leave people literally in the dark?, March 1, 2017
  11. Xiaomi Corporation, Global Offering prospectus, Hong Kong Stock Exchange, June 25, 2018, section Business
  12. Xiaomi Corporation, Global Offering prospectus, June 25, 2018, Open Letter from Our Chairman (Lei Jun)
  13. The Paper (澎湃新闻), 小米十周年雷军演讲全文:和这个伟大时代同行,是最大的荣幸, August 11, 2020