写点什么

百度自动化运维的演进(一):聊聊百度自动化运维

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

    阅读完需:约 6 分钟

百度自动化运维的演进(一):聊聊百度自动化运维

百度运维部于 2008 年正式成立,截至目前共打造了三代运维平台,百度的运维技术也经历了 web 化、开放化、智能化三个阶段。《百度自动化运维的演进》系列文章将分上、下两篇介绍百度自动化运维的演进历程,本篇主要介绍百度运维部对运维、自动化运维的理解与百度自动化运维评价标准,下篇则根据时间脉络介绍百度的三代运维平台。


注:本文所讨论的上下文内,特指互联网服务的运维,而非 IT 系统、IDC 等的运维,或者更具体地,指的是应用运维。

什么是运维

运维,从字面来看,可以将运维分为两部分:

1 运

运,一般的理解是运行,将服务运转起来,以满足用户和客户的需求;进一步的含义还有运筹,即统筹安排资源,提供最优解决方案,以达到效益最大化。

2 维

维,一般的理解是维护,维持并监护服务的运行过程,包括应对服务管理请求和事件;进一步的含义还有维系,或者说连接,特指其起到的承上启下和枢纽作用。


百度百科给出了非常明确的定义: 其核心目标是将交付的业务软件和硬件基础设施高效合理的整合,转换为可持续提供高质量服务的产品,同时最大限度降低服务运行的成本,保障服务运行的安全。


在百度运维部,我们对运维的理解,简单概括就是:确保大家高质量、高效率、低成本地使用百度产品。

什么是自动化运维

什么是自动化运维,答案有很多。这里,我尝试从另外一个角度,什么不是自动化,来尝试回答下:

自动化是达成目标的手段

首先,自动化不是运维的最终目标,而是达成目标的手段;通过自动化我们可以提高服务的可用性,可以加速服务的迭代,可以降低服务运行所花销的成本。

自动化是解决方案和工程

其次,自动化不是将运维人员的工作、行为进行简单封装和串联;而是通过总结、提炼、抽象形成的系统化的解决方案和工程(Engineering)。

自动化实现方法是多样的

再次,自动化的实现方法,不是一成不变的:一方面,我们运维的服务、我们支持的产品和用户都在不断变化(这就是互联网啊);另一方面,我们的自动化实施对象也在随技术能力的发展而不断演进(从自动化执行命令、到自动化感知故障、再到自动化决策规划)。

百度自动化运维的实践历程

百度运维部,于 2008 年正式确立,而运维工程师这个职位,出现得更早些(大概在 2004 年~2005 年),从一开始,运维部就在朝着自动化这个方向努力。

百度自动化运维标准

接下来给大家介绍的内容,是结合了我们多年的实践经验,并参考了 SAE(美国汽车工程师协会)针对自动驾驶所定义的分级标准得来的自动化运维分级标准。


我们也将其分成了 L1~L5 共 5 个层级,不同层级间的区别主要体现在如下 4 个方面的职能是人工还是运维系统实现的:


执行能力(Execution)


这很容易理解,将指令发送到目的端(服务器、设备等)执行并获得执行结果。执行能力是否由系统完成,是最基本的自动化要求,将其定义为 L1(工具辅助的自动化) ~ L2(部分自动化)。


感知能力(Perception)


包括感知服务的运行状态,感知服务的变更需求甚至故障事件,也可以称作理解。感知能力由系统完成后,结合一些固定的条件规则来决策并执行,可以达成 L3(有条件的自动化)。


规划能力(Planning)


根据其对待处理的需求、待解决的问题的感知,以及对运维对象的认知(知识),自主做出解决方案(规划)并在调度控制执行过程中,根据目标和运维对象的状态反馈来适时调整执行规划。规划能力由系统完成后,并由系统辅助人来进行知识、经验的沉淀以补充系统的扩展性,可以处理全部人类已知的运维工作,即 L4(高度自动化)。从 AI 角度看,可以认为到了这个层次的自动化运维系统具有了一定的弱人工智能。


主动学习能力(Proactive Learning)


主要指的是不依赖人,系统可以自行总结、提炼、抽象形成知识和经验的能力。至此,全部的运维工作都可以交由自动化运维系统处理了,即 L5(完全自动化)。从 AI 角度看,可以认为到了这个层次,称之为强人工智能了。

小结

从全局视角审视自动化运维的若干层次及其之间的关系,可以得到下面这张表格:



作者介绍:


运小皮,百度资深运维工程师,负责百度智能运维平台的设计和实施。曾负责网页搜索、移动搜索产品运维和服务高可用、持续部署等技术方向。


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


原文链接:


https://mp.weixin.qq.com/s/gFdz6tdnpw2ICUqNCC-DnA


2019-09-09 14:052177

评论

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

Kubernetes手记(8)- Service 配置清单

雪雷

k8s 6月日更

又一个重量级的分布式链路分析的轮子

代码先生

elasticsearch ELK 分布式链路 OpenTelemetry Data Prepper

MySQL基础之九:子查询

打工人!

myslq 6月日更

记一次差点跑路的 RabbitMQ 运维经历

看山

运维 RabbitMQ 删库 6月日更

区块链赋能新能源汽车新业态——车电分离

CECBC

被勒索一月后比特币赎金被追回,现在价值几何?

CECBC

明晚Django组队学习就要开始了

IT蜗壳-Tango

6月日更

Go http 包详解

Rayjun

Go 语言

【21-3】Zabbix 重置 Admin 密码

耳东@Erdong

zabbix 6月日更

Windows 使用 PowerShell 来管理另外一台 Windows 机器

HoneyMoose

周小川:一些加密货币已经不太可能再回到支付领域

CECBC

【LeetCode】完全平方数Java题解

Albert

算法 LeetCode 6月日更

如何拆分大型单体系统为微服务

Zhang

微服务

小型电商微服务架构拆分

Simon

架构实战营

沿着“云云协同”的桥梁,奔赴全面云化的产业之海

脑极体

【译】是时候了解 CSS 逻辑属性了

KooFE

6月日更

Java 并发编程——volatile 关键字解析

Antway

6月日更

Python——列表元素的排序

在即

6月日更

NQI国家质量基础设施“一站式”公共服务平台开发建设

源中瑞-龙先生

开发 NQI 质量基础设施“一站式”

三步教你编写一个Neumorphism风格的小时钟

空城机

JavaScript Vue 大前端 6月日更

JAVA对象直接输出的打印结果是什么?

加百利

Java 后端 字符串 6月日更

并发王者课-黄金1:两败俱伤-互不相让的线程如何导致了死锁僵局

MetaThoughts

Java 多线程 并发

【Vue2.x 源码学习】第十一篇 - Vue的数据渲染流程

Brave

源码 vue2 6月日更

读深入ES6记[五]

蛋先生DX

ES6 6月日更

kubelet分析-pvc扩容源码分析

良凯尔

Kubernetes 源码分析 kubelet Ceph CSI

面试系列-4 hash应用场景分析实践

李阿柯

php 面试 Redis 核心技术与实战

动态规划电路布线问题(Java代码实现)

若尘

数据结构 6月日更

JavaScript学习(一)——简介

空城机

JavaScript 大前端 6月日更

MySQL 中的反斜杠 \\,真是太坑了!!

xcbeyond

MySQL 6月日更

Windows PowerShell ISE 是什么和 PowerShell 有什么区别

HoneyMoose

22 图 |M1 和 Docker 谈了个恋爱

悟空聊架构

Mac M M1 Dock 6月日更 dokcer

百度自动化运维的演进(一):聊聊百度自动化运维_软件工程_运小皮_InfoQ精选文章