15 年前,要实现有意义的计算能力,需要大量的服务器机架、无休止的冷却系统以及不小的自大狂妄。如今,你口袋里的手机在原始计算能力方面已经超越了那个时代的超级计算机。然而,我们开发的许多软件仍然把现代硬件当成停留在 2008 年,小心翼翼地追求性能,仿佛我们仍在限制 CPU 的周期。
我们常常过度设计,而不是利用硬件进步来简化解决方案,创建不必要的复杂分布式系统,模仿谷歌等科技巨头的架构。但问题在于:大多数企业并不需要谷歌规模的基础设施才能取得成功。事实上,过度设计可能正是阻碍它们前进的因素。
超级计算机已经出现
在 21 世纪初,如果你想处理海量数据或支持一个全球分布式应用程序,你需要一台超级计算机。即使在那时,“庞大”和“全球”的含义也远不如今天那么宏大。那些超级计算机是专门设计的,价格高昂,维护起来更是噩梦。
如今,几乎每个人口袋里都揣着一台超级计算机。如今搭载苹果 A18 或高通骁龙系列等芯片的智能手机,其性能之强,足以让贝尔实验室的研究人员羡慕不已。此外,云计算的兴起,让海量计算能力可以按需获取,现代 GPU 和 CPU 也拥有强大的计算能力。如今,大多数问题不再需要外来的硬件来解决;商用硬件已经足够了。
那么,为什么我们继续构建软件,就好像我们停留在 2008 年一样?
过度设计存在陷阱
许多工程师将谷歌、AWS 、微软、腾讯、