分布式高可用架构之道
上QQ阅读APP看书,第一时间看更新

1.1.2 影响高可用的因素

上一小节主要讲解了可用性以及如何去度量可用性,本小节主要讲解影响高可用的因素是什么,或者说是什么原因导致系统可用性差。导致系统不可用的因素有很多,如表1-1所示。

表1-1 非高可用因素

可以简单地将原因分为两种:外在因素和内在因素。

外在因素即系统以外的因素,比如机房发生火灾、光缆被挖断、地球毁灭等。

内在因素即系统本身的原因,包括系统依赖的资源(数据库、缓存、硬件资源等),比如服务器硬件故障、系统本身故障/Bug、系统依赖的中间件存在问题、数据库/缓存等宕机、发布新应用等,这里以具体实例进行分析。

● 服务器硬件故障:硬件故障导致服务宕机是必然会发生的事情,尤其是网站规模不断扩大,网站后台的服务器越来越多,硬件故障概率必然变大。

● 应用发布:应用发布新功能时,需要重新部署新的应用程序版本,这个过程需要重启应用,如果应用重启更新的过程中没做到无损发布,必然导致短暂的服务不可用。这种形式的不可用相比硬件故障更为常见。从可用性指标来看,这种频繁出现的停机升级过程大大增加了网站的不可用时间。因此,高可用设计必须提供可行的方案,将这种停机升级的影响降到最低。

● 应用程序问题:比如测试力度不够,导致存在Bug应用发布到线上。

由此可见,要保证系统完全高可用几乎是不可能的,只能尽力为之。