知识卡片

低成本是架构设计的附加约束而非首要目标

普通读书笔记卡

内容

低成本之所以很少成为架构设计的首要目标,根源在于它和高性能、高可用天然是相互冲突的方向:高性能、高可用的通用做法是增加更多服务器去堆资源,而低成本恰恰要求用更少的服务器实现同样的效果,两者拉的是同一根绳子的两端。正因如此,低成本在实践中更常见的定位是一个”附加约束”而非独立追求的目标——先按高性能、高可用的要求设计出方案,再拿一个预设的成本目标去检验这个方案是否达标,不达标就要返工重设计;如果无论如何都设计不出满足成本要求的方案,那就是目标本身定得不合理,需要去调整成本预期而不是硬凑方案。低成本给架构设计带来的真正复杂度在于,达到低成本目标往往只有”创新”这一条路——要么引入已有的新技术(如用NoSQL替代关系型数据库应对高并发、用全文搜索引擎替代关系型数据库的低效模糊查询、用Hadoop替代传统文件系统应对海量数据),要么在没有现成方案时自己创造新技术。这两条路的复杂度并不对等:引入新技术的难点在于要吃透它并把它和已有技术体系整合起来;自己创造新技术的难点在于要提出全新的理念,而且新技术相对旧技术必须有质的飞跃,这个门槛远高于引入现成方案,因此中小公司多走引入路线,只有具备足够资源、技术积累和时间储备的大公司才有能力走自主创造这条路。

参考来源

- 位置:《从零开始学架构》第07讲《复杂度来源:低成本、安全、规模》"低成本"(源文件:_epub-src/OEBPS/text00000.html) - 结论依据:原文说明"低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束",并指出"低成本给架构设计带来的主要复杂度体现在,往往只有'创新'才能达到低成本目标",进一步区分引入新技术与创造新技术的复杂度差异及适用公司规模,直接支撑本卡片结论。 - 原始内容:低成本本质上是与高性能和高可用冲突的,所以低成本很多时候不会是架构设计的首要目标,而是架构设计的附加约束……低成本给架构设计带来的主要复杂度体现在,往往只有"创新"才能达到低成本目标。