故障自愈机器人,保你安心好睡眠

干货概览

 

在大型互联网公司中,单机房故障因为其故障时间长、影响范围大,一直是互联网公司运维人员的心头之痛。在传统的运维方式中,由于故障感知判断、流量调度决策的复杂性,通常需要人工止损,但人工处理的时效性会影响服务的恢复速度,同时人的不可靠性也可能导致问题扩大。

 

为了解决这类问题,我们针对百度内外部网络环境建设了基于智能流量调度的单机房故障自愈能力。结合外网运营商链路监测、内网链路质量监测与业务指标监控构建了全方位故障发现能力,基于百度统一前端(BFE)与百度名字服务(BNS)实现了智能流量调度与自动止损能力。同时,基于实时容量与实时流量调度自动止损策略与管控风险,实现了任意单机房故障时业务均可快速自愈的效果。当前此解决方案已覆盖搜索、广告、信息流、贴吧、地图等众多核心产品的单机房故障自愈场景。

 

单机房故障频发影响业务可用性

 

回顾近2年来各大互联网公司被披露的故障事件,单机房故障层出不穷。例如:

 

2015年6月某公司云服务香港IDC节点电力故障崩溃12小时

 

2016年5月某公司杭州电信接入故障,服务中断小时级别

 

2017年1月某业务天津机房故障,数小时无法提供服务

 

2017年6月北京某处机房掉电,多家互联网公司受影响

 

单机房故障频繁影响业务的可用性并且会给公司带来直接或间接的损失。直接损失包括访问流量丢失、商业收入下降、用户体验受损、打破服务等级协议(SLA)造成的商业赔付等,间接损失包括用户信任度下降、给竞品占领市场机会等。

 

单机房故障诱因众多不可避免

 

单机房故障诱因众多,详细复盘若干单机房故障发现故障诱因大致可以分为四类:

 

基础设施故障:物理机房故障、网络链路拥塞、流量转发基础设施故障等

 

程序缺陷:程序隐藏bug、程序性能严重退化等

 

变更故障:测试不充分的程序、配置、数据变更,人工临时介入的误操作等

 

依赖服务故障:第三方服务故障例如通用的认证服务、支付服务、存储服务、计算服务故障等

 

单机房故障止损可靠性与效率急需提升

 

人工处理场景下,运维人员通常选择7*24小时值班,接收大量的报警,随时准备在紧急情况下进行响应、决策、操作一系列故障止损动作,尽量挽回服务损失,降低故障影响。

 

但上述解决方案会面临如下问题:

 

响应可能不够迅速:例如夜间报警

 

决策可能不够精确:例如新手OP经验欠缺,误决策

 

操作可能出现失误:例如止损命令错误输入

 

“机器人”处理场景下,单机房故障自愈程序可独立完成故障感知、决策、执行的完整故障处理过程,并及时向运维人员同步故障处理状态。运维人员的职责由处理转向管理,最终运维人员在低压力值班中保证服务稳定运行。

 

单机房故障自愈解决方案概述

 

百度AIOps框架中,单机房故障自愈解决方案构建在运维知识库、运维开发框架、运维策略框架三个核心能力之上。具体过程为自愈程序搜集分散的运维对象状态数据,自动感知异常后进行决策,得出基于动态编排规划的止损操作,并通过标准化运维操作接口执行。该解决方案策略和架构解耦,并且托管到高可用的自动化运维平台之上,实现了业务在任意单个机房故障情况下皆可自愈的效果。

 

截至目前该方案已覆盖百度大多数核心产品,止损效率较人工处理提升60%以上。典型案例:

 

在8月28日某产品在单机房故障发生后1min55s完成止损。

 

在后续文章中我们会继续介绍单机房故障自愈的更多详细内容,敬请期待!


单机房故障容灾能力的建设

 

在容灾能力建设中有哪些常见问题?

 

如何证明服务已经具备单机房容灾能力?

单机房故障人工止损方法

 

人工止损时如何感知服务故障?

 

人工止损时如何收集故障信息?

 

人工止损时如何进行流量调度?


单机房故障机器人止损方法

 

如何设计单机房故障自愈整体方案?

 

如何降低流量调度风险?

 

如何应对不同业务流量调度策略和平台的差异?

 

收藏 评论(1)
分享到:
共1条回复 最后由Q1058204131 回复于2019-08-05 15:38
#2 Q1058204131 回复于2019-08-05

棒棒哒

0