【FCon上海】与行业领袖共话AI大模型、数字化风控等前沿技术。 了解详情
写点什么

智能运维基础-运维知识库之 ETL

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

    阅读完需:约 7 分钟

智能运维基础-运维知识库之ETL

AI 大模型超全落地场景&金融应用实践,8 月 16 - 19 日 FCon x AICon 大会联诀来袭、干货翻倍!

在百度智能化运维的持续演进过程中,我们在逐步建设以智能运维机器人为核心的运维能力,将其应用于故障自愈、根因定位、智能变更等运维场景中。而建设以智能运维机器人为核心的运维能力,最基础的工作是要先建立运维的世界观(环境模型),以机器人的视角来理解运维世界、感知系统状态、获取环境变化等。


在传统运维模式中,运维数据分散在不同的系统中,这些运维数据存在几个问题:访问方式不一致;数据术语、概念、模型不一致;系统间没有数据关联。


这些问题使得我们日常的运维工作,经常需要理解、处理各种不同的数据,导致运维成本高,效率难以提升。因此希望建立运维知识库统一运维工作中的语言,对运维工作中的对象进行统一建模,收集并转录日常运维工作的资源与操作,为日常运维工作提供一种『书同文,车同轨,行同伦』的基础。(PS:借鉴自秦始皇)


本文主要介绍百度云 Noah 智能运维产品,在构建运维知识库过程中的思考。

运维知识库中的数据

运维知识库中包含了元数据(Meta)、状态数据(Status)、事件数据(Event):


  • 运维元数据(Meta)对运维实体世界进行建模,包括运维实体的属性、组成以及关联关系等;

  • 状态数据(Status)反应系统的状态,表征服务的存活性、资源消耗或能力等;

  • 事件数据(Event)描述对系统做的变更、服务状态的异常等事件。


ETL 系统架构

运维元数据、状态数据、事件数据分布在几十个不同的系统中,随着业务的增长和相关系统的不断增加暴露出了以下几个问题:


  • 数据分散,访问方式不一致:同一类型的数据分散在多个不同的系统,各系统提供不同的访问入口;

  • 数据术语、概念、模型不一致:各系统使用的术语、概念、模型各不相同,例如“应用”这个概念,每个系统或工具对于 Application 的理解都不尽相同;

  • 系统间数据没有建立关联:例如部署、监控和路由服务等核心场景在运维数据上没有打通,表现为部署平台、路由服务、监控系统所使用的服务管理机制各不相同,三个系统间的数据难以关联,且无联动性。


因此,依托『书同文』的理念建立运维知识库,提供一个统一的运维数据管理系统,来管理运维工作中的公共基础数据,打通系统间的数据关联,使这些数据能够遵循统一的模型被共享和使用。


为了使这些数据能够遵循统一模型,我们制定了各类数据的模型(Schema),采用 ETL 机制从各系统获取(Extract)数据、转换(Transform)成统一的模型、并存储(Load)在知识库中,其架构如图所示。



这些运维数据在建设时根据业务对数据时效性要求的不同,分为以下三种:


  • 离线数据建设,例如用于运维变更效率指标统计等相关的数据;

  • 近线数据建设,例如故障诊断过程中依赖的数据;

  • 实时数据建设,例如智能故障自愈、智能流量调度相关的路由数据等。


对于上述不同的数据我们采用不同的 ETL 方式,分别是:


  • 拉 (Pull ETL),周期性从数据源拉取数据,适用于离线数据的建设;

  • 推 (Push ETL),数据源主动推送变更的数据,适用于时效性较高的近线数据建设;

  • Federation (Lazy ETL),在查询时从数据源获取数据、按照 Schema 转换后并返回,适用于实时数据建设。

1Pull ETL

Pull ETL 提供了两种数据接入方式:自适应 ETL、基于 SDK 的自定义 ETL。


自适应 ETL,是我们针对适用范围较广的数据源(如百度名字服务 BNS、Noah 监控平台、Noah 部署平台等)开发的,用户仅需配置好 ETL 规则,自适应调度器会自动解析规则,并将数据按规则接入运维知识库。


基于 SDK 的自定义 ETL,是我们为其他数据源提供的 ETL 方式,用户基于我们提供的 SDK 可以开发各种数据源的 ETL 脚本,配置好调度策略,通用调度器根据调度策略执行 ETL 脚本,即可将数据接入运维知识库。


2Push ETL

Push ETL 采用消息队列(MQ),来支持时效性高的数据建设。数据源发生变更时,需要将变更消息推送至 MQ,运维知识库订阅、消费这些消息,并转换、存储数据。


如下图所示,用户基于 SDK 开发 Push ETL 脚本,调度器执行脚本并保证其一直处于执行状态。数据源推送变更消息至 MQ,Push ETL 脚本订阅 MQ 中的变更消息,将变更的数据转换成统一的模型并存储在知识库中。


3Lazy ETL

Lazy ETL 是为实时数据查询而提供的 ETL 模式。在运维领域我们需要看到系统的某些元数据/状态的实时变化,比如实时路由数据、监控系统的时序数据等。Pull ETL 由于是周期性的执行,因此在时效性上无法满足需求;Push ETL 需要数据源进行改造,有一定的成本,且变更消息传输存在一定的延迟,无法实时查询到最新数据。


因此,如下图所示,我们采用另一种经典方法 Federation(Lazy ETL)来实现数据集成:即运维知识库处理用户查询时,直接调用接口去访问原始数据源,按 schema 转换后,返回给用户。


总结

本文主要介绍了百度云 Noah 智能运维产品中的运维知识库之 ETL。针对不同业务场景使用的数据,提供不同的 ETL 方式。针对离线数据建设,采用 Pull ETL 周期性从数据源获取数据,此外综合考虑数据接入收益和成本,提供了自适应 ETL 以及基于 SDK 的自定义 ETL;针对时效性高的数据建设,采用 Push ETL,数据源主动推送变更到运维知识库中;针对实时数据建设,采用 Lazy ETL,在查询时回源获取数据并进行转换。有对运维知识库和 ETL 感兴趣的同学,欢迎留言探讨。


作者介绍:


H++,百度云高级研发工程师,负责百度云 Noah 智能运维产品元数据建设、时序数据存储相关研发工作,在分布式系统架构、高性能数据服务、数据清洗等方向有着较为广泛的实践经验。


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


原文链接:


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


2019-09-10 17:232616

评论

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

鉴释人物 | 专访产品开发总监吴翔:DevSecOps的竞技之道

鉴释

敏捷开发 应用安全 软件安全 软件质量与安全

性能测试误差对比研究(一)

FunTester

性能测试 接口测试 测试框架 误差分析

第八周作业——知识星球内容管理功能

小夏

产品经理训练营 邱岳

鉴释人物丨专访首席技术官陈新中:三十年磨一“鉴”, 打造静态代码分析行业标杆

鉴释

编译器 静态代码分析

论工作几年深陷业务代码的程序员如何实现自我提升

北游学Java

Java 程序人生

直播回顾丨鉴释首席架构师刘新铭为您解读“第一性原则”

鉴释

软件开发 代码质量 软件质量与安全

如何利用FL Studio中文版做出失真效果

懒得勤快

性能测试误差对比研究(二)

FunTester

性能测试 压测 接口测试 测试框架 误差分析

鉴释人物丨专访首席科学家李隆: 重一步业务逻辑验证,省百步漏洞补缺

鉴释

业务逻辑 漏洞修复

揭秘百度微服务监控:百度游戏服务监控的演进

百度开发者中心

云计算 微服务 最佳实践 方法论 云原生

RTC月度小报5月丨教育aPaaS灵动课堂升级、抢先体验VUE版 Agora Web SDK、声网Agora与HTC达成合作

声网

月度小报 行业深度

我们三岁啦!

鉴释

C/C++Linux服务器开发高级架构师/Linux后台开发架构师丨高级进阶

Linux服务器开发

架构师 Linux服务器开发 Linux后台开发 后台开发架构师 服务器开发架构师

架构实战训练营模块三课后作业

Clarke

如何使用 Kind 快速创建 K8s 集群?

尔达Erda

开源 云原生 k8s PaaS kind

百度前端三面面试题全部公开,三面的最后一个问题令我窒息

前端依依

百度 面试 大前端 经验总结

Linkflow签约未卡VETRESKA,精细化运营赋能品牌成功破圈,开启种草新模式

Linkflow

我们该如何应对日益增长的安全债务风险?

鉴释

应用安全 代码安全

工程师文化落地的几点思考

baiyutang

敏捷 敏捷开发 精益开发 精益思想 敏捷管理

MES、ERP和低代码下的智慧工厂

优秀

低代码 ERP mes

fil价格今日行情?2021年fil币预估价格多少钱一枚?

区块链 分布式存储 IPFS fil价格 fil预测

创业邦专访丨兼容国内外市场的代码分析软件,鉴释科技帮助企业减少bug发生率

鉴释

创业公司

即时通信 IM 产品怎么选? 本文超详细解说,马住!

腾讯云音视频

CloudQuery 如何实现云上数据导入导出

BinTools图尔兹

数据库 dba 国产数据库 运维开发

图灵奖得主Judea Pearl谈机器学习:不能只靠数据

百度开发者中心

机器学习 最佳实践 方法论 文化 & 方法 其他

51CTO专访|鉴释首席架构师刘新铭:让软件开发更安全、更高效

鉴释

编译器

2021全国人工智能师资培训走进北理工,百度飞桨助力高校教师提升AI能力

百度大脑

人工智能 高校

鉴释×RT-Thread丨2020 RT-Thread开发者大会精彩回顾

鉴释

操作系统 物联网

认识容器,我们从它的历史开始聊起

华为云开发者联盟

Docker Kubernetes 容器 进程

鉴释×中科院计算所丨OS2ATC 2020精彩回顾

鉴释

开源 操作系统

提升源代码安全管控,从源头保护敏感数据

鉴释

数据安全

智能运维基础-运维知识库之ETL_软件工程_H++_InfoQ精选文章