从选项比较到风险说明:口径不一致的打分表没有意义
方案 A 按峰值成本、方案 B 按日均成本,再给每项打五星——矩阵再漂亮也无意义。本页定义候选比较的统一口径、端到端故障推理与敏感性分析。
比较同一组指标
候选方案应至少包括当前状态和一种低成本替代。比较同一组指标:延迟、吞吐、可用性、正确性、成本、组织负担、迁移风险和退出能力。加权评分表可以让假设显式化,但分数不是真实测量,权重变化会改变结论。对高风险方案,应用容量测试、故障演练或小范围原型获得证据。决策的后果包括预期收益、接受的风险、运维职责和未来迁移成本。记录未选择方案的原因,防止未来团队失去当时的业务上下文。ADR 的记录格式由ADR、RFC 与运行证据专题负责。
端到端的故障推理
故障推理从边界开始:客户端可能重发;代理可能超时但后端继续执行;消费者可能在副作用后崩溃;副本可能落后;旧主可能复活。每个路径要问哪些状态已提交、哪些确认丢失、谁负责继续。防止重复影响需要幂等键或状态条件;防止旧写需要版本或 fencing;防止静默遗漏需要重试、回放和对账;防止故障扩散需要限流、隔离和背压。恢复正确性需要两个证明:服务已恢复可接收工作,且数据/业务状态已恢复至目标。健康检查通过不能替代数据核验;复制追平也不能证明重复副作用已消除。
使用同一题设比较候选
目标为峰值5000扣减/秒、余额不负、通知可延迟、已确认扣减不允许静默丢失。方案A单库事务+Outbox;方案B缓存扣减+异步入库;方案C跨资源协调。先按硬约束淘汰无法给账本恢复证明的B版本,再比较A/C延迟、可用性、恢复与人力,而不是给每项随意打五星。
打分前检查是否把方案A的完整运维成本与方案B只算服务器费用相比;是否一个按峰值、另一个按日均;是否把未实现的恢复能力算作已经存在。比较口径不一致的矩阵再漂亮也无意义。
敏感性与剩余风险
假设A在同配置下可持续800/秒/分片,目标利用率60%,均匀负载需11容量单位;最大账户占20%时仍有1000/秒落一个裁决域,均匀模型失效。此时推荐应增加热点策略或改变业务流程,不能只是继续加总分片。
列出风险概率估计的依据,无法估概率时用影响、暴露条件、检测与恢复预算表示,不伪造小数。残余风险需要有主责与监测阈值;"采用成熟组件"不是风险已消失的证据。
决策与反证
推荐A可附条件:热点受限、事务域可同置、跨区写不在当前范围。反证包括单热点超过持续能力、必须全球多写或恢复窗口达不到目标;每种对应试验和后备路线。不要事后把原本硬约束改称"下一期优化"。评审者应能沿一项关键结论追到输入、推导、证据和限制。对没有唯一答案的题,正确表达权衡比押中某组件名更重要。
候选比较的评分禁区
本页讲了统一口径,评审时最常见的失败仍然发生在评分表上。三条禁区:细粒度打分掩盖口径差异、假设没有标注、未实现的能力被计分。
禁区一:给"延迟、可用性、成本"各打五星。星级不是测量,权重一变结论就翻;更糟的是,两个方案的成本一个按峰值、一个按日均,星级把口径差异抹平。正确做法是先统一口径(同窗口、同负载、同成本科目),再只对可量化项写数值,其余写风险与条件。
禁区二:假设不标注。"B 的恢复能力更强"若基于"跨区复制延迟小于 1 秒"这一未经验证的假设,必须在表里标为假设,并给出验证方法与翻转阈值。假设不成立时,推荐要能反转。
禁区三:未实现能力计分。"C 方案恢复只要 2 分钟"——但 C 的恢复流程尚未实现、也未演练,这 2 分钟是设计目标不是证据。未验证的恢复能力不能计入可行性;本例 C 因恢复未证明而被排除,即使它最便宜(月 20,000 + 0.2 人)。
另取一个恢复时间小算例(与本页上文"缓存扣减 B 无账本恢复证明被淘汰"不是同一题设,避免方案字母混淆):恢复硬约束 15 分钟,方案 X 30 分钟、方案 Y 10 分钟、方案 Z 120 分钟且未演练。可行集合只有 Y;全成本(基础设施+人力按 3 万/人月)X 140,000、Y 135,000、Z 26,000。Z 最便宜但违反硬约束,X 不满足恢复时间——这正是"硬约束先过滤、再比成本"。
执行 python3 labs/architecture_models.py option_comparison:预期输出 hard_constraint_minutes=15、viable=["Y"]、full_cost={"X":140000,"Y":135000.0,"Z":26000.0},并注明未证明的恢复不计入可用性。脚本只做过滤与算术,不含真实报价。
两个合理选择:A 保留加权总分以便排序,但把硬约束作为前置过滤;B 完全取消加权,只做可行集合与敏感性。本例选 B,并保留 A 的"硬约束前置"作为最低要求——任何方案在写入比较表前先过硬约束。
架构师变化条件
最大账户占比从 20% 升到 40%:均匀容量模型失效加剧,热点策略从可选变成硬性前置;先改分片域或业务流程再谈容量。若恢复窗口从小时级收紧到分钟级,方案 C 的协调成本与方案 A 的单库 RTO 需要重算。敏感性分析的输出不是新数字而是新决策路径:每次变化回答"哪项输入跨阈值会改变推荐"。
闭卷验收
本页 8 道闭卷题收进了下方自测面板:先回忆,再展开参考答案与评分点,最后给三档自评。