监控行业

首页 » 常识 » 灌水 » 如何针对性破解自动化运维落地的18个关键
TUhjnbcbe - 2020/6/6 18:01:00
白癜风专家与您相伴

作者介绍

王洋,某基金公司信息技术部基础架构师,曾就职于蚂蚁金服金融云部门、商业银行IT信息技术部门等。擅长领域:云计算IaaS和PaaS平台规划与建设基础架构高可用、高性能和容灾设计、容器化(Docker)与微服务等等。

不久前,我做过一个关于企业自动化运维落地经验及工具对比的分享和介绍,其中很多场景是我根据实践经验对一线互联网公司和传统行业的做法进行的对比阐述:如何将自动化运维形成一个整体?如何从方法论的角度去理解自动化运维、去建设自动化运维?该文引发很多读者的感触、思考。

本文通过整理运维爱好者们提出的一系列自动化运维落地的具体问题及讨论结果,总结成文,供大家参考学习。

一、自动化运维平台风险

问题1:自动化运维风险如何控制?

一是所有自动化功能模块的本质都是落到代码层面,那么就需要对自动化运维功能的代码进行测试,适用于开发项目管理的流程;

二是对于一些删除或者修改类的操作,需要考虑doublecheck和回滚方案,对于不能回滚的操作不能做(这点其实和手工操作是没有区别的);

三是灰度策略,可以采用灰度的方式来验证自动化操作结果和预期是否一致,如果一致则继续进行,如果不一致则需要进行回滚;

四是监控配合,监控系统能够及时发现有问题的操作并及时报警;

五是权限管理,对于能够操作自动化运维平台的,需要有严格的权限控制;

六是通过API对接的系统,需要有鉴权机制。

问题2:自动化运维平台的安全和权限如何控制?

个人认为应该注意以下几个方面:

对于Web页面操作的通过AD域加角色的方式进行权限控制;

对于接口调用的情况需要有相应的权限模块;

对于运维平台自身,要防止平台在未授权的情况下对生产资源进行删除和修改操作;

定期对平台进行安全扫描,扫描平台自身的漏洞。

二、自动化运维平台规划

问题1:自动化运维的建设应该如何规划?

这个问题没有固定的答案,分几步需要结合具体情况,最终的目的是要实现所有的端到端的交付。一般来说大体可以分为以下几个阶段:

解决目前最急切的痛点(这里一般是指运维团队自身最大的痛点或者挤压已久的没有解决的其他团队提出的问题);

收集IT部门其他组(开发和测试团队)的自动化运维需求并内部排期解决;

在解决了前两者点上的问题之后,将各个点串联起来,消除点与点之间人肉工作;

在初步形成的自动化运维链条上查漏补缺,形成正向反馈链条。

问题2:自动化运维建设中,标准化的规范如何制定?

标准化需要结合公司的具体情况,一般而言有以下几个方面需要进行标准化(供参考):

服务器Pod标准化,一个Pod放几台机器,如何连接;

物理机机型,计算密集型、内存型、IO密集型还是存储型,需要将不同厂商的机型归纳为几个标准机型;

操作系统标准化,包括操作系统版本、操作系统内核参数、盘符路径等;

软件安装标准化,包括软件版本、安装路径、日志路径、日志切割、参数调优等;

软件部署标准化,双节点不能部署在同一台物理机和同一个机柜上,避免主机和机柜级故障。

问题3:在实际的运维环境中,我们该如何制定一套完整的自动化运维管理方案,用来支撑自动化运维工作?

制定自动化运维方案,需要考虑以下几个方面:

明确制定自动化运维方案的目的,这是制定自动化运维方案的指导思想;

明确自动化运维方案的服务对象角色;

明确不同的对象角色在自动化运维过程中的抓手分别是什么;

明确自动化运维方案落地过程中需要注意的安全问题(例如权限细化、调用鉴权、操作审计等);

通过调研的方式进一步了解其他同事的运维需求;

在方案里明确建设自动化运维平台计划分几个阶段,将需求分散在这几个阶段里;

明确将自动化运维方案落地为自动化运维平台时的具体方式(自研、外购还是基于外购进行二次开发);

在自动化运维方案中明确平台在使用过程中的正向反馈流程。

问题4:自动化运维的建设,需要分几阶段进行?应如何做规划?

这个问题没有固定的答案,分几步需要结合具体情况,最终的目的是要实现所有端到端的交付。一般来说大体可以分为以下几个阶段:

解决目前最急切的痛点;

收集IT部门其他组(开发和测试团队)的自动化运维需求;

在解决了前两者点上的问题之后,将各个点串联起来,消除点与点之间人肉工作;

在初步形成的自动化运维链条上查漏补缺。

三、CMDB数据采集问题

问题1:CMDB建设过程中,如何实现自动发现?

CMDB的自动发现一般基于以下几种方式:

通过调用被采集方软件的API接口获取相关信息,例如VMware、EMC存储等;

通过某种协议(公有或者是私有协议),例如SNMP去获取相关配置信息;

通过在主机上执行命令,并对结果进行处理,例如抓取主机上中间件的信息;

通过执行中间件的命令来获取信息。

自动化发现一般是通过以上几种方式的组合来实现自动发现的目的。

问题2:自动化运维的建设中如何选择CMDB自动收集数据?

这个问题有点大了,具体到数据收集这个点上而言,CMDB的数据要想收集全面,需要从两个方面去考虑:一是CMDB采集工具自身的自动化采集能力,二是有些数据需要通过流程的方式来督促人工录入,例如业务系统名称、业务系统运维负责人、开发负责人、测试负责人这些信息自动采集工具是采集不到的,需要人工维护。

如果需要建设CMDB系统,有三种思路:

完全自研,这就要求团队的研发能力比较强,并且有人对ITIL的流程比较了解,自动采集实现较慢;

直接采购商业的CMDB产品,好处是快速上线、自动采集能力强,缺点是有些需求可能无法直接满足,需要定制开发;

基于开源的产品做二次开发,例如基于IOP,但是自动发现能力还是要自己实现,优势是有一个基本可用的框架。

问题3:如何同时保证CMDB数据的实时性与一致性?

实时性:保证CMDB数据的实时性需要依赖CMDB工具的自动化采集能力;

一致性:一致性需要流程控制和定期的数据审计操作,数据审计操作可以借助CMDB平台的能力来实现。

四、运维工具选型

问题1:自动化运维工具选择时,应该对哪些因素进行考量?

在选择自动化运维工具时笔者认为应该从以下几个方面考量:

自动化运维工具的成熟度,即在业界的受众面。这里无论是对商用的还是开源的都可以从这个角度进行评估;

自动化运维工具的功能能否满足运维需求;

如果是选择开源的自动化运维工具还要考虑工具的技术栈和公司人员的技术栈是否匹配;

自动化运维工具在安全方面是否有良好的支持;

自动化运维工具在工作过程中对主机性能的影响,尤其还要测试在并发大的时候,对运维工具平台自身服务端的压力;

还要考虑选择的自动化运维工具是否满足公司后续技术栈的发展需要。

问题2:自动化运维建设中的运维工具的规划和集成问题?

目前而言,大多数公司的确会存在这样的问题。在我看来问题之所以会存在,最主要原因是在前期缺乏一个宏观的整体规划,各个组织各自为*,没有统筹管理。

那么对于已经存在的现状要如何处理呢?在我看来要做以下几件事:

需要成立一个治理小组,成员包括各个存在系统的Owner,然后由一位领导担任组长;

各个系统Owner阐述当初建设这个系统的背景以及该系统现在能解决什么问题、还有什么问题没有解决;

依据第二步的讨论结果进行合并工作,将能合并的系统进行合并,不能合并的但是功能有重叠的进行数据打通,统一进行输出;

后续新建系统时需要由治理小组统一规划,避免类似事情再发生。

问题3:自动化运维产品如何选择?

自动化运维涉及的面非常广,一般大家谈到的包括资源的自助服务、监控、调度任务、应用发布等。那么在选择产品的时候需要考虑以下几点:

梳理清楚自身的痛点,即目前最需要解决的问题是什么;

规划:计划在3年内做到什么样的效果;

所选自动化运维平台的产品成熟度(同行业案例多少);

自动化运维平台的开发程度,能否进行二次开发或者是支持功能拓展;

平台的技术框架是否是主流的技术框架;

通过试用来测试和本地实际情况的结合程度。

五、其他

问题1:AIOps和自动化运维是什么关系?

AIOps是自动化运维的一部分,是这几年随着AI火爆后开始出现的领域,自动化涉及运维操作的方方面面,AIOps仅仅是将AI技术应用到现有的Ops平台上,一般同时都会结合大数据技术一起使用。

问题2:是否可以结合当前的一些先进技术,如云计算、大数据等,使得自动化运维更加高效、智能?

结合云计算能力,可以快速扩容自动化运维平台的服务能力;结合大数据和人工智能技术,可以使自动化运维平台提供更强大的功能,就是现在很多人开始

1
查看完整版本: 如何针对性破解自动化运维落地的18个关键