国美云运维自动化实践

一、 自动化理念

做好自动化运维在我看来是有两个重要抓手:流程和工具,做好这两点基本就可以将自动化运维顺畅跑起来。总结起来是:流程梳理好,工具是手段。

我们都知道罗马不是一天建成的,所以我们在建设运维自动化平台时也要遵循循序渐进的原则,但大方向要清楚,互联网讲究敏捷开发,好产品是不断迭代出来的。

放一张蓝图,朝着目标前进!

图 1 运维自动化概貌

二、 自动化实践

我挑选了几个典型产品给大家做分享。

1. CMDB

1.1 CMDB的意义——降低运维管理成本

现在很多公司互联网公司不惜投入重金建设自己的CMDB,那为什么要这样做呢?早期的各个团队维护自己的数据已经很稳定而且比较灵活,引入CMDB及ITIL的概念,不但会打破原有的操作习惯,而且在系统建设初期会有大量的数据导入和使用习惯切换成本。我觉得这其实是权衡现金系统理念的成本和收益问题。公司早期的各个团队维护自己数据,可以较好的满足业务需求,但当数据量越来越大,业务越来越复杂,数据管理成本是急速上升的。这时候在使用传统的运维数据管理方式,恐怕很难支持业务发展。 

图 2 数据管理成本

1.2 CMDB定位

国美云对CMDB的定位是数据中心运维数据库。运维公共配置信息存放在CMDB,其他子系统维护特定业务数据,但与CMDB信息有强关联。 

图 3 国美云产品 1.3 CMDB建设

CMDB数据来源主要分两种,人工录入和自动发现。 

图 4 CMDB数据来源

从存储数据来看,包括以下方面:

图 5 CMDB存储数据

主机数据建设

主机管理模块,用户可以通过综合搜索功能快速快速查询相关信息,具备服务器、网络设备录入和自动发现功能。

应用数据建设

建立服务树,确立人——应用——机器的关系,将人和项目进行关联,项目与资源关联。

资源数据建设

包括网段管理、机房管理、应用管理、机型管理,从IDC、机柜到服务器、网络设备等硬件信息再到网段、IP、操作系统等软件层次都纳入cmdb统一管理,以此作为云平台的数据中心,做到数据一致性,并对外提供数据服务 。

IDC 机柜视图: 

图 6 机柜视图

1.4 数据消费

数据消费是CMDB最大的价值所在,CMDB的目的不是为了建立大而统一的数据仓库,而是如何将收集来的数据进行消费,并在消费的过程中逐步完善数据。以下是一些实践应用:

1.与堡垒机联动,应用增加机器时自动对负责人授权

2.与负载均衡系统联动,实现灰度发布

3.与监控系统联动,通过修改机器状态打开、关闭报警,方便维护或做变更,并通过汇聚监控数据对应用集群的资源利用率产生报表

1.5 问题与挑战

1.5.1 数据准确性维护,数据的非正常变更 相信人or相信程序?

可以说数据准确性是CMDB的最大难题,如何提高数据的准确性呢?有效的方法就是通过自动检测和人工审核,另外还需要建立一些标准,比如运维标准来禁止非标操作。

对于很容易判断对错的数据来说,检测脚本可以自动订正数据,比如宿主机上资源剩余量。有些则需要人工确认后才可以更改的,比如IP的探测,有些IP被不守规矩的人配置了但没在CMDB标志,探测到IP通后需要人工介入才知道具体是哪个应用使用。