规模增长带来的复杂性:从微控制器到生产部署的技术挑战

本文通过电子设备、电力系统和软件部署的实例,深入探讨了系统规模扩大时带来的复杂性增长。从微控制器的小规模实验到工业生产环境的大规模部署,揭示了规模扩展对技术架构、风险管理和实施难度的深远影响。

规模越大通常越复杂

我开始注意到,当事物规模变大时,往往会带来许多在小规模时不易察觉的额外复杂性。

我喜欢玩电子设备。我可以连接一些引脚,给微控制器添加传感器,编写一些代码等等。由于电压很小,我不需要考虑太多事情:最坏的情况也就是烧坏电子元件。

但是将其扩展到家庭规模时,事情就变得复杂了:突然间,使用合适直径的电线、添加断路器变得很重要,总体上需要比处理微控制器时更加小心。这些是如果你只在小规模上工作时永远无法预料的事情。

再上升到工业规模,事情变得更加复杂:例如,修复一根电缆需要特殊设备、熟练的技术人员和大量时间。

所有这些规模上的跳跃也使错误的代价更高:我可能会烧坏一个微控制器,但不会引发火灾。而在规模的另一端,一根修复不当的电缆可能导致停电。

我在很多地方都看到这种模式。

更新生产环境具有相同的特征。当你只有几个用户时,这很容易:做一些完整性检查,然后按下部署按钮。但是增加用户数量后,同样的事情就变成了复杂且有风险的工作:提前进行彻底测试、维护窗口、回滚计划。动作是一样的:按下按钮。但是因为你要向更多受众更新,所需的工作量也更大。

当你是一个行业的外行时,很容易陷入"看这有多容易"的谬误。

有人在周末实现了一个应用程序,而公司花了几个月?那是一个不需要处理很多事情的PoC:没有可观测性、监管要求、扩展性、部署。应用程序是一样的,但所有这些都缺失了。

这也解释了为什么软件开发会随着时间的推移而变慢:向小系统添加新功能比在大系统中实现同样的东西更容易。

这还带来了一个可见性问题:当行动得到适当规划时,复杂的事情看起来很容易。部署到生产环境只需点击一个按钮。连接电力只是把连接器接在一起。从外部看,人们似乎长时间无所事事,然后做些简单的事情。但如果他们没有充分准备,就会出现代价更高的错误。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计