写点什么

单机房故障自愈 -- 运维的春天

  • 2019-09-10
  • 本文字数:2358 字

    阅读完需:约 8 分钟

单机房故障自愈--运维的春天

在单机房故障自愈–黎明之战中,我们介绍了单机房故障自愈的准备工作和基础设施,包括容灾能力建设、监控平台以及流量调度平台。本篇主要介绍单机房故障自愈的具体解决方案,内容包括:


  • 单机房故障止损的能力标准

  • 单机房故障自愈的整体架构

  • 单机房故障自愈的常见问题和解决方案

单机房故障止损的能力标准

在单机房容灾能力、故障发现能力、流量调度能力基础上,业务线具备了通过流量调度进行单机房故障止损的条件。理想情况下,我们希望构建一套完整、自动、智能的自愈方案,但各个业务线的服务特点不同和基础能力参差不齐,很难一蹴而就,所以我们建立起一套自愈能力的等级标准,业务线根据自身情况制定相应建设计划,逐步提升自愈能力。


自愈能力等级标准划分为 5 级,从 Level 0 的完全人工止损,到 Level 4 的自动化、智能化止损。对于 Level0、Level1,人工感知止损面临着速度慢、误操作、场景覆盖不全、风险控制能力不足等问题;、Level2 则实现了止损操作的平台化、预案化,一定程度上提升了止损效率;Level3 则实现了自动化报警联动故障止损,实现了止损效率的进一步提升。2016 年,百度大部分核心产品线已经实现了 Level 2、Level 3 的自动止损能力,但在场景覆盖与风险控制上仍存在不足。由此,Level 4 智能自愈方案应运而生。


单机房故障自愈的架构

针对传统故障自愈方案中存在的问题,我们构建了单机房故障自愈整体解决方案。


自愈方案通过抽象、规范处理流程实现单机房故障自愈的自动化,即将止损过程划分为统一的感知、决策、执行三个阶段;同时通过运维知识库解决基础数据、基础设施差异化问题;通过策略框架支持智能化异常检测、策略编排、流量调度问题,同时支持用户自定义策略需求。实现单机房故障自愈的标准化、智能化。



在单机房故障自愈–黎明之战提到的百度网络与业务架构情况,我们将整体流量调度止损架构拆分为 3 层:接入层、服务层、依赖层。



针对这 3 层的监控感知、止损决策与故障止损方式的不同,将止损自动决策拆分为外网止损自动决策与内网止损自动决策。


  • 外网止损自动决策:覆盖接入层。基于外网、内网监控信号;触发外网止损决策器进行止损决策;执行 DNS 流量调度止损。

  • 内网止损自动决策:覆盖服务层、依赖层。基于内网监控、基础监控、业务监控提供的故障信号;触发内网止损决策器进行止损决策;执行流量调度、主备切换、弹性降级等止损操作。

单机房故障自愈的常见问题和解决方案

传统的流量调度自动止损方案存在如下问题:

1 容量风险控制能力不足

【问题描述】


传统流量调度的模式有两种:固定比例模式与容量保护模式。



  • 固定比例模式:按照预先设定的固定预案,一个机房故障,该机房的流量按照预先设定的比例分配到其他的机房。很可能某个机房的容量或剩余机房的总容量不足,切流量后导致多个机房发生故障。

  • 容量保护模式:针对固定比例模式存在的容量风险问题,改进的流量调度方式为执行前判断容量是否充足,容量充足则进行流量调度,否则不进行调度并通知人工介入处理。但此种方案面对的问题是:


  1. 容量仍有 buffer 可以进行部分止损。期望能够在不超过容量保护的情况下进行尽可能的调度,减少对用户的影响。

  2. 即使按照容量进行调度,服务过载仍可能发生,容量数据本身存在一定误差,流量成分的变化以及变更等导致的容量退化,都可能导致原先容量无法完全可信。


【解决方案】


  • 基于容量水位的动态均衡



在流量调度时,对于容量不准确存在的风险,我们划分两条容量警戒线。


  • 安全水位线:流量处于在安全线以下则风险较小,可以一步进行切换。

  • 水位上限:该水位线表明服务的最大承载能力,一旦流量超过故障水位线,很大概率会导致容量过载。


如果安全水位线提供的容量不足以满足止损,那我们期望使用上两条中间的容量 buffer,同时流量调度过程中进行分步试探,避免一次性调度压垮服务。


  • 基于快速熔断的过载保护


在流量调度时,建立快速的熔断机制作为防止服务过载的最后屏障。一旦出现过载风险,则快速停止流量调度,降低次生故障发生的概率。


  • 基于降级功能的过载保护


在流量调度前,如果已经出现对应机房的容量过载情况,则动态联动对应机房的降级功能,实现故障的恢复。

2 业务线止损策略需求差异大

【问题描述】


我们实现了基础的单机房故障流量调度止损算法,但在部分业务线中仍存在较大的需求差异,比如:


  • 分步动态调度需求:业务存在充 Cache 的情况,过程中服务能力降低,需要控制切换速度。

  • 优先级调度需求:产品对延迟敏感,止损时需要优先切到同地域机房;业务服务于多个上游,多个上游的重要程度不同,优先保证重要上游服务稳定。

  • 容量负载计算需求:请求成分不同,不同成分请求带来的容量负载不同。


这部分需求一部分与业务强相关,不具备通用性,另一部分则存在不同产品线需求冲突的情况。


【解决方案】


针对以上问题,我们推出了故障止损流量调度策略开放框架。支持用户根据业务需求自定义策略实现。同时将较为通用的策略开放为插件,使业务线可以根据需求自由插拔策略。



基于以上两点,结合智能运维开发框架(详见 AIOps 时代,你准备好了吗?),单机房故障自愈框架无缝支持不同业务线,使得研发者可以更关注策略本身,而无需关注不同业务线运维模型、底层平台适配成本。

总结

通过单机房故障自愈系列文章,我们详细介绍了单机房故障止损的必要性、准备工作,并构建了基于容量动态分步流量调度的单机房故障自愈框架,实现自动化智能化故障止损。对整体单机房故障自愈解决方案不同阶段的改进总结如下:



若您有任何疑问或想进一步了解百度单机房故障自愈相关问题,欢迎给我们评论、留言!


作者介绍:


运小辰,百度高级研发工程师,负责百度运维智能故障自愈方案相关设计研发工作,致力于降低单机房故障自愈风险、提高故障自愈效率,为业务可用性保驾护航。


本文转载自公众号 AIOps 智能运维(ID:AI_Ops)。


原文链接:


https://mp.weixin.qq.com/s/2UdpQxSkj4iqsD1IzvyrSA


2019-09-10 09:551708

评论

发布
暂无评论
发现更多内容

从自媒体小白到优质KOL,你只差这些个人IP提效神器了!

飞桨PaddlePaddle

百度 BAIDU 自媒体 百度飞桨 飞桨星河社区

新质生产力发展正当时,华为云开年采购季助中小企业“弯道超车”

YG科技

阿里巴巴中国站获得联系方式 API(1688.item_get_contact)

技术冰糖葫芦

API API 编排 API 测试 pinduoduo API

观测云产品更新 | 监控器新增组合检测、新增跨工作空间 ServiceMap 等

观测云

APM 监控

为什么Python语言那么受欢迎呢?

小齐写代码

招聘严峻期我最终拿到5个offer的一些经验分享(附面试题)

测吧(北京)科技有限公司

测试

Take the WiFi card of QCN9274,QCN9074cpu as an example, how to make full use of it?

wifi6-yiyi

Linux cpu wifi

京东广告算法架构体系建设--高性能计算方案最佳实践

京东科技开发者

研发日记|一次 Java 乌龙“内存泄露”排查之旅

AutoMQ

Java 大数据 kafka 云原生 AutoMQ

全新特征平台 FeatInsight 测试平台上线,现已开放抢先体验!

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

平台工程:构建企业数字化转型的基石

行云创新

DevOps 云原生 IdP 平台工程

替代 VMware ,为什么需要重新考虑您的存储?

XSKY星辰天合

大模型基础应用框架(ReACT\SFT\RAG)技术创新及零售业务落地应用

京东科技开发者

最佳实践!云起无垠助力科学技术部信息中心信息系统安全检测分析

云起无垠

AutoMQ 携手阿里云共同发布新一代云原生 Kafka,帮助得物有效压缩 85% Kafka 云支出!

AutoMQ

Java 云计算 大数据 kafka

陌陌技术分享:陌陌IM在后端KV缓存架构上的技术实践

JackJiang

即时通讯;IM;网络编程

AutoMQ 社区双周精选第八期(2024.02.26~2024.03.08)

AutoMQ

Java 云计算 大数据 kafka AutoMQ

RAG一文读懂!概念、场景、优势、对比微调与项目代码示例

百度Geek说

百度AI rag

手把手的使用Toolkit插件在诗情画意中完成AI诗朗诵

华为云开发者联盟

云原生 开发 华为云 华为云开发者联盟 开发插件

产品经理能否带中国AI突破重围?

自象限

AI 大模型

亚洲唯一!京东荣获2024年度Gartner供应链技术创新奖背后的创新探索

京东科技开发者

从基础到代码实战,带你进阶正则表达式的全方位应用

华为云开发者联盟

开发 华为云 华为云开发者联盟

后端搞 Cocos 小游戏开发的三点避坑指北

北桥苏

游戏开发 Cocos 小游戏 CocosCreator

2024年,数字化转型还能怎么转?

天津汇柏科技有限公司

数字化转型 软件开发、 软件定制开发

设计原则 — LOD 最小知识原则

Lemoon Can

设计原则 LOD 迪米特法则 最小知识原则

【论文速读】| MOCK:上下文依赖引导的内核模糊测试

云起无垠

2024年11款最佳企业文档管理系统大公开!

爱吃小舅的鱼

文档管理 文档管理软件

日活3kw下,如何应对实际业务场景中SQL过慢的优化挑战?

派大星

SQL优化 Java 面试题 互联网大厂面试

单机房故障自愈--运维的春天_软件工程_运小辰_InfoQ精选文章