原文地址:http://www.drdobbs.com/architecture-and-design/getting-devops-right-the-lay-of-the-land/240062639,作者Scott W. Ambler。

对于不同的利益相关人DevOps含义不同,但是基本组成部分是相同的。

在过去的1,2年,媒体上有很多关于DevOps的争论。有关DevOps的声音越来越杂乱,导致听众也越来越困惑。DevOps提供了针对IT市场的敬业精神和生产力一个潜在增长点。但是,与在它之前的所有运动一样,误解和误用DevOps是非常危险的。本文章以及随后的系列文章,将提供有条理的严肃的建议来解开这些困惑。

让我们先从一些定义开始。首先,在本文章中我会用两种方式表述词条“产品”。当我使用IT短语“发布产品”时,如果上下文与商业产品有关,我也隐含了“发布到市场”。当我使用单词“产品”时,意味着运营和支持(有时也被称为“help desk”)的结合。一些组织认为运营和支持是两个概念,但其它组织结合了这两个概念。”DevOps”是开发(development)和运营(operations)两个单词组成的混合词。在该上下文中的开发包括了解决方案被发布到产品环境之前发生的所有活动,即项目初始化时明确初始概念一直到可以部署。DevOps上下文中的运营包括了部署之后的所有活动。即“与产品相关的东西”(production stuff),包括了对所部署的解决方案的运营和支持。

定义DevOps词条,说起来容易做起来难,这是因为需要综合考虑多个视角,即主要的DevOps利益相关者的视角。你的谈话对象不同,DevOps是什么的定义的回答也不相同。DevOps的利益相关者以及他们的视角如下:

*开发人员,尤其是有经验的敏捷开发人员,认为DevOps是交付产品的一个持续的流程,有可能一天数次。

*运营专家往往认为DevOps提倡与开发团队建立更有效的关系,不仅包括整个开发生命周期,也包括解决方案被部署到产品环境的过程。有经验的运营人员也意识到他们内部过程往往基于ITILITSM,需要被精简以便更好的与开发团队协作。

*支持专家(有时也被称为help desk专家)对DevOps的认识与运营专家类似,但稍微有点区别:他们想和开发团队一起工作来保证解决方案被发布到产品环境前他们的需求能被正确理解和满足。他们也想确保有一个流程,一旦当解决方案被使用后,能够处理需求更改(包括缺陷)。

*高级管理团队认为DevOps是可以通过简化所有人一起工作的方式从而提高IT部门整体效率的一种成果。

规范DevOps

现在来看看规范DevOps。图1展示了采用规范DevOps前以及规范DevOps努力想达到的效果的对比图。目前在很多组织中,开发团队和运营团队间尽管有流程和组织级障碍存在,但仍努力达到有效协作。

开发团队的部署并无规律-“快速”的团队一年进行1到2次发布,偶尔为发现的产品问题打个补丁。

运营团队反而推进变更请求,包括缺陷报告,返回给开发组织。这两个组织一起协作就可以保证这些活动是成功的,但仍有一个明显的地方可以提高。规范DevOps通过增加开发,运营和支持人员之间的协作这一策略来提高这一点。向开发团队引入持续交付实践,向IT引入新的组织级架构;采用商业智能工艺和技术来支持开发智能和运营智能,即支持改进的IT管理。不规范的DevOps和规范的DevOps的不同之处在于,规范的方式以整体视角来考虑所有DevOps利益相关者的渴望,而不仅仅关注于一个视角。


图1:缩小DevOps差距

要想成功实践DevOps,你需要在5个方面实现提高:人,准则,实践,产品及流程。这些问题以从高到低的优先级顺序排列。人及他们相互交互的方式是任何IT努力达到成功的决定因素。而规范DevOps清楚的需要人们重新思考他们的技能,如何定义自己的角色,如何一起工作。IT组织采用DevOps需要重新思考他们所做的决定的底层准则。例如,采用与业务更紧密交互的准则将激励他们采用更频繁的发布产品的方式。组织需要采用诸如持续集成,持续部署,运营智能,协作支持等实践。如果他们决定采用DevOps,有更多新鲜的事情需要去做。新的产品,包括开发工具,商业智能工具,以及运营监控工具等需要被采用。最终,流程框架(比如规范敏捷交付,DAD),将DevOps策略变为开发流程,还有ITIL或ITSM的更新版也需要考虑是否使用。

误解

组织运行DevOps似乎有着普遍的方式。我担心这样的观点,即“云=DevOps”,这种观点似乎越来越受欢迎。采用云技术可以早点接触到DevOps的一些方面,但只是5个方面的其中之一(即产品方面)。相似的,一些厂商的工具驱动的消息工具,以及一些开源社区(的产品)也令人不安,新的工具仅仅是DevOps大局观的一部分而已。第三个误解之前有提到过,即过于关注于一个DevOps利息相关人的视角。特别常见的是过于关注开发过程,因为效果显而易见,特别是持续交付实践可以带来潜在的更高效的提高。该问题是仅关注了5个方面的实践部分。

这些误解,确定会导致他们遇到问题,在之后的文章中会详细讨论这些问题的解决之道。


Scott Ambler 在IBM Rational工作了6年时间,在这里他帮助客户采用及适应敏捷技术。现在是该领域的咨询师。他也是Dr.Dobb’s的长期撰稿人。

(翻译)正确实施DevOps-The Lay of the Land的更多相关文章

  1. 如何选择正确的DevOps工具

    坦白的讲:世界上没有哪种工具能够像DevOps这么神奇(或敏捷,或精益).DevOps在开发和运营团队之间建立了完美的合作与沟通,因此与其说这是一种神奇的工具,不如说是一种文化的转变. 然而,团队之间 ...

  2. 如何实施DevOps

    对于长期在孤立的架构下工作的组织来说,转移到协作式DevOps系统似乎是难以成功的.为了进一步提高效率,必须改变观念,并进行团队文化改变.例如:许多人认为只有自动化工具才能解决DevOps,其实这是不 ...

  3. Atlassian如何实施DevOps

    DevOps是推动开发和运维团队之间沟通和协作的手段.它不是一个工具或产品.相反,其成功的首要因素就是文化.目的是更快的创新和更好的客户体验. "2015年DevOps状态报告"调 ...

  4. 企业实施DevOPS的七大挑战(转)

    从别人的演讲视频中摘抄,做笔记. 什么是DevOPS 如何衡量DevOPS 企业实施DevOPS的七大挑战 自动化测试投入不足 单元测试 API测试 界面测试 功能测试 高度集中的IT服务 标准化 脚 ...

  5. 你所在的公司是如何实施DEVOPS的?

    工欲善其事,必先利其器,现在大家在DevOps领域最关注的还是在工具层面.下面是我跟这么多公司接触下来,大家使用比较多的工具:1.监控工具比较老牌的就是Zabbix,Nagios,用Zabbix的感觉 ...

  6. 收藏!如何有效实施devops?

    当今IT行业的竞争日益激烈,各家公司都在寻找优化软件研发过程的方法,因为交付比对手更具竞争力的产品已经越发成为一件成本高昂的事情.这也是DevOps发挥作用的地方,因为它可以在工程管理的各个方面提供帮 ...

  7. 翻译-高效DevOps的10项实践

    原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-devops/240149363 ...

  8. DevOps:从理念到实施

    转载自:http://os.51cto.com/art/201404/436794.htm DevOps这个新理念的出现,是为了应对IT环境中普遍面临的一些挑战.开发团队要求的不断满足新的客户需求,并 ...

  9. DevOps实施的三种IT障碍

    [TechTarget中国原创] 现今DevOps可谓是红遍半边天,但正因为它是新的东西,企业也在不停的犯同样的错误.从这些挑战中学习,让你的DevOps项目取得成功. DevOps正在以一种更有效的 ...

随机推荐

  1. linux下svn常用命令

    (如果是第一次提交文件,很可能会出现“svn:'.'不是工作副本”,即当前目录不是工作副本,这个时候需要用到import: eg:svn import . url) 1.将文件checkout到本地目 ...

  2. map容器的使用

    1.map是STL容器中的一种,属于关联性容器.以key value的形式存储.key必须唯一.如果重复则插入失败.插入后按照key默认排序.必须要先声明命名空间:using namespace st ...

  3. java TreeMap用法

    转自:http://huchenqiang90.blog.163.com/blog/static/11250080020101025956498/ 最近工作遇到需要按一个model中不同的列进行排序的 ...

  4. 图层的核心动画(CABaseAnimation)续

    Main.storyboard ViewController.m // //  ViewController.m //  8A01.核心动画 // //  Created by huan on 16/ ...

  5. Python和C扩展实现方法

    一.Python和C扩展 cPython是C编写的,python的扩展可以用C来写,也便于移植到C++. 编写的Python扩展,需要编译成一个.so的共享库. Python程序中. 官方文档:htt ...

  6. HTML与CSS基础知识补遗(一)

    开始从零基础系统地学习前端知识了,虽说html和css多少了解一些,但是学着还是能发现很多新大陆.... 一. HTML中head标签 1. <meta>标签: meta标签里是一些基础的 ...

  7. Codeforces #380 div2 C(729C) Road to Cinema

    C. Road to Cinema time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  8. QT

    http://www.cnblogs.com/csulennon/p/4483711.html

  9. [UE4][Custom Animation Graph Node]Evaluate Pose by Curve

    目的:根据曲线值获得当前动作帧.用于实现各种通过曲线同步的功能. 方法:继承FAnimNode_Base创建自定义动画节点.重写Evaluate部分.创建相应的AnimGraphNode.可参考前一篇 ...

  10. hibernate的缓存机制

    hibernate提供两种缓存:一级缓存和二级缓存 一.一级缓存:也就是Session缓存(又称作事务缓存):Hibernate内置的,不能卸除. 在同一个Session里面,第一次调用get()方法 ...