大型网站技术架构 核心原理与案例分析阅读笔记1
第五章的内容为网站的高可用架构。此次主要说明可用性的度量与考核。
1.网站可用性度量
网站不可用也被称作网站故障,在软件系统的高可靠性(也称为可用性,英文描述为HA,High Available)里有个衡量其可靠性的标准——X个9,这个X是代表数字3--5。X个9表示在软件系统1年时间的使用过程中,系统可以正常使用时间与总时间(1年)之比。
网站不可用时间(故障时间) =故障修复时间点故障发现(报告)时间点
网站年度可用性指标= ( 1-网站不可用时间/年度总时间) x100%
如QQ的可用性是4个9,即QQ服务99%可用,这意味着QQ服务要保证其在所有运行时间中,只有0.01 %的时间不可用,其业务中断时间也就是(1-99.99%)*365*24=0.876小时=52.6分钟。
对于大多数网站而言,2个9是基本可用,网站年度不可用时间小于88小时; 3个9是较高可用,网站年度不可用时间小于9小时; 4个9是具有自动恢复能力的高可用,网站年度不可用时间小于53分钟; 5个9是极高可用性,网站年度不可用时间小于5分钟。
由于可用性影响因素很多,对于网站整体而言,达到4个9,乃至5个9的可用性,除了过硬的技术、大量的设备资金投入和工程师的责任心,还要有个好运气。SLA可用性好几个9的阿里云也宕机过多次。要做到更多的9,就要不断的监控自己的服务,服务挂掉能及时恢复服务。就像开车出远门,首先得检查轮胎,同时还得准备一个备胎一样的道理。
2.网站可用性考核
可用性指标是网站架构设计的重要指标,对外是服务承诺,对内是考核指标。从管理层面,可用性指标是网站或者产品的整体考核指标,具体到每个工程师的考核,更多的是使用故障分。
所谓故障分是指对网站故障进行分类加权计算故障责任的方法 。
分类 |
描述 |
权重 |
事故级故障 |
网站整体不可用 |
100 |
A类故障 |
网站访问不顺畅或核心功能不可用 |
20 |
B类故障 |
非核心功能不可用,或核心功能少数用户不可用 |
5 |
C类故障 |
以上故障以外的其他故障 |
1 |
表1 网站故障分类权重表示例
故障分的计算公式为:
故障分=故障时间(分钟) x故障权重
下面我们假设双十一导致淘宝用户猛增的场景,进一步对故障分加以说明。
场景 |
双十一导致淘宝用户猛增 |
刺激源 |
淘宝用户 |
故障 |
登录人数过多,导致淘宝无法响应,淘宝页面瘫痪 |
持续时间 |
30分钟 |
制品 |
淘宝的处理器、通信通道、存储器、进程 |
环境 |
用户的正常浏览操作 |
响应 |
淘宝页面呈现“网络出现故障,重新刷新”等的提示信息 |
响应度量 |
系统降级模式下继续运行,用户刷新页面或者重新登录之后可继续正常使用。 |
表2 双十一导致淘宝用户猛增场景
通过故障的描述可知此次属于A类故障且持续了30分钟,那么故障分应为30*20=600分。出现了故障那么必然会有处理机制,以下是应对上述场景的一个简化的故障处理流程图。
图1 淘宝故障处理流程图
在年初或者考核季度的开始,会根据网站产品的可用性指标计算总的故障分,然后根据团队和个人的职责角色分摊故障分,这个可用性指标和故障分是管理预期。在实际发生故障的时候,根据故障分类和责任划分将故障产生的故障分分配给责任者承担。