
大型网站核心架构要素-可用性
大型网站的核心架构要素是可用性。对于知名网站来说,服务不可用是一个严重的事故,轻则影响网站形象,重则可能导致法律纠纷。对于电子商务网站来说,服务不可用会造成金钱和用户流失,因此几乎所有网站都承诺7724可用,但实际上任何网站都无法达到完全的7724可用。
这些故障时间扣除后,即为网站的总可用时间,可换算为网站的可用性指标,以衡量网站的可用性。一些知名大型网站的可用性达到了4个9以上,即超过99.99%。由于网站使用的服务器通常是普通的商用服务器,这些服务器的设计目标并不保证高可用,因此很可能会出现服务器硬件故障,也就是服务器宕机。
大型网站通常拥有上万台服务器,每天都可能出现服务器宕机的情况。因此,网站高可用架构设计的前提是服务器必然会出现宕机的情况。高可用设计的目标是当服务器宕机时,服务或应用依然可用。网站高可用的主要手段是冗余,应用部署在多台服务器上,数据存储在多台服务器上进行备份。当任何一台服务器宕机时,都不会影响应用的整体可用性,也不会导致数据丢失。
对于应用服务器来说,多台应用服务器通过负载均衡设备组成集群,共同对外提供服务,当任何一台服务器宕机时只需将请求切换到其他服务器,即可实现应用的高可用。但是,如果应用服务器上保存了请求的会话信息,则服务器宕机时会话丢失,即使将用户请求转发到其他服务器上也无法完成业务处理。
对于存储服务器,由于其上存储着数据,需要对数据进行实时备份,当服务器宕机时需要将数据访问转移到可用的服务器上,并进行数据恢复,以保证在服务器宕机时数据依然可用。除了运行环境,网站的高可用还需要软件开发过程的质量保证。通过预发布验证、自动化测试、自动化发布和灰度发布等手段,可以减少将故障引入线上环境的可能。
避免故障范围扩大。衡量一个系统架构设计是否满足高可用的目标,是假设系统中任何一台或多台服务器宕机以及出现各种不可预期的问题时,系统整体是否依然可用。


