(翻译)正确实施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正在以一种更有效的 ...
随机推荐
- winfrom 捕获是否点击关闭按钮关闭的窗体
const int WM_SYSCOMMAND = 0x0112; const int SC_CLOSE = 0xF060; protected override void WndProc(ref M ...
- 大前端学习笔记整理【一】CSS盒模型与基于盒模型的6种元素居中方案
概览 CSS盒模型,规定了元素框来处理元素的 内容.内边距.边框和外边距的方式 元素部分是指内容部分,也是最实际的内容,包围内容的称之为内边距,内边距外围是边框,边框外围就是外边距:且外边距是透明的, ...
- codesmith生成java类
今天生成的时候的时候找不到类型转换的文件JavaAlias 后台发现我装完codesmith后,没有把类型转换类放入对应的文件 把System-JavaTableNameComments.csmap和 ...
- $(function(){})、$(document).ready(function(){})....../ ready和onload的区别
1.window.onload 当一个文档完全下载到浏览器中时,会触发 window.onload 事件. 这意味着页面上的全部元素对 javascript 而言都是可以访问的,这种情况对编写功能性的 ...
- Linux 忘记root登录密码解决方法
很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可. 步骤如下: 重启linux系统 3 ...
- Mvc模板页
以前学过WEB的应该都知道母版页这个东西,在这里呢,mvc的模板页和WEB中的模板页也是一样的效果和用途. 首先:创建一个项目,控制器,生成Index视图,在生成视图的时候我们选择Razor视图引擎, ...
- Oracle中rownum和rowid的理解(转)
本文转自地址http://www.linuxidc.com/Linux/2012-04/58300.htm rownum,rowid都叫伪列. 但是,rownum是逻辑上的编号,且其值总是从1开始,每 ...
- Spring中使用Schedule调度
在spring中两种办法使用调度,以下使用是在spring4.0中. 一.基于application配置文件,配置入下: <bean id="jobDetail" class ...
- IOS对.Net返回的Base64string解析问题
1.c#生成Base64字符串的代码 string body = "{\"title\":\"上次CVR卡其\",\"url\": ...
- ubuntu网络配置&&ubuntu apt-get错误解决办法
网络配置: 方式1:网卡通过DHCP自动获取IP地址 $ sudo gedit /etc/network/interfaces # 修改文件/etc/network/interfaces如下文 #-- ...