百度云企业级运维平台——NoahEE

文章概览

过去的文章为大家介绍了百度云智能运维的方方面面,从监控、部署等传统的运维技术到智能异常检测、故障自愈等智能运维技术,这些运维基础能力和黑科技,是十年来百度工程师对技术孜孜不倦求索的结果,也见证了百度运维十年间的创新历程。很多同学在看了这些文章后,都在想如何把这些领先的运维技术与理念用到自己的工作中,但苦于建设运维平台不是一蹴而就的,成本也让人望而却步,于是不少同学都在希望我们能够有一个产品的形式输出这些技术,方便将这些前沿技术运用到自己的工作环境中。

在分析了各行业的运维场景与需求,结合百度历年来运维的经验与技术沉淀,并经过运维团队的精心打磨后,今天我们可以很骄傲的给大家呈现这个百度的运维产品企业版 – NoahEE。

在介绍NoahEE之前,有必要说一下百度内部的统一自动化运维平台Noah。Noah来源于圣经中“诺亚方舟”的故事,我们用这个名字来寓意能够避免灾难,稳固而坚实的平台。作为一系列运维系统的集合,Noah包括了服务管理、机器管理、资源定位、监控报警、自动部署、任务调度等等,已经服务了百度数年之久。我们推出的NoahEE(Noah Enterprise Edition)脱始于Noah,为企业提供了一站式运维解决方案,覆盖了包括日常的故障管理和变更管理中典型的运维场景,致力于为政企、金融、教育等行业提供业务可用性保障、提升运维效率。

图1  NoahEE概览

接下来,我们把这艘诺亚方舟分解开来,近距离观察一下这艘船的方方面面。

服务管理

我们首先介绍服务管理是因为服务管理是整个运维工作的基础,也是NoahEE这个平台上各个系统能够进行批量自动化操作的关键。服务管理这个概念的出现,是随着业务快速膨胀的必然,其要解决的主要问题是一个“量”,或者说“规模”的问题。在早期业务较为简单时,一个服务可能部署在几台甚至一台机器上,进行变更等运维操作简单直接,登录到机器上人工操作就好了。随着业务的发展,分布式应用与服务的广泛使用,我们越来越多的面临着运维场景与运维执行之间的脱节。

举个例子,今天17:00开始对X机房的地图导航模块进行升级。对于产品研发的同学来说,关注点是语义明确且更具描述性的“运维场景”;而对于运维人员来说,关注点是此次升级操作所涉及的机器等资源在哪里。在业务规模发展到一定程度后,运维工作还停留在早期人工或脚本方式执行的阶段时,这样的差异非常频繁的发生。

在实际的运维中,还有更多的因素需要考虑,例如机器是否会分配给不同部门(资源的隔离)?权限又该如何控制?随着规模变大,人力成本等管理成本上升,然而效率低下、可用性不升反降等等都是非常可能出现的问题。百度对于这个问题给出的答案是,必须先要解决资源组织管理问题。简单的说,服务管理要解决的最核心问题就是如何对资源进行有效组织管理与定位:

图2  解决规模带来的问题

在服务管理这个地基打好后,我们再来回顾下上面的例子。这个例子中,地图研发的同学就可以在运维平台中选中导航的模块进行升级,运维平台会通过服务管理来定位此次升级操作需要影响的机器并进行批量的操作。NoahEE中的所有运维系统,都以服务管理为基础来进行运维操作,例如在监控系统中,我们可以对导航模块(而不是单台机器进行操作)添加一些指标采集任务,并在一定条件达成时报警。服务管理通过对资源合理的组织,极大的简化了运维操作,提升了运维效率。

资产管理

在机房里,各种各样的服务器、网络设备和安全设备7x24小时的运转,为我们的业务提供了硬件保障,是企业的重要资产。各种设备的物理损坏、升级、新增、搬迁等等都在考验着机房运维人员的能力。怎样维护这些资产并记录信息,是个很重要的问题,搞得不好,这些资产可能变成运维人员的“包袱”,越多越头疼。

对这些设备的运维操作,通常都涉及不少的物理操作,比如说更换损坏的硬盘,增加内存条等等。这里涉及到几个要解决的问题:

故障如何及时发现?发现后由谁来进行修复?

物理操作维护怎样反应到系统里?

不同角色(职责)的运维人员之间如何协同操作?

对于故障处理与修复,NoahEE通过故障自动发现与工单流程解决了上面的问题。系统自动探测故障放入故障池,并建立故障工单,由相应的人员进行操作。另外,NoahEE提供了不同的工单流程覆盖了日常机房运维中的操作,从设备采购入库、上架、机架变更,直到设备下架、出库全生命周期覆盖,做到所有运维操作记录可追溯。有了资产管理,运维人员可以在服务器完成入库、上架工单后即可在服务管理中看到该服务器并进行管理,无须任何其他操作。一图胜千言,我们看看资产管理的特点:

图3  资产管理

部署管理

应用部署一直是运维工作中的重点,一般来说,我们面临的问题有:

批量部署难,怎样定位目标机器?如何快速部署?

灰度测试难,怎样通过灵活的部署方式,先进行小流量线上测试,待效果达到预期后再扩大部署?

回滚难,发现问题后怎样回滚?

上面的第一个问题,实际上在服务管理中已经解决了,也就是说服务管理帮我们完成了资源定位工作。其他的问题,NoahEE的部署管理模块通过“分级发布”来解决。在部署管理模块中,我们可以方便的定义并发度、部署步骤、影响范围以及暂停操作等,在部署的过程中发现问题即可暂停并回滚至之前的状态。除了部署等操作,部署管理模块还提供了批量执行命令等操作(比如批量启停某一服务)。如图来总结部署系统的能力:

图4  部署管理

监控管理

在任何工作里,信息掌握的全面与否往往关乎到工作的成败。“知己知彼百战不殆”这句话说的就是这个道理。运维工作中,监控系统就是这个让我们做到这点的关键。软硬件是否工作正常,出了问题是否能及时发现与报警,甚至是对异常事件等进行提前预测,都仰仗监控系统。在NoahEE的监控管理模块中,你可以期待全面的各种监控相关功能,包括了采集Agent、强大的汇聚计算与指标派生、灵活的报警机制、高效的时序数据库(TSDB)等等。除了这些以外,考虑到企业中更复杂的监控场景,例如通过SNMP/IPMI等标准协议对于网络设备等进行数据采集,报警通知方式可以自定义,支持和企业内通讯软件例如Lync等进行整合。NoahEE的这些监控能力,可以让你全面掌握运维工作的方方面面,各种问题洞若观火。

一张图简单地将NoahEE监控模块的特点总结一下: 

图5  监控管理

今天介绍的NoahEE文章里,我们只介绍了基础运维技术相关的产品,当然除此之外,我们还提供高级版的智能运维产品,相信将基础版运维平台与自动异常检测、辅助根因诊断、智能故障自愈等AIOps技术结合,会让运维更上一个台阶,为业务带来更大价值。

总  结

作为一个自动化运维平台,NoahEE的功能全面且易于使用,在这篇文章中无法面面俱到的详细阐述,大家可以通过访问我们的运维网站http://aiops.baidu.com来详细了解我们的运维产品。网站中除了有NoahEE运维平台的介绍外,还有我们智能运维产品的相关介绍,欢迎大家访问该网站并联系我们试用各运维产品。

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

棒棒哒

0