凌晨两点,Maria盯着董事会邮件。对方问:10亿TPS怎么办?她回了一句让投资人沉默的话——"到时候我们会有200个工程师和几千万收入"。

这不是杠。这是37signals用单台MySQL扛下百万用户、AWS用单元格架构接受"可控泄漏"、Stripe从单体起步三个月上线的同一套逻辑。

打开网易新闻 查看精彩图片

本文用一张图拆解:为什么"会输"比"想赢"更重要。

一、架构师的职业病:假装能预测未来

我们被训练成解决问题的人。干净的图表、优雅的分层、漂亮的权衡——行业奖励这种能力。

典型场景:"我们需要支撑1000万用户。"问题是,这个数字常常是编的。

后果很标准:过度设计、分析瘫痪、理论上完美但没法用的系统。你画完架构图,业务已经换方向了。

成熟架构师的咒语是另一套:「我会错。我的工作是错得能挽回。」

二、"输得起"的四个现场

案例1:Basecamp的单机神话

37signals的Basecamp用一台MySQL服务器扛了多年,服务百万级用户。分片(sharding)被故意推迟——直到痛苦真实发生。

关键区别:当他们最终分片时,手上有清晰的数据告诉该按什么边界切。不是猜的,是痛的。

案例2:银行ESB vs AWS单元格

某银行的ESB(企业服务总线)试图隔离一切,结果造出个单点故障。AWS的单元格架构(Cells)走相反路线——直接接受跨单元格操作不可能,这叫"可控泄漏"。

不是堵住所有漏洞,是让泄漏发生在设计好的地方。

案例3:Skype的三年并行

微软重写Skype后端,从点对点单体迁到云原生。花了三年,两套系统并行跑,用户逐步迁移。

老系统直到新系统100%功能对等才下线。没有大爆炸,没有"切流之夜"的祈祷。

案例4:那家该坚持单体的小公司

第三篇文章提到的创业公司,本该守住模块化单体。够用的架构是:一个代码库、一个数据库、边界清晰的模块、每天部署10次的持续交付。

他们没选这条路,所以进了坑。

三、Maria的董事会攻防战

PayFlow,20人金融科技团队,做支付网关。CTO Maria读完了整个架构悖论系列,然后真用了。

董事会成员问:10亿TPS怎么办?

Maria:「那时候我们会有几千万收入和200个工程师。届时再拆分,我们会有资源做对。」

这句话的潜台词:现在为假想的规模预付费,是拿当下的交付速度换幻觉的保险。真到了那个规模,你今天的架构决策大概率全是错的——因为那时候你才知道问题长什么样。

四、两个加速决策的脏办法

Stripe:需求驱动复杂度

第一版是简单单体,几个端点。复杂度只在客户真的需要时才加。结果:几个月上线,不是几年。

金融科技团队:让数据吵架

团队在Kafka和SQS之间纠结。没开两周会,而是建了薄薄的消息队列接口,两个都实现,跑负载测试,用数据拍板。

不是更聪明的决策,是更快拿到决策依据。

五、S3 outage的反面教材

2017年S3挂了。AWS的复盘没点名打错命令的工程师,而是解释系统怎么允许一条命令搞垮这么多服务。

然后他们把元数据层重构成单元格感知——不是找替罪羊,是修系统的容错设计。

这是同一套逻辑:接受人会犯错,设计让错不扩散的机制。

六、一张图总结:架构实用主义的禅

http://dingyue.ws.126.net/2026/0428/4f2cb20fj00te6q4f001yd000m800etp.jpg

这张图的核心就一句:「没有完美架构。只有失败方式最不疼、能演进出来、团队真能干完的架构。」

拆解三层:

第一层,接受不完美。不是妥协,是承认预测未来的成本高于应对当下的成本。

第二层,设计可恢复性。每个决策都要问:如果错了,回滚要多久?

第三层,交付优先于设计。画图的快感是延迟的,上线的压力是即时的——后者才是真的。

七、为什么现在更重要

云原生、微服务、事件驱动——工具越来越复杂,"正确"的诱惑越来越大。但Basecamp的单机、Stripe的单体、AWS的单元格都在说同一件事:复杂度是负债,不是资产。

Maria的董事会回复之所以有力,是因为它把架构决策还原成商业决策。不是"能不能支撑10亿TPS",是"到需要10亿TPS时,我们还在不在牌桌上"。

活下来才能迭代。迭代才能找到对的架构。而不是反过来。

最后说个冷笑话:那个问10亿TPS的董事会成员,可能连自家产品的日活都记不清。但Maria得认真回答——这就是架构师的日常,用工程师的严谨,接业务的玄学。