可伸缩架构(第2版):云环境下的高可用与风险管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

及时处理增长的烦恼

如今大多数应用程序都经历着流量、体量、复杂性,以及开发维护人员数量的增长的过程。通常,我们会忽视这些增长所带来的问题,直到遇到瓶颈不得不开始解决它们。但是,到那个时候通常已经晚了。各种问题已经积压到很严重的程度,很多早期能够解决问题的简单技巧,到那个时候已经不再适用了。

如果在设计应用程序架构的时候,没有提前考虑到应用程序可能伸缩的情况,那么我们所做出的架构决策,可能就会阻碍我们根据业务需求进行伸缩的能力。

可以在设计和架构新的应用程序或者已有应用程序的时候,考虑对未来可能的规模变化的影响。比如,你为今后的伸缩预留了多少空间?你将遇到的第一个可伸缩性瓶颈是什么?当遇到这个瓶颈时会发生什么?如何在不对应用程序进行大量架构重构的情况下,对这个瓶颈做出响应并解决掉它?

如果能够在到达这种程度之前及时思考如何保持系统的长期增长,就可以预防很多问题的出现且可以不断改进应用程序,使它们安全平稳地度过增长期。

[1]实际中经常使用的基于账户的分区机制,是使用账户标识来代替账户名称。本例中使用账户名称是为了方便读者理解。