你需要了解自动化运维的设计思想

转载 2017年09月09日 08:04:46

背景

随着信息时代突飞猛进般的持续发展,IT运维已经成为IT服务中最重要的组成部分。近年来,云计算、大数据等技术日趋成熟,生产应用自动化运维也被推到了风口浪尖。通过传统手段对大型计算机集群进行运维即使是简单的日常备份、服务器状态监控和报警,效率也十分低下,因此对自动化运维的需求已经迫在眉睫。

传统运维的弊端:

1.由人来发起运维事件,运维人员被动、效率低。

2.系统异构性大,缺乏高效的运维流程。

3.随着云计算大数据的爆发带来更大的困难,极度缺乏一套高效的运维工具。

由于这些问题的存在,自动化应该遵循四化原则:管理体系化、工作流程化、人员专业化、任务自动化。

以监控作为自动化运维的核心概念

运维工作效率不高,主要原因是响应速度。由于大量的人员长期盯着报警页面,等待故障,然后通知相应人员。所以在生产系统中,需将服务器的状态监控作为自动化运维的核心问题。下图为自动化运维平台处理流程图,由监控来驱动运维事件的发起、处理和结束,由ElkStack 、Zabbix 和 Zabbix-Agent来获取到服务器的日常工作状态和服务信息,并生成时序统计图等用于成果分析。

通过精准有效的报警策略做到专业的事由专业的人去做。生产系统已经实现了邮件、微信、短信告警等功能,可以根据故障类型和影响级别及时通知到相应人员,并且可以根据SLA进行事件升级。后续还可以针对微信平台进行持续开发,提供更多功能,比如说模板化处理机制的问题。

举个例子,服务器的磁盘占用率达到百分九十的时候,告警也会自动通过微信通知到相应的处理人员,这时候处理人员只需采取从微信中选择,并操作对应的清理垃圾模板,如:数据修复模板、清理历史日志模板等,进行清理作业即可。

以模板化部署为自动化运维的必备利器

对于运维工程师来说,真正意义上维护服务器的工作并不算繁重,真正繁重的应该是环境的部署,有的时候环境实施部署会占据到运维工作百分之八十以上的时间。由于操作系统版本的不统一,手动且随意的初始化系统环境,不同软件包的版本更新等一系列的问题,会导致工程师部署运维工具或公司产品时,总会出现各种各样非常奇妙的囧境。

所以,我将模板化部署作为自动化运维的第二块内容,下图为自动化运维平台流程范例。通过cobber可以模板化操作系统,系统初始化配置,软件包版本控制,从而做到整个计算机集群基础环境完全一模一样。减少了因为基础环境不同而导致部署错误。

当然仅仅是系统的模板标准化还远远不够,我们还可以通过结合Ansible Playbook 将运维常用的工具脚本化,这样不仅仅是为了减少人为因素的出错点,更可以通过批量执行大大的提高工作效率。同时,还可以通过Ansible 进行并行的配置管理。

在我设计的运维平台中有两个核心组件,分别是告警调度引擎(messageserver)和事件调度引擎(jobserver),告警调度引擎主要作用于分析日常报警信息,通过报警事件、时间、机器、类别等维度生成图表。事件调度引擎的主要功能是根据相应的告警项目,自动处理事件从而实现自动化运维的目的。

自动化技术思想

有了上述的几张图和方案,相信运维的大部分效率是可以带动起来的。但是,这真的就是自动化吗?当然不是,自动化运维不仅仅是工具上的革新,更多的是思想上的转变,流程上的优化,这将会是一个持续改进的过程。

首先,运维需要规范化流程化。其次,运维工具容器化,将常用的运维工具和公司产品构建到容器或者VM中,尽量减少部署时间。再次,日常维护需脚本化,通过配置管理工具实现自动配置维护,并且尽量减少人工的处理与参与。最后,是自动化。

我认为一个真正的自动化运维平台并不只是通过人或者通过技术去减少人工的参与成本,而是需要和运维产品相结合,最终做到智能运维。这样的话产品本身就可以做到自维护,从而形成一个完整的个体。

我们在自动化运维平台建设的多年实践中,往往花时间最多的是在运维流程优化、权限控制、日志审核、等功能上。后期我们还整合了跳板机的功能并应用整合到我们的自动化运维平台中。

现在部署一套环境仅需要二十分钟。100台服务器同时上线效率提高了35倍。环境日常维护或者应用部署上线已经很少登陆到单独的节点上去操作,只要通过系统统一的平台操作基本都能搞定。我想或许自动化运维只是Ops到DevOps转型所衍生出的一种特性吧!未来将走向全面智能运维时代。


转载自:http://os.51cto.com/art/201601/503876.htm

如果你了解我的过去,你就会理解我的现在

一个人的现在,由他的过去决定,在这些需要资历的工种,现在的每一步.都是在为了未来做积累.时间长度,了无定格,以前过的怎么样,现在又怎么样.这两者肯定会有一定的联系.见面的第一眼,你看到的是我的很多面的...
  • hades_win
  • hades_win
  • 2017年01月11日 10:44
  • 897

自动化运维为什么是必须的?

运维团队负责最大限度提高效率、降低成本,这也意味着他们往往承受着巨大的压力,需要解决在不增加员工的情况下,最大限度产出价值的问题。达成这样的要求,仅靠人工是很难的,采用自动化运维则是靠谱的选择。...
  • ZYQDuron
  • ZYQDuron
  • 2017年08月31日 12:35
  • 460

读《了解你的学生》有感

一个刚入学的孩子心中所怀抱的学习图像,主要是来自他们所爱或信任的大人告诉他们学校是美好的,而不是因为他们相信学习本身所具有的价值。在刚开始的时候,孩子们会像大人们所希望的,快乐学习并用心学习。——摘自...
  • sxhelijian
  • sxhelijian
  • 2014年10月09日 06:19
  • 2288

浅谈自动化运维设计思想

背景 随着信息时代突飞猛进般的持续发展,IT运维已经成为IT服务中最重要的组成部分。近年来,云计算、大数据等技术日趋成熟,生产应用自动化运维也被推到了风口浪尖。通过传统手段对大型计算机集群进行运维...
  • mysee1989
  • mysee1989
  • 2016年06月06日 10:58
  • 385

主宰这个世界的10种算法,你了解其中的几种?

原文地址:http://www.ipc.me/10-algorithms.html(文章仅供学习交流,如果有其他用处,请访问源地址) Reddit 有篇帖子介绍了算法对我们现在生活的重要性,以及...
  • jxiao_11
  • jxiao_11
  • 2016年03月27日 21:28
  • 223

Java - 简述一下你了解的设计模式。

所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用...
  • chimomo
  • chimomo
  • 2017年11月03日 10:03
  • 359

面试时,如何回答你还有什么想要了解的?

面试官提出此问题,无非想要以下三方面的信息:求职者之前是否对公司、职位、行业有所了解;进一步判断此人的思维深入性与全面性;了解求职者真正关心的点。 “你有什么问题要问我?” 看似可有可无的问题,却是...
  • wang0112233
  • wang0112233
  • 2017年10月16日 16:33
  • 141

Ajax之深入了解

上一节,我们说了一些Ajax的基础知识,包括常用的get方法,现在,我们接着来讲讲post方法,以及利用get方法或post方法实现分页显示的功能。 我们使用的是nodejs,去nodejs官...
  • YZi_Angel
  • YZi_Angel
  • 2016年08月31日 21:26
  • 152

对json的理解

以前老师说了一句Java格式的json转换成js格式的json,我从那一直开始纠结,json既然是数据交换语言,格式都一样怎么还有语言之分的?纠结至今,发现,还是之前的学习资料有缺陷,没有详细讲解js...
  • qq_32528231
  • qq_32528231
  • 2016年10月10日 23:43
  • 4602

你真的了解JavaScript?

JavaScript是如今最受欢迎的编程语言之一,但受欢迎同时就是该语言自身的各种特性带来的副作用,无论该语言多美妙,每天还是有成千上万的程序员弄出一堆bug。先不要嘲笑别人,或许你也是其中之一。...
  • cwqcwk1
  • cwqcwk1
  • 2013年12月24日 00:23
  • 2642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:你需要了解自动化运维的设计思想
举报原因:
原因补充:

(最多只允许输入30个字)