【51CTO独家专访】随着各种业务对IT的依赖性渐重,IT基础架构越来越快速的发展以及云计算技术的普及,企业平均的IT基础架构规模正不断扩张,而且在Web 2.0的企业中尤其明显。这些企业有时候可能会需要在两个星期内增加上千台服务器,因此对运维而言,通过手动来一个一个搭建的方法不仅麻烦、效率低下,而且非常不利于维护和扩展,是绝对不可取的方式。而即使是在传统的企业当中,日常的备份、服务器状态监控和日志,通过手动的方式来进行的效率也很低,是一种人力的浪费。因此对于运维而言,自动化早已不是什么高端技能,而是每一个运维都必须掌握的看家本领。
上面我们也提到了,在不同的企业中,自动化的规模、需求与实现方式都并不相同,因此在技术细节层面,运维之间很难将别的企业的方法整个套用过来。然而在很多情况下,自动化的思路是有共通之处的。因此,51CTO系统频道最近邀请了中国移动通信研究院的项目经理李洋先生,就运维自动化实现,尤其是基于开源工具的运维自动化,谈了谈自己的经验和看法。
嘉宾介绍:
李洋,博士毕业于中科院计算所。10多年来一直从事计算机网络信息安全研发工作,曾主持和参与多项国家重点项目以及信息安全系统和企业信息安全系统的研发工作。具有Linux系统应用、管理、安全及内核的研发经验,擅长网络安全技术、协议分析、Linux系统安全技术、Linux系统及网络管理、Linux内核开发等。
51CTO:能否先大致谈谈您的运维经历?
李洋:我的运维经历分3个阶段:
(1)靠纯手工、重复地进行软件部署和运维;
(2)通过编写脚本、方便地进行软件部署和运维;
(3)借助第三方工具高效、方便地进行软件部署和运维。
这几个阶段是随着我知识、经验、教训不断积累而不断演进的。而且,第2个阶段和第3个阶段也可以说是齐头并进的,Linux下的第三方工具虽说已经不少了,但是Linux下的脚本编写对运维工作的促进是绝对不可以忽视的。所以我在实践中一直是两种方式都采用。
51CTO:在Linux下有哪些运维工具是让您感觉特别好用、眼睛一亮的?
李洋:其实Linux下的运维工具不算太多,我觉得比较好用的包括RedHat 提供的 Kickstart Installations 自动安装解决方案,不过该方案相对比较繁琐;目前有的工程师认为Cobbler 是让人眼前一亮的好工具,个人感觉也挺不错。另外,其实Linux下能够方便地通过编写shell脚本、使用CronTab等方法来进行运维,个人认为这也是非常不错的选择。
51CTO:有人理解自动化就是运维为了减少重复枯燥的工作而建立的流程方法,而除此之外,自动化还能够带来减少人为错误、及时报警与故障恢复、提高业务可用性等好处。您对运维工作自动化是如何理解的?您认为自动化的技能/意识对于运维的重要程度如何?
李洋:运维工作自动化确实包含上述2个方面,归纳总结来其实就是:把零碎的工作集中化,把复杂的工作简单有序化,把流程规范化,***化地解放生产力,也就是解放运维人员。
自动化的技能/意识对于运维工作至关重要。运维工作不是简单的使用工具,这里面还有很多技巧和意识。具体的技巧/意识包括:
- 如何驾驭这些琳琅满目的工具为己所用
- 如何根据不同的应用环境来选用不同的工具
- 如何根据应用来组合使用工具
等等等等。一定要记住一点:工具是来帮助人进行运维的,这中间还需要人的干预和决策,工具不能代替完全的运维工作。
51CTO:自动化针对的范围可以大致分为安装自动化、部署自动化、监控自动化等方面。除此之外,还有哪些方面是您比较关注的?(比如软件发布、更新、备份等)对于这几个方面的技术实现,您一般采用哪些工具?这些工具相比其他同类工具的优势在哪里?
李洋:自动化其实还包括软件发布自动化、升级自动化、安全管控自动化、优化自动化等等。我个人比较关注管理和安全方面的技术实现,比如说HP和IBM出品的一些ITIL和ITSM产品等我都在使用,比如HP Openview,IBM Tivoli等等。这些工具都有Linux的版本,与其他同类工具相比的优势应该在于他们的商业应用成熟度,都是老品牌了。
51CTO:针对一个小规模的网站,到百万量级、千万量级的网站,您在考虑工具的选择上会有怎样的不同?
李洋:我在选择上对于百万量级、千万量级的网站尤其会考虑选择成熟的工具、性能高的工具、熟悉的工具。而对于小规模的网站,则会考虑选择一些开源的、免费的工具。这个原则就是以应用为导向,百万量级、千万量级的网站牵涉的面广、要求高,不成熟的工具往往很难说服我使用,所以主要是在成熟度方面。
51CTO:很明显,自动化的实现不是单纯学习几个工具就能够做好的,甚至于规划不好的情况,自动化不仅没有节省人力,反而带来了更多的问题。您建议运维人员在考虑自动化流程的过程中应该遵循怎样的原则或思路?
李洋:其实前面多多少少也谈到这个问题了。归纳一下,包括如下几点原则:(1)根据应用选择工具;(2)对于关键应用,选择成熟度高的工具;(3)不能过分依赖一种工具,需要进行对比和分析;(4)对工具的特性做到精通;(5)是人驾驭工具,人要监督工具,而不是工具来驾驭人;(6)别忘了脚本。
51CTO:您推荐运维人员可以通过哪些资源、渠道来学习有关自动化方面的经验知识?
据我个人的经验,很多专业网站,比如51CTO、网管员世界等都是很不错的媒体,我看有这方面的很多文章,运维人员可以多多涉猎和学习;另外,运维人员还可以根据选择的自动化工具,登陆该工具的网站进行学习,一般这样的网站都会有一些运维的基础知识来辅助运维人员更快地熟悉工具使用。
51CTO:感谢李洋接受我们的采访,感谢李洋的经验分享。下次再见!
【编辑推荐】