中国领先的IT技术网站
|
|

IT运维人员之痛 如何通过自动化进行系统化解决?

本文作者韩晓光,现在新华网从事运维工作。他详细介绍了IT运维人员的六大工作痛点,通过哪些自动化方法得以系统化的解决。

作者:韩晓光来源:StuQ|2015-12-14 16:42

Tech Neo技术沙龙 | 11月25号,九州云/ZStack与您一起探讨云时代网络边界管理实践


大家好,我是韩晓光,现在新华网从事运维工作。很高兴与大家交流探讨运维工作。

我今天分享的主题如下:

IT运维人员之痛

1.工作繁琐:采购设备软硬件,上架贴标签,系统环境软硬件部署,统计核实设备信息、复核系统变更情况,搬迁设备,调优系统……如此工作,日复一日,年复一年,会让人感觉无始无终。

2.鸭梨山大:各种繁琐工作交织在一块,在有限时间、精力和繁重工作情况下,我们倍感鸭梨山大。尤其出现各种运维故障时,系统上线、调优、升级、恢复等特殊环境下,我们不仅仅是冷静地快速解决问题,还要面对背后一帮大佬的监察盘问……

3.设备系统故障:设备系统,尤其是过保的硬件设备,很热容易出故障。机房的温度,湿度,业务的读写频繁度,业务人员野蛮地使用,各种因素都会导致设备系统意外故障。意外就是意外,往往出现在不恰当的时间、地点。经常会让运维人员莫名郁闷。

4.熬夜加班:有没有别人节假日团圆happy,你却在苦逼的加班熬夜。有没有别人吃喝畅聊时,你却在角落里苦逼的远程vpn操作,有没有三更半夜像特务一样起床打开电脑操作,低声细语的频繁打电话?有没有……?反正我都有……

5.IT消防员:我们就是IT消防员,我们的最高境界就是无我境界,大家都很舒服时,都想不起来我。一旦想起来我,可能IT环境出问题了......我们只有硬着头皮去结尾,牺牲我一个,幸福一大家。

6.背黑锅:运维人员有天生背黑锅的宿命。当你找不出别人的问题时,那就只能背黑锅,或许找出问题,也可能一起背黑锅。任何行业工作都有其委屈尴尬的一面,背黑锅是运维人员成熟历练的必经之路。

运维体系是运维的基础和核心。通过运维体系的构建及完善,使我们的运维做到稳定可靠、准确完备和规范科学。

如何解决运维之痛

人、事、物、流程这四个方面便可以很好地将运维体系进行解构,它们彼此互相作用,共同构建了一个完整实用的运维体系。下面列举了这四个方面各自的含义及相关内容。

1.人:例如完善岗位职责与职业发展、提高团队技术水平、完善技能分享与培训、完善团队绩效考核、规范工作行为规范等。目的是要建成一支工作高效、技术水平高、团结稳定、有职业素养的运维团队。

2.事:例如做好日常基础运维工作,保障好生产业务运行。不断探索新的运维理念与技术,探索优化系统架构。具体可以分为几大块,例如运维流程管理,资源架构规划,应急与故障处理,监控与优化,安全与防护,项目及日常工作等等。目的是要明白运维做什么正确的事,怎么正确地做事,做事有章法,稳定高效能。

3.物:主要是如何管理好系统运维所涉及的各种资源。例如机房环境、办公设备、服务器、网络设备、操作系统、应用软件、工具等各种软硬件资源。目的要使各类资源配置管理妥当,清楚资源属性,知道从哪来,现在哪,要去哪。使得物尽其用,物有所值,安置妥当。

4.流程标准:运用流程标准将上述要素(人、事、物)有机地结合,有序科学地流转、高效稳定地运行。例如资源规划与采购,各种标准规范、项目规范、软硬件配置部署规范、安全制度、工作交接等等。

通过实施运维自动化,能够很好贯穿人、事、物、流程标准。运维体系的好坏影响运维自动化的实施执行,反过来,运维自动化也会推动运维体系的建设。

面对成百上千的机器,人工手工运维显然是不现实的,这个时候就凸显自动化运维的优势了。

自动化运维分担了我们很多的工作压力,将重复、乏味的工作交给程序去做。既高效又避免人为错误,帮助我们科学有序的管理我们的设备,系统及业务。

标准规范与自动化是当前主流运维成熟进阶的必经之路。流程标准很重要,必须要执行与持续完善,这是运维自动化以及公司运营一切的基础。看过复杂的航空线路图,航海线路图,铁路交通图吧!是不是会感叹标准化与自动化的重要性。运维工作也是一样的道理。

流程规范是最佳实践方法论,但不是目的。我们没必要纠结于高大全的标准与自动化,我们需要从我们运维需求出发,痛点出发,持续改进与解决运维实际问题。

怎么运用好自动化,提升运维水平:制度流程战略 + 自动化战术+工作责任心素质。

干运维工作,需要很多技能知识,十八班武艺样样都得会。精不精,修行在个人。

做运维工作,实施运维自动化,需要具有很多技术、管理、实践储备。

1.由开发主导运维自动化系统

通常由开发人员主导运维自动化系统研发,貌似顺理成章,但事实情况,很多开发人员可能并不了解运维工作情况,对运维架构体系并不清楚。开发人员他们开发的系统往往带有开发人员的很多主观意识。这就造成运维自动化系统并不很适合运维人员日常使用与维护。

2.由运维主导运维自动化系统

运维人员懂运维需求,是应该的,也是职业素养必须具备的。但运维人员往往不懂开发,甚至很多运维人员对shell/perl/python不熟悉,更别说开发一个系统了。自己不懂开发,那么在主导运维自动化系统中就会感觉坡脚乏力。

说到这里,或许有人会说,最好有这么一个团队,干运维又会开发。这的确是最好不过了,但这种复合人才总是稀缺紧俏的。

正如很多运维团队,我们也缺乏系统开发经验。参与运维自动化的同事有:吕四海、彭燃、史影、高浩天、童宁、任勇斌、王天维,还有我韩晓光。

运维不懂开发?我们是这么克服解决的。

我们的路子:

1.自学成才,一切问题的解决首先要靠自己。

2.有目的,有分工的研究学习。比如有的研究python,有的研究Web前端,有的研究数据库设计。

3.互相分享知识经验,互相帮助协作。

4.学习研究外界同行、大师的经验。

5.参加一些大会,沙龙论坛。了解发展大势。

6.知易行难,知行合一。知道是一回事,更需要迈开步子,逐步执行下去!

通过运维开发,我们获得的成果与经验

1.通过该项目梳理了现有运维资源情况,更加准确掌握了系统资源情况。

2.通过该项目不断规范了系统管理。使运维工作逐步准确规范化、体系流程化、高效智能化。

3.运维工作从人工高密度转型到自动化技术高密度,紧跟当前IT运维开发的发展大趋势。

4.运维人员从原有的基础系统运维岗位逐步转型为开发运维复合型人才,职业发展空间更大。

5.探索开拓了运维更大的能动性,逐步建立自动化运维体系,更好地支撑保障业务生产运行。

and so on…

本解决方案立足从三大维度构建,分别是IT运维流程、IT监控平台整合、IT运维自动化。这三大维度主要具有如下几大功能模块

IT运维流程:资产管理、知识库管理、安全管理、事件管理、日常事项管理。

IT监控平台整合:监控报警管理、日志管理、性能管理、报表管理。

IT运维自动化:应用管理、配置管理、程序运行管理。

基于ITIL理论的事件流程图设计

系统功能框图

本解决方案使用的开发语言及工具:

◆后端及系统客户端开发主要通过Python、Shell等程序语言实现。

◆信息采集写入MySQL数据库。

◆前端Web展示以及与后台数据层、应用层的逻辑交互通过Django框架实现。

◆界面修饰美化使用Bootstrap等框架工具。

如图所示在全局查询里,可以输入任意要查询的关键字。该模块主要是基于数据库表的查询,而不是对于日志的查询。该模块会基于关键字,模糊遍历所有的关键库表,然后将查询结果自动组织后再反馈到Web展示。

如下图所示是系统性能信息图表。该模块主要使用echarts前端绘图工具,后端逻辑处理使用了django restframework框架模块进行信息序列化。性能数据来自系统客户端采集入库信息。

如图所示是基于ELK深度定制的日志监控模块。基于各类日志信息进行监控与统计。

如图所示是系统服务状态监控信息。由client客户端抓取系统服务状态信息,然后反馈给服务器端进行统计与展示。

在各种监控配置方面,一方面采取服务器端主动抓取监控信息(如上述的网址监控),另一方面,由客户端程序主动抓取当前系统的监控信息(如系统账号、文件系统、配置、服务等),并通过C/S架构发(数据以json格式为主)给服务器端接收。

如图所示是自动化管理中的系统自动部署模块,具有批量查询IP使用情况、派发客户端、部署与配置系统等功能。自动化部署主要基于kvm、Saltstack等开发而实现。

如图所示是事件信息模块。本模块基于ITIL流程理念。系统平台一些重要的事件信息会自动触发事件流程,并需要人为交互去响应处理不同类型级别的事件。对于不同类型的事件,在处理时,所触发的流程也有所不同。

这是系统服务状态监控与展示模块。这是怎么开发出来的呢?

在django中,使用的是MVC开发模式。如图所示,在url匹配中,我们基于app模块对url路径分门别类进行逻辑处理与响应。

1.首先通过前端页面,根据指定的url的name名匹配找到url链接

2.在urls.py,根据url匹配链接名字,找到后台逻辑处理层(这里通过Django CBV方式实现)

3.逻辑处理结果将数据集提交渲染给template模板

4.模板(html)根据数据集内容,进行加工渲染,也就是我们最后可以看到的对号、叉号。

在后台,系统服务状态信息获取方面,采用的CS方式。

1.在终端系统中部署client程序,定期采集信息。

2.采集完毕的信息,通过socket传输给Sever服务器端 ,进行加工处理、入库表。

相关代码如图所示。

想了解IT运维更多内容,请参阅:《系统运维全面解析:技术、管理与实践》

空间门户: http://xhnetops.home.news.cn/

【编辑推荐】

  1. 十个强大的DevOps基础设施自动化工具,不容错过
  2. 微软开源Windows Live Writer并更名为Open Live Writer
  3. Windows Live Writer完成开源并推出开源分支
  4. 运维高手十分钟写了一个内存监控系统
  5. 百度运维专家:我在大数据项目中踩过的那些坑
【责任编辑:火凤凰 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Linux命令、编辑器与Shell编程

本书是目前所能找到的最实用、最全面的Linux指南和参考手册,也是唯一一本提供以下全部内容的书籍: 更好更实用的示例覆盖了实际工作中需...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× CTO训练营(深圳站)