原文地址: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. CSS 部件

    1.导航菜单: [荐]抽屉式菜单 jQuery.mmenu jQuery.mmenu 实现了类似手机上经常使用的抽屉式菜单,效果很好.http://mmenu.frebsite.nl/ 2.jQuer ...

  2. 框架介绍thinkphp

    ThinkPHP是一个免费开源的,快速.简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的.ThinkPH ...

  3. jsp:软件包 javax.servlet 不存在

    jdk里面有javax.servlet和javax.servlet.http这两个包吗? JavaServlet程序运行还需要安装JDK以外的包吗...? why?我运行JavaServlet程序的时 ...

  4. Win7上的ASP.NET MVC3项目在Win10上运行的一个坑

    先解释一下问题:我原来的电脑环境是Win7+VS2015,因为新换了个电脑环境变成Win10+VS2015了,所以就把原先的项目复制到新的机器上,那么问题来了,原先的一个项目在VS2015上打开竟然直 ...

  5. (python) 标准模块sys和os的使用

    一.sys模块 包含了系统的相关的功能.我们来学习sys.argv,它包含命令行参数. 例子:定义了一个add函数,用来实现两个整数的相加. #! coding=utf-8 # usersys.py ...

  6. css3中的字体样式

    text-overform:ellipsis省略号/clip裁剪. overform:hidden溢出隐藏文字. 但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省 ...

  7. linux系统启动时更改MAC地址

    vim /etc/rc.local #change the server's MAC address("00:50:56:84:5C:76" change to 00:50:56: ...

  8. 解决Android SDK Manager更新、下载速度慢

    hosts文件里面原来的内容不做修改,只是添加内容 方法/步骤 先看看如何加快更新速度,再说如何更新. 首先更新host文件,如图,打开目录 C:\Windows\System32\drivers\e ...

  9. GIT分支管理模型

    GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...

  10. LINUX 虚拟机克隆与网络配置

    虚拟机克隆后,启动之后发现网卡没有启动.发现提示错误信息“Device eth0 does not seem to be present, delaying initialization.” 解决方法 ...