(翻译)正确实施DevOps-The Lay of the Land
原文地址: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提倡与开发团队建立更有效的关系,不仅包括整个开发生命周期,也包括解决方案被部署到产品环境的过程。有经验的运营人员也意识到他们内部过程往往基于ITIL或ITSM,需要被精简以便更好的与开发团队协作。
*支持专家(有时也被称为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的更多相关文章
- 如何选择正确的DevOps工具
坦白的讲:世界上没有哪种工具能够像DevOps这么神奇(或敏捷,或精益).DevOps在开发和运营团队之间建立了完美的合作与沟通,因此与其说这是一种神奇的工具,不如说是一种文化的转变. 然而,团队之间 ...
- 如何实施DevOps
对于长期在孤立的架构下工作的组织来说,转移到协作式DevOps系统似乎是难以成功的.为了进一步提高效率,必须改变观念,并进行团队文化改变.例如:许多人认为只有自动化工具才能解决DevOps,其实这是不 ...
- Atlassian如何实施DevOps
DevOps是推动开发和运维团队之间沟通和协作的手段.它不是一个工具或产品.相反,其成功的首要因素就是文化.目的是更快的创新和更好的客户体验. "2015年DevOps状态报告"调 ...
- 企业实施DevOPS的七大挑战(转)
从别人的演讲视频中摘抄,做笔记. 什么是DevOPS 如何衡量DevOPS 企业实施DevOPS的七大挑战 自动化测试投入不足 单元测试 API测试 界面测试 功能测试 高度集中的IT服务 标准化 脚 ...
- 你所在的公司是如何实施DEVOPS的?
工欲善其事,必先利其器,现在大家在DevOps领域最关注的还是在工具层面.下面是我跟这么多公司接触下来,大家使用比较多的工具:1.监控工具比较老牌的就是Zabbix,Nagios,用Zabbix的感觉 ...
- 收藏!如何有效实施devops?
当今IT行业的竞争日益激烈,各家公司都在寻找优化软件研发过程的方法,因为交付比对手更具竞争力的产品已经越发成为一件成本高昂的事情.这也是DevOps发挥作用的地方,因为它可以在工程管理的各个方面提供帮 ...
- 翻译-高效DevOps的10项实践
原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-devops/240149363 ...
- DevOps:从理念到实施
转载自:http://os.51cto.com/art/201404/436794.htm DevOps这个新理念的出现,是为了应对IT环境中普遍面临的一些挑战.开发团队要求的不断满足新的客户需求,并 ...
- DevOps实施的三种IT障碍
[TechTarget中国原创] 现今DevOps可谓是红遍半边天,但正因为它是新的东西,企业也在不停的犯同样的错误.从这些挑战中学习,让你的DevOps项目取得成功. DevOps正在以一种更有效的 ...
随机推荐
- Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别
sys和system用户区别 1)最重要的区别,存储的数据的重要性不同 sys所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己 ...
- 深入研究C语言 第一篇(续)
没有读过第一篇的读者,可以点击这里,阅读深入研究C语言的第一篇. 问题一:如何打印变量的地址? 我们用取地址符&,可以取到变量的偏移地址,用DS可以取到变量的段地址. 1.全局变量: 我们看到 ...
- DBNull 与 求和方法
public int CountMoney() { if (!DBNull.Value.Equals(Eval("LawyerMoney")) && !DBNull ...
- k-sum问题
给定一个数组,里面的是任意整数,可能有重复,再给定一个目标T,从数组中找出所有和为T的K个数,要求结果中没有重复. Note: Elements in a quadruplet (a,b,c,d) m ...
- BZOJ 1026: [SCOI2009]windy数
题目 人生中的第一道数位dp,很有趣,虽然我很快推出了结构,但是过程却迟迟没有写出来,最后看别人的题解才恍然大悟 d[i][j]表示数位为i,最高位为j的方案数 DpInit非常简单,复杂度应该是O( ...
- 编译器工具 Flex Bison for Windows 简单入门例子
最近从事一个系统仿真软件的开发,里面定义了自己的描述性语言MSL, MSL语言经FlexBison转换成C语言,然后用C编译器来编译并计算仿真. 现在领域驱动开发比较热门,有机会定义自己的语言对程序员 ...
- .NET 4.5+项目迁移.NET Core的问题记录
.NET 4.5+项目迁移.NET Core的问题记录 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过程遇到的最大的问题IOC容器.我目前使用的 ...
- 个人博客作业week3——案例分析
1.调研 & 评测 1.我的用户体验 win10应用版: Bug1:例句经过翻译与其给出的译文相差太多 上图是应用给出的每日一句及其译文. 将其复制入翻译,就可以看出翻译过后的句子一点也不通顺 ...
- java设计模式--简单工厂模式
简单工厂设计模式 工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式.它定义一个用于创建对象的接口,由子类决定实例化哪一个类. 核心知识点如下: (1) 大 ...
- vb小菜一枚--------早期绑定和后期绑定
早期绑定和后期绑定 Visual Studio 2005 其他版本 将对象分配给对象变量时,Visual Basic 编译器会执行一个名为 binding 的进程.如果将对象分配给声明为特定对 ...