您好,欢迎访问专业IT管理知识分享平台

上传文档

当前位置:首页 > 文章列表 > 企业中的敏捷运维

「ITIL文章」企业中的敏捷运维

敏捷运维概述

敏捷运维来自于两个截然不同的阵营。首先,敏捷和精益软件开发者意识到,很好的、密集的迭代会快速生成可发布的产品,但部署却比较花费时间。由于产出量的要求,这些团队发现,当他们将代码签入到源代码控制系统中时,价值流并没有到达终点;只有把代码部署到网络上并开始创收的时候,价值流才到达终点。也就是说,情况是“完成,完成,才会完成”而不是“完成,就完成了”。在短迭代之后,发布会有很大的延迟,这样也是不合理的。更坏的是,手动的部署和配置会引入人为的错误。真正的敏捷团队希望可以自动完成所有重复性的任务,当然也包括部署在内。


另外一群将我们引入到敏捷运维的人来自于快速增长的公司。这些公司有时会在两个星期内增加上千台服务器。如果他们试图手工完成,那么全美国一半的人会是Facebook的用户,而另一半的人都是Facebook的管理员。显然,他们需要一些办法来将架构纳入到管理之中。这些公司从命令式(手工的)操作转换为声明服务器所需要的最终状态,从而达到可扩展的运维。


尽管大多数关于敏捷运维的演讲都以工具为中心,但其实工具的重要程度最低。从工具开始讨论敏捷运维,就像是通过学习JUnit和Hudson来学习敏捷软件开发一样。你可以模仿那些实践,但是当环境发生变化的时候,你就无法做出有效的响应。工具应该是用来支持敏捷原则的。对于运维来说,敏捷原则包括:


  • 沟通

  • 短的反馈周期

  • 简单

  • 勇气

  • 透明

  • 承担责任

  • 反应

  • 对技术优势的持续关注


这些原则以多种方式得到了证实:


  • 完全自动化的系统构建(并非只是启动服务器,而是重新构建一切)

  • 通过版本控制系统进行配置管理

  • 对监控和统计数据的广泛访问

  • 自愿的“坏了就换”机制

  • 优先使用从系统中自动抽取文档

  • 针对硬件随需而变的态度添加或者替换服务器并不是大事件


和敏捷软件开发一样,敏捷运维显然与那些“牛仔”管理员的方式不同,他们只会狂乱地管理系统而没有任何计划和文档。与之截然不同的是,敏捷运维需要很好的自律。运维必须确保所有一切内容都在版本控制之下。他们只会接受彻底自动化的东西。永远不会允许手动操作的存在。


障碍和冲突


敏捷运维听起来很美好。只要签入你的代码,确保它在CI服务器上构建,然后更新一个方法,就可以看着你的改变去改变世界。有些人看不到这样做明显的好处,他们都是老土,毫无希望,或者只是在保护他们的饭碗,不是吗?


但是,看花容易绣花难。就像Scott Adams所说:“任何你不懂的东西都很容易。”但道理会更加复杂。人们不会因为愚蠢的或者武断的原因而支持实践,但是会因为他们要缓解在外行看来不明显的压力而那么做。


运维小组总是会关注于利益相关者的不同甚至相反的需求。试图引入变更,而不考虑这些力量,这会让你非常沮丧,很可能会导致失败。下面是运维——不管是否是敏捷的——所要关心的问题。


审计和遵从


在努力达成有效监管的过程中,运维起到了很重要的作用。任何公开上市的公司都必须能够证明他们的财务状况的准确性。在美国,从2002年塞班斯法案通过以来,如果发现财务结果被篡改,那么公司的主管就有可能被刑事逮捕。最关键的条款是第404条,它提出了公司要通过财务报表达到内部控制。这没错,如果审计者发现系统管理员和ICFR状况很差,那么CFO最多可能会被判入狱20年。


但SOX内容的含糊一直为人们所不满。安全交易委员会(Securities Exchange Commission)和公共公司财务监管委员会(Public Company Accounting Oversight Board )都提出了多种指导意见。既便如此,审计者还是需要解释许多问题。每年他们都会创建很多案例,然后对其进行讨论、接受或者推翻。这导致的不确定性,加上提供没有发生篡改情况的证据的问题,使得公司对于他们的控制非常急躁。


这里的关键问题在于对“控制”的定义。在审计术语中,控制没有技术上的标准,而只是一些过程,通过它们可以访问标准,并在一定周期的基础上进行审阅。你的审计者会寻找的最重要的控制之一就是角色的分离。也就是说,编写代码的人不能来发布自己的代码。此外,一旦代码被发布,对于管理员来说,就不可以再对其进行改变。在这里,“不可能”并不意味着文件是不可编辑的,而是意味着它不能在任何人都不知道的情况下进行编辑。


在实践中,这意味着敏捷运维——特别是开发运维——会在审计者的检查中出现很多警告。我向你保证,如果开发与审计之间有争论,审计肯定会胜出。你最好祈祷,如果你在已经上市或即将上市的公司中工作,那么在引入敏捷运维之前就会遭遇审计问题。


敏捷运维能够提供补偿式的控制。例如,如果生产环境中所有的变更都完全自动化,那么版本控制系统会保留每个人的修改记录。这样就很容易从版本控制工具中得到报表,从而审计会认为这些变更是被授权了的。如果你对所有部署的程序包进行SHA哈希加密,那么就可以证实没有在自动部署过程之外做过任何的修改。这些机制可以支持合理的ICFR。然而,如果在切换到敏捷运维之前进行讨论的话,那么你还有很多工作要做。



ITIL


IT架构库是针对IT运维过程的配置框架。这一大串文字不会告诉你详细的内容,但是你应该对其有所了解。ITIL为IT组织提供了高质量运维的蓝图。它是一种模板,源自英国政府十九世纪八十年代对大型机的运维方法。是的,真的是那样。ITIL现在最高的版本是3,它已经被多个公司采纳,作为围绕一系列日常任务进行标准化过程的方式:“我们有什么?”,“它是否正常工作?”,“为什么它会出现故障?”,“谁应该对其负责?”等等。


我们都不会喜欢ITIL。在第一次培训的时候,我个人的反应是对其持怀疑的态度。其中有非常复杂的变更管理过程,但是却没有涉及到真正的变更系统。对于发布管理过程也是一样。然而,一旦你对其深入研究,就会发现,其实ITIL的各个部分都是以合理的方式组合在一起的。大多数公司都不会实现ITIL所有的内容,但是一般都实现了最重要的三点:突发事件管理、变更管理和发布管理


正如我们在关注审计和遵从的时候所看到的,敏捷运维实际上提供了一套很强的支持实践。例如,在变更管理中的一个关键问题就是要识别每个会被变更影响的配置项目。如果所有的系统配置都在配置管理的控制之下,那么就很容易满足这个需求。事实上,答案是它会比之前更加准确。


与ITIL之间的冲突不在于基本的原则,而是在工具上。实现ITIL的组织一般都会从软件厂商那里购买一套工具。实现ITIL通常就意味着要实现这套工具。因此,如果你想要通过你自己的工具集而不是公司的标准来完全满足ITIL过程,就会遭到高层的抵制。对于这个问题,我的建议是“不要同官僚作斗争。”ITIL工具很昂贵,而且实现它会花费很长时间。那意味着一些任务显然会提交给他们。绕过工具集等同于对那个人挑战。可能这正是你想要的斗争,但是让我们先考虑一下另一种方法:使用API。所有这些工具都有各种各样的程序接口,用来提交变更申请、更新配置管理服务器(CMDB)中的配置项目(CI)、打开申请等等。我们只需要调用这些程序接口来对工具进行自动化,就像我们对于服务器进行自动化一样。你还是需要在变更审查会议中密切关注主要的事件,但至少你可以将很多烦人的工作自动化。


有个领域中敏捷运维和ITIL可以很好地协作,那就是问题管理过程。一旦发生了突发事件,它就应该作为问题指出。这会触发完整的分离过程。突发事件管理只是要恢复正常的运维,而问题管理会找到并修正产生突发事件的根本原因。例如,web服务器崩溃是一种突发事件。目标是恢复服务器并让它正常运行,这可能只是意味着重新启动进程。如果再次发生,它就会被认为是问题,这会让我们对其进行调试,查找内存泄漏,在QA中重新创建bug,等等。


ITIL问题管理和敏捷运维都喜欢使用“5个为什么”方法来进行根本原因的分析。也就是说,不是只解决直接的问题,还要知道在什么时候会发生这种错误。在这里我看到的是本能上的调整。



历史和文化


有时我认为创业公司的最大优势就在于没有历史。开发、运维和业务一起会推动企业的文化。在一家已经建立的公司中,在不同的组中同步文化的改变是很困难的。因此,在这项改变面前,总有一个组织的文化会被抛弃。在你自己的组之内的领导是受欢迎的,但是来自于另一个组的领导很少会是那样。特别是当你尤其不喜欢另一个组的时候。是的,是这样。开发和运维小组有时互相都对彼此不感冒。事实上,他们可能会是公开敌对的


就像家庭争吵一样,这些事情会以多种不同的方式开始。通常,它开始于启动失败或者停电,然后是一轮激烈的指责。运维团队的主管和软件开发团队的主管之间的对立会让争吵升级。因为运维和开发团队中所说的话都不一样,所以很难弥补他们之间的鸿沟。几年之后,指责和相互踢皮球就成为了根深蒂固的习惯。和敏捷开发一样,敏捷运维需要所有团队之间高度的信任。但在从来都是敌对态度的环境中如何建立起这种信任呢?你的策略依赖于你在公司中的地位。在这里我只能提出三种真正的意见:


  • 不要试图使用技术解决方案来解决文化的问题。文化高于过程,每次都是这样。

  • 当你处于防御的姿态时,是不可能敏捷的。

  • 很强的领导力是非常重要的。领导力不需要管理授权。你可以成为公司中任何级别的领导。


总结

在过去的十五年间,我们得到了很多关于引入敏捷软件开发的教训。遵守敏捷原则的团队能够在需要的时候从无到有改造实践。相反,不遵守敏捷原则的团队能够效法实践,但是不会继承优势。(并且,事实上,他们不会坚持执行那些实践!)


采用敏捷运维需要“忘掉”一些关于如何创建可靠过程的假设。涉及到这个事务中的人们必须意识到,它可以更快并且更有规范,质量与便利并不矛盾,并且很值得花费时间来消除最后的5%的手工作业。


同时,我们必须记住,运维和开发所服务的利益相关者是不同的。公司会依赖运维团队来保证财务结果的尊严,并保护他们在客户和投资方中的信誉。任何向敏捷运维的转变都必须保持这些重要的责任。

更多推荐
从CMDB到数据中台
面向运营的IT运维配置管理
从0到1和从1到100:项目经理的应对之道

RECOMMEND
推荐资料

关注官方公众号立即免费观看ITIL系列培训视频

公众号回复"ITIL4"获取最新ITIL4 Foundation中文版教材

公众号回复"110"获取如下资料:

1. ITIL的商业价值.pdf

2. 教材-基于ITIL的全球最佳实践.pdf

3. 配置管理_-_配置管理精彩讲解.pdf

4. IT服务管理:概念理解与实施.pdf

5. 配置管理的意义和常见问题解答.pdf

6. ITIL流程设计文档案例

7. ITIL历史考试题库集锦

8. ITIL4和基于云服务白皮书(英文版)


版权说明:感谢原作者的辛苦创作,如转载涉及版权等问题,我们将在第一时间删除.

联系邮箱:admin@itilzj.com



转载声明:本文转载自「ITIL之家」,搜索「itilzj」即可关注,[阅读原文]。

暂时没有评论,评论一个吧?

您需要登录后才能评论 , 去登录

发表文章

Powered by DS文库

Copyright © 专业IT管理知识分享平台 All Rights Reserved. 鄂ICP备19005274号-1
×
保存成功