全冗余、全监控、全自动, 实现华为云官网零中断
来源:华为云确定性运维专刊(第四期)
作者:吴 奇 文 俊
背景:
可用性(Availability):产品在任意随机时刻需要和开始执行任务时,处于可工作或可使用状态的程度。它的概率度量称为可用度。高可用(High Available)一直是业界每家厂商追求的目标,但即便在普遍重视的情况下,业界每年也会发生因为故障导致的中断事件。越重要领域,对可用性的要求越高:
不同领域对可用性的要求
华为云官网面临的挑战
华为云官网作为华为云面向客户的首要系统,对可用性提出了零中断的目标:关键页面全年100%可访问,页面样式不能错乱,页面打开响应时长不超过5秒。
由可用度计算公式A=MTBF/(MTBF+MTTR)可见,提升可用性的关键措施:
» 故障尽量少的发生,即MTBF(平均无故障工作时间)尽可能大;
» 故障发生后尽快修复,即MTTR(平均修复时间)尽可能小。
1. 如何扩大MTBF
官网的访问流程相对比较复杂,涉及公网域名、DNS、CDN、OBS等多服务。根据可靠性模型基本原理:串联系统的可靠度低于各个单元的可靠度。任何一项服务的故障,都会影响用户端到端访问流程。因此,要增强官网整体的可靠性,就必须围绕:如何通过并联(集群冗余)的方式,增强各个单元的可靠性。
2. 如何缩小MTTR
任何系统无法100%避免故障发生,因此为了缩小MTTR, 需要对系统内外每一个部件做好实时监控。一旦有故障发生,立刻发出告警,并且通过合理的算法能够知道故障发生的位置(故障定界)。同时尽可能让每个故障部件都有自动恢复的能力,避免人工介入。
通过专项工作,华为云官网团队与SRE团队共同构建了相对完善的逃生能力,应对多起可能的系统故障。
可靠性模型
零中断总体架构
1. 故障模式分析
FMEA定义:Failure Mode and Effects Analysis,故障模式影响分析。在产品设计过程中,通过对产品各组成单元潜在的各种故障模式及其对产品功能的影响进行分析,并把每一个潜在的故障模式按它的严酷度予以分类,提出可以采取的预防改进措施,以提高产品可靠性的一种设计分析方法。
分析方法:对华为云官网访问的完整链路进行端到端梳理,分析每一个环节及其对应的故障模式、可能的故障和影响,进而给出合理的逃生和恢复方案。结合故障模式分析,最终构建了全冗余架构、全链路监控、全自动化恢复的“三全”方案。
FMEA示例
2. 全冗余架构,消除单点故障
双域名备份
» 域名常见的故障模式有:域名过期、域名被禁、域名被劫持等。
» 官网采用.com和.cn双域名冷备方案,以应对单域名不可用情况。
双DNS
» DNS常见的故障模式有:被攻击或自身故障导致的响应超时和响应错误。
» 目前华为云的所有域名都在权威DNS中管理。纵观历史互联网的故障,DNS容易发生故障,因此需要采用两家权威DNS形成集群化的NS服
务器。在递归查询时,如果一家DNS厂商响应超时或错误,Local DNS会到另外一家DNS厂商重试,保证DNS业务的连续性,达到故障自动切换的效果。
双HTTPS证书
» HTTPS证书定义:HTTPS证书也叫SSL证书,是数字证书的一种,类似于驾驶证、护照和营业 执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。SSL 证书遵守 SSL协议,由受信任的数字证书颁发机构C A,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。
» 常见故障:证书过期、证书被吊销、证书被浏览器禁止等。
» 双证书方案:
华为云官网采用了HTTPS协议,用户浏览器会校验相应的HTTPS证书。针对上述常见故障,华为云官网采用双证书方案:通过购买及加载备份证书,并进行实时拨测,保证主备份证书的可用性。当主用证书不可用时,无损切换至备用证书。
多CDN
» CDN定义:CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输得更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。
» 常见故障模式:CDN响应超时、响应错误、无法回源、无法缓存等。
» 华为云官网集成的多CDN作为集群容灾方案,根据智能DNS, CDN故障发生时,实现快速切换。
数据中心多活异地容灾
源站涉及的部件很多,任何一个部件故障,可能导致源站请求会失败,因此针对HTML页面采用数据中心多活异地容灾方案,不同数据中心通过DRS(数据复制服务)同步,应对单数据中心故障。
静态资源多OBS备份
网站用到的静态资源,如图片、视频、js脚本等会存放在OBS(对象存储)桶当中,并通过CDN进行加速。 华为云OBS本身提供12个9的数据持久性保障;另外又采用了OBS多region的多活方案,以应对单region OBS故障情况。
3. 全链路监控
对部件的监控是零中断必不可少的重要环节。官网基于分布式和智能任务调用的核心技术架构构建了一键检测平台,支持不同网元、不同协议、不同网络下的部件监控,官网页面访问涉及的每一个部件都已经纳入到一键检测平台的管控,同时也对接了告警平台,故障发生时,能分钟级通过短信、邮件等发送告警。
4. 全自动化故障隔离与恢复
» 如果要实现零中断,自动隔离、自动恢复必不可少。
» 故障隔离:要求能确定网络故障位置,并将正常部分的网络与有故障的网络分隔开来,使正常部分的网络免受故障干扰,重新配置网络,尽量减小故障隔离操作对网络造成的影响。
故障演练
官网针对零中断做了各方面的保障措施,但不能仅依赖实际故障,来验证方案是否有效。这就要求需主动、尽早判断:方案是否可行、监控是否可用等。故障演练FIT(Fault Injection Test):故障注入测试,通过向系统注入在实际应用中可能发生的故障,观察系统功能性能变化,故障检测、定位、隔离以及故障恢复情况,发现产品缺陷、评估系统可靠性的测试方法。官网团队例行和SRE一起,围绕核心部件进行故障注入测试,以此验证官网能否达成高可用目标。在此过程中遇到的问题,会重新梳理方案,刷新FMEA,补齐恢复预案。
总结
华为云官网经过多年零中断专项工作打磨,围绕全冗余架构、全链路监控、全自动化恢复不断地强化网站高可用能力。华为云官网团队还将继续和华为云SRE团队共同完善华为云官网各方面的故障防范能力,为华为云的品牌保驾护航。
- 点赞
- 收藏
- 关注作者
评论(0)