- 可伸缩架构(第2版):云环境下的高可用与风险管理
- (美)李·艾奇逊
- 678字
- 2021-04-01 11:02:45
什么导致了低可用性
究竟是什么原因导致之前运行正常的系统,却慢慢变得不可用了呢?通常,这会有许多种原因。
资源耗尽
用户数量的增加会导致系统使用的数据量增加,从而可能导致系统资源耗尽,应用程序运行越来越慢并最终无法响应。
预期之外的压力变化
随着应用程序被越来越多的人使用,可能需要对代码和应用程序进行修改以支撑不断增加的压力。这些改动通常都是在最后一刻被草草实现,缺乏足够的考虑或计划,因此也增加了问题出现的可能性。
流动行为的增加
当应用程序高速发展时,通常需要更多的开发人员、设计师、测试人员和其他人来开发并维护它。大量的个体共同协作会产生大量的流动行为,包括新功能、变更功能,或者只是一般的维护工作。开发和维护应用程序的人员越多,就会产生越多的流动行为,从而增加了相互之间产生负面作用的可能。
外部依赖
应用程序依赖的外部资源,例如,SaaS服务、基础设施或者云服务越多,由于这些资源导致的可用性问题就会越多。
技术债务
随着应用程序复杂性的增加,通常会导致技术债务(例如,通常随着应用程序逐渐发展和成熟,对软件未实现的修改和未修复的bug也会逐渐积累)。技术债务会增加可用性问题出现的可能。
所有快速发展的应用程序都有一个、多个或者所有这些问题。因此,之前运行正常的应用程序,很可能会逐渐出现可用性的问题。通常这些问题会慢慢浮现,有时也会突然发生。
但是大多数不断发展的应用程序最终都会面临可用性的问题。
可用性问题会增加你的经营成本,增加你的用户的成本,降低用户对你的信任度和忠诚度。如果系统一直存在可用性问题,你的公司不可能长期存活。
构建可伸缩的应用程序,意味着构建高可用的系统。