高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

百度网络监控实战:猎鹰一战成名

  • 2019-09-09
  • 本文字数:2149 字

    阅读完需:约 7 分钟

百度网络监控实战:猎鹰一战成名

百度外网质量监控平台猎鹰实时监控百度的外网访问质量,已实现分钟级的外网故障发现和告警,保障每日数百次亿次用户请求的响应。《百度网络监控实战:猎鹰一战成名》系列文章将详细介绍百度面临的典型外网监控场景、需求及百度实现外网监控的原理和百度外网质量监控平台猎鹰的系统架构、核心功能。


百度服务器每天会收到数百亿次来自用户的请求,这些请求在到达百度服务器之前,需要在百度外的公共网络上经过多层网络设备(如运营商接入交换机等)和链路(如运营商骨干网链路、省网链路等)的转发及传输。公共网络中的设备或者链路故障,会导致部分用户无法正常访问百度的服务,影响用户体验。因此,需要对用户到百度的外网连通性进行实时监控,在故障时引导用户流量绕过故障设备/链路,从而提高用户体验。


猎鹰作为百度外网质量监控平台,对整个百度的外网访问质量进行实时监测,实现了分钟级的外网故障发现和告警,同时提供丰富的数据可视化展示,为百度服务的可用性保驾护航,成为百度运维工程师日常工作的必备利器之一。


接下来,AIOps 智能运维将分上、下两篇对百度外网质量监控平台猎鹰进行介绍,本篇主要介绍外网监控概述、外网故障场景以及相关需求。


一 外网监控概述

在之前的文章《百度网络监控实战:NetRadar 横空出世(上)》中,运小贝提到百度拥有数十万台服务器,这些服务器分布在不同地理位置的 IDC 中。当用户访问百度服务的时候,域名解析服务(DNS,Domain Name System)会给用户返回一个 VIP 地址(Virtual IP Address, 百度多台服务器形成的一个虚机地址),然后用户的请求会被转发到这个 VIP 地址上。用户的请求在到达这个 VIP 地址之前,依次会经过用户本地接入设备(比如 ADSL)→用户所在地域的网络运营商接入设备→运营商骨干网链路→百度 IDC 所在地域的运营商接入设备→百度 IDC 的 VIP,如图 1 所示:



图 1 用户访问百度服务的请求示例


用户请求在到达百度服务器之前,经过的任何一条链路或者设备出现故障,都有可能会导致用户访问百度服务的体验受到影响(如延时变大或者访问失败)。如图 1 所示,湖北电信访问 www.baidu.com 时,默认会被 DNS 解析到南京机房电信入口的 VIP 地址。如果南京电信运营商接入设备故障,那么湖北电信用户就无法正常访问了。这时,我们可以将 www.baidu.com 的域名解析映射关系更改到北京机房电信入口的 VIP 地址上,则可恢复用户的正常访问。


因此,准确快速地发现这些外网故障,对于保证用户访问体验的重要性不言而喻。


二 外网故障场景

我们将用户请求在外部网络途经的设备和链路按照它们所在的位置划分为三级:用户侧链路及设备、骨干网链路及设备、百度侧链路及设备,如图 2 所示:



图 2 外网设备及链路位置划分


用户侧的链路和设备主要负责一个省份的网络通信。而骨干网主要负责若干相邻省份的网络通信,骨干网络与省份的覆盖关系由运营商确定。不同位置的链路/设备的故障会表现出不同的现象,具体如图 3 所示:



图 3 外网故障场景举例


外网故障场景


  • 如果用户侧设备/链路出现故障,即用户所在省份的网络设备/链路出现故障,则表现出的现象是该省份到百度机房入口的访问不通畅。

  • 如果骨干网设备/链路出现故障,则表现出的现象是多个省份到百度机房入口的访问不通畅。

  • 如果是百度侧设备/链路故障,则表现出的是全国绝大部分省份到百度机房入口的访问不通畅。


为了便于后文的描述,我们称这三种故障为:


  • 单省份故障(用户侧设备/链路故障)

  • 骨干网故障(骨干网设备/链路故障)

  • 机房侧故障(百度侧设备/链路故障)


三 需求调研

那么对于百度的运维工程师和网络组工程师来说,日常工作中对外网监控系统有哪些通用需求呢?通过对运维工程师和网络组工程师进行相关调研,整理需求如下:


1 真实反映用户到百度 IDC 间的网络访问质量


对于运维工程师来说,他们真正关注的是会影响到用户访问体验的网络故障,因此,真实反映用户到百度 IDC 间的网络访问质量是外网监控系统进行网络质量监测的基础。


2 覆盖全国三大运营商的各个省份


百度服务每天会收到数百亿次来自三大运营商各个省份的用户请求,为了尽可能多地发现用户端到百度 IDC 间的网络问题,监测点应当尽量覆盖三大运营商的各个省份。


3 准确快速地主动告警,确定故障类型及影响范围


当出现网络故障时,需要能够快速检测出故障并进行主动告警,而且需要确定故障类型(机房侧故障 or 骨干网故障 or 单省份故障),以便于采取何种策略进行止损,并且需要确定故障影响范围(即哪些业务线受到影响了),没有受到影响的业务线的运维工程师不需要收到故障告警。同时,为了尽可能地缩短服务受网络故障影响的时间,需要尽可能快地检测出故障。


4 支持不同视角的可视化展示


运维工程师通常情况下只关注与其服务相关的网络质量视图,而网络组工程师通常需要关注全局的网络质量视图,因此需要提供多种不同视角的网络质量视图,让运维工程师和网络组工程师都能够快速地获取到其关心的网络质量视图。


作者介绍:


运小海,百度高级研发工程师,从事网络监控、可用性建设相关工作,负责百度外网监控平台猎鹰、百度内网监控平台 NetRadar 等系统的研发和优化工作。在网络采集、网络异常检测、系统可用性方面有广泛的实践经验。


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


原文链接:


https://mp.weixin.qq.com/s/vrvLb5J5UgtE9l6IvSCj9w


2019-09-09 17:421092

评论

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

Spring Security 介绍中的 servlet 和 reactive

HoneyMoose

【web 开发基础】php 开发基础快速入门 (3)-PHP程序符号标记和程序注释的使用及空白符详解

迷彩

php开源 9月月更 web开发基础

【编程实践】利用Python看看那些QQ好友都在QQ空间发了啥

迷彩

词云图 selenium Python爬虫 9月月更 结巴分词

Java中Interface天天都在写,你知道其背后的原理是什么吗?

wljslmz

Java 接口 9月月更

九月书单

图灵教育

科普 计算机 新书

Python应用之九九乘法表

向阳逐梦

9月月更 九九乘法表的实现 变量和循坏的应用

【kafka异常】使用Spring-kafka遇到的坑

石臻臻的杂货铺

Kafk 九月月更

Java中synchronized关键字到底怎么用,这个例子一定要看!

wljslmz

Java synchronized 9月月更

数据结构第六章查找,期末不挂科指南

梦想橡皮擦

数据结构 9月月更

2022年中国HR SaaS行业洞察

易观分析

HR SaaS

透视星环科技上市:基础工具、技术融合、场景应用三维击穿

易观分析

数据

从URL输入到页面展现到底发生什么?

loveX001

JavaScript

也谈“我们开发者根本不想做运维!”

愚夫一得

DevOps 语言 & 开发 文化 & 方法 技术中台 运维‘

数据结构第七章排序,期末不挂科指南

梦想橡皮擦

数据结构 9月月更

九月书单

图灵社区

科普 计算机 新书

大数据ELK(八):Elasticsearch安装IK分词器插件

Lansonli

ES 9月月更

2022-09-29:在第 1 天,有一个人发现了一个秘密。 给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后, 每天 给一个新的人 分享 秘密。 同时给你一个整数 forg

福大大架构师每日一题

算法 rust 福大大

Python之如何判断闰年

向阳逐梦

9月月更 判断闰年 format格式化字符串

VolareFinance 测试网教程(更新)

鳄鱼视界

物联网平台常见问题与答案汇总

阿里云AIoT

数据 物联网平台 物联网 协议 mqtt

OptaPlanner快速入门-helloworld

OptaPlanner中文

【web开发基础】PHP快速入门(5)-PHP运算符之算术运算符和字符串运算符详解

迷彩

运算符 php开源 9月月更 web开发基础 算术运算符

Python应用之求100以内的奇数和

向阳逐梦

9月月更 变量和循坏的应用 递归求和

leetcode 226. Invert Binary Tree 翻转二叉树(简单)

okokabcd

LeetCode 数据结构与算法

数据结构第五章图,期末不挂科指南

梦想橡皮擦

9月月更

【web 开发基础】php 开发基础快速入门 (4)-PHP常量详解

迷彩

php 常量 9月月更 魔术常量

APISIX是怎么跑起来的

geange

lua api 网关 APISIX 网关 APISIX的源码解析

Java中只有8大数据类型吗?看了本文,你会收获颇丰

wljslmz

Java 数据类型 9月月更

还不了解堆栈和队列吗?数据结构最基础、最重要的概念必须掌握!

wljslmz

数据结构 堆栈 队列 9月月更

VUE 数据分页

HoneyMoose

【云原生 | 从零开始学Kubernetes】十三、k8s的容器探测以及启动探测

泡泡

云计算 容器 云原生 k8s 9月月更

百度网络监控实战:猎鹰一战成名_文化 & 方法_运小海_InfoQ精选文章