【51CTO专稿】在人们的印象中,只有大型的互联网企业(如:百度、新浪、淘宝等)才能用到自动化运维部署,其实不然,现在很多其他类型的企业也在运用自动化运维部署这一技术。立足于交通行业,营运车辆监控管理和服务为基础,专业从事交通信息化领域的技术研发、解决方案提供、运营服务和相关增值服务于一体的全国性综合交通信息服务提供商北京中交兴路信息科技有限公司便是如此。

中交兴路走向自动化运维之路

为了了解自动化运维在中交兴路的应用情况,记者专程采访了中交兴路负责运维自动化软件开发领域的运维工程师邓磊(博客)。谈到以前的传统运维的经历,邓磊老师不禁感慨一番:“传统运维主要通过手动或者写脚本方式来进行维护、升级、上线应用平台,在工作的时候,没有更新与修改的日志,都是研发对平台有了最新的版本,运维就得升级,有的时候不知道升级什么内容,如果升级的次数过多,间隔过短,都不知道修改与升级了什么,一旦出现事故,就会有相当长的时间来解决此问题。

相对于传统的运维而言,自动化运维有很多优势,以下三个方面更为突出:

(1)有记录可循:比如使用Svn进行版本控制,一旦新版本出现问题,可以恢复旧版本,为解决问题提供了很大的便利。

(2)使用开源的自动化软件:比如在进行系统安装的时候,使用Cobbler或者Kickstart,进行配置的时候使用Puppet,进行监控的时候使用Nagios、Cacti、Zabbix等,通过这些软件能极大的帮助我们对系统进行安装、部署与监控,节省我们的时间。我们不但要能实时的了解系统的运行情况,还需要能预判系统将要出现的问题,尽量的在出现问题前解决问题,这才是我们运维真正需要做的,而不是忙着救火。

(3)有相应的制度:想要实现自动化制度,就一定要有自动化运维的实行标准,出现各个问题,都有相应的解决方法,这样的做事效率将会有很大的提升。

建立高效IT运维自动化管理部署

记者与邓磊老师谈到中交兴路目前的自动运维情况时,他谈到:"从今年2月份开始,中交兴路就开始了自动化运维的部署,系统部署类工具使用Cobbler;这个软件是朋友推荐的,加上测试过一段时间,使用后觉得比Kickstart更方便,Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用。配置类工具选择Puppet;可管理配置文件、用户、Cron任务、软件包、系统服务等。非常的方便。监控类工具是自己开发的监控系统Php+Mysql+Shell。"

公司监控系统有3个阶段:

1、 使用Nagios+Cacti

在这个阶段主要是通过Nagios监控服务运行情况,使用Cacti监控系统资源情况,虽然软件监控的时候没问题,但由于公司在全国20个省都有机房,使用Nagios+Cacti监控起来十分麻烦,使用Nagios分布式监控也十分麻烦;

2、使用Shell脚本监控公司服务

在这个阶段主要是通过Shell脚本定制的,根据公司的实际情况来进行专门监控,虽然通过这样的方式监控很方便,但在进行日常维护的时候很麻烦,100+以上台机器,每天光巡检就是累死人的工作量。

3、使用我自己搭建的Php+Mysql+Shell监控系统

通过我自己搭建的监控系统监控系统,解决了前2个问题,不仅能通过Shell脚本根据公司的实际需求来监控,而且能通过Php来在Web端查看监控的内容,并且能通过Gnuplot软件生成相应的数据图。”

自动化运维部署细节分析

“自动化运维固然优势明显,但是在部署的过程中也应注意一些小细节,”邓磊老师谈到三点,

一、选择一个适合自己的软件,要对相应的软件做相应的了解,比如你想进行系统部署类的软件,你是选择Kickstart还是Cobbler,哪个的功能更适合你,哪个你更熟悉的配置与管理,同时一定要在虚拟环境测试成功后,在试运行环境里测试,都没有问题在再生产里部署。

二、一定要有一个完整的思路,不要想做什么就做什么。比如你在进行配置类如Puppet的安装与部署的时候,如果你没有一个完整的思路,想一个做一个,比如域名采用什么方式都不考虑、主从端的时间都不同步、主从的IP不能互相平通,那么你肯定做一个失败一个,不能成功实行运维自动化。

三、实现运维自动化要有相应的流程与制度,如果你只是通过软件来实现了自动化,但在流程与制度上没有相应的措施,比如想通过Svn+Puppet对监控系统进行版本控制与自动化的部署的时候,研发与运维随意的对Svn内容进行修改与删除,那么运维自动化不如不实行,一但这样的实行,你出现问题的机率会非常的大,而且问题的解决时间也会非常的多,得不偿失。”

下面是某公司事故升级与处理流程图,从用户的问题反馈到各部门之间的调查分析、协调工作都有详细的规划。

 

总结:

自动化运维会给IT人员带来便利,同时会减少IT人员的投入,在今天这样硬盘、CPU价格低廉的日子,公司的服务器数量会增加的非常的快,如果还是向以前那样通过手工或者脚本来升级、部署、修改系统的话,你会发现你的工作时间严重不足,而且出现问题的机率也很大,解决问题的时间也会很长,每天忙着救火,自己累不说,领导也对这样的运维不满意,职位与薪资自然无法得到增长。如果你会自动化运维的话,你就会发现,其实管理100+的机器非常的简单,一个人就可以做到系统部署(使用Cobbler)、系统软件部署与管理(使用Puppet)、系统服务与资源的监控(使用Nagios+Cacti或者其他),通过这些开源的自动化运维软件,来减少我们的工作量,减少错误产生频率,增加我们的休息时间,来使我们能有更多的时间来学习与做其他自己想做的事。

 

本文转自:http://os.51cto.com/art/201211/365061.htm