8个让DevOps转型取得成功的关键步骤
关注嘉为科技,获取运维新知
在数字化时代,企业需要更快更灵活的交付来支持业务运营,这种迫切的需求促成了DevOps的高速发展,成为了企业获得竞争优势的关键。尽管大家都知道DevOps给业务带来的好处,但由于不知道如何在企业中实际落地DevOps,许多企业仍然难以从中获益。
“目前,Devops还在不断的演变,缺乏标准的定义和方法论,并且会带来管理上的风险,这些不确定的因素让许多企业对于是否实施DevOps仍犹豫不决。”Gartner研究总监George Spafford说。
虽然现在还没有业界达成共识的DevOps实施阶段,但Spafford建议I&O(基础架构和运营)领导者们,采取如下八个基本步骤可以让DevOps计划顺利的启动和执行。
1、确定业务需求
在启动DevOps计划之前,首先应该避免没有业务需求而强行为了上DevOps而上DevOps,方法和工具永远没有客户需求重要。
“例如,不要把关注点放在更快的发布上面,而要思考,通过更快的发布能带来什么商业价值。”Spafford解释道。“通过提高APP的发布率,我们将能够更快地进行创新,从而支持销售和营销策略,推动客户通过APP下单。这才是启动DevOps计划的理由。成功的企业知道他们希望从DevOps中实现什么样的商业利益。”
2、在您的企业中重新定义DevOps
Gartner将DevOps定义为一种,使用敏捷方法、协同和自动化,由业务驱动的交付解决方案。但在实际落地的过程中,您应该根据将要实现的业务目标,重新定义DevOps,以便让企业上下的人更容易理解。甚至您可以写一条简短明确的标语做成横幅悬挂在办公室,让大家目标清晰、理念一致,齐心协力朝同一个方向努力。
3、选择“先行者”程序
DevOps在部署前,需要满足下面的三个条件:
环境友好:宽松友好的工作环境,意味着可以有人可以成为“先行者”,第一个站出来进行倡议,并得到大家积极正面的尝试。
价值认同:先行者需要阐明DevOps带来的价值,并获得大家的认同和支持。
风险接受:由于DevOps的模糊性和不确定性,许多人将其视为一场冒险,拒绝DevOps转型。我们可以制定一个风险收益表,列明不同收益相对的可接受的风险水平,DevOps项目中涉及到的每个人:IT、运营、开发、信息安全、监管合规和审计等都应对此有清晰的认识,接受其可能存在的风险。
“DevOps的核心用例是敏捷开发和一些具有相当大不确定性的场景,例如机器学习和物联网(IoT)。但其实DevOps理念可以被广泛应用,在其他领域我们也可以引入DevOps的概念,”Spafford说。“当然,最好先将DevOps用于系统方面的创新,因为现有的功能可能无法支撑诸如大数据、机器学习、物联网等举措。”
4、确定初始团队
人,是确保DevOps 计划成功落地的主要组成部分。选择初始团队的成员时,相对于这个人所掌握的IT技能,我们更应该注重他所呈现出来的状态。技能可以慢慢教会,但好的状态却很难教会。负面的行为状态会让其他人对DevOps的努力付诸东流。我们应该寻找聪明、积极主动、可以理解并承受风险、善于终身学习、能接受新式工作方式的,这样的一个优秀的团队成员。
5、设定目标和考核指标
人是DevOps计划中最重要的部分,找到并实施正确的激励方向至关重要。
Spafford说:“在许多传统组织中,目标是按照部门设定的,IT部门的考核指标已经固化,以解决问题为标准。而在DevOps计划中,需要从团队层面设置目标,与团队的业务目标保持一致。DevOps团队成员必须意识到他们都有相同的目标。考核指标和激励措施的设定方向,需以鼓励团队合作实现业务目标来定,而不是偏向于风险管理或者是个人解决问题的能力。”
6、找到限制因素
I&O领导者应该找到限制生产力的最大瓶颈。DevOps是一种全新的、充满变化的系统,将其上线到生产的过程中时,会有一个制约其生产力的最大的限制因素。找到这个最大的限制因素,DevOps团队可以清晰的知道是什么打乱了节奏、扯了后腿,从容解决这个瓶颈。
7、开发工具链
真正的DevOps要实现的总体目标包括一个集成的工具链,该工具链支持评估和选择工具,以便在应用程序生命周期中,每个工具都可以与其相邻的工具松散地耦合。通过工具链,链接所有的自动化接触点和信息流可加快版本发布速度,同时减少错误、缺陷、返工和停机。这将使每个阶段所使用的工具保持一致,并提供全新的视图,发现在阶段内或者不同阶段之间,哪里需要进行自动化、集成或者是切换工具。
8、准备好了再扩展DevOps的规模
太多的公司错误地认为,在启动DevOps之前,需要扩展DevOps的规模才能获得更多的支持。这将导致恶性循环:不知道如何扩展DevOps,他们无法启动项目;而且因为他们无法启动项目,他们无法搞懂如何去做扩展。
“在切实准备好之前,不要试图扩展DevOps项目,以免损害已经看到的成效。”Spafford建议道。
“相反,将你的团队聚集在一起,开始朝着看起来最明朗的方向前进,并解决途中遇到的限制。在人的能力、技术的能力和流程方面的学习和进步需要同步进行。变革带来的技术债务不可避免,但学会管理债务也是新模式的一部分。”
本文翻译自Gartner文章:《8 Steps to Get DevOps Right》
原文链接:https://www.gartner.com/smarterwithgartner/8-steps-to-get-devops-right/
翻译:嘉为科技
转载请注明出处
8个让DevOps转型取得成功的关键步骤的更多相关文章
- 企业玩转DevOps转型:由弱到强,只需7步
[摘要] 在参考业界方法并总结客户成功故事的基础上,本文提出了“七步法”路线图,希望能帮助更多的企业顺利进行DevOps转型. 从2009年诞生,DevOps已经悄然走过了10多个年头.Gartner ...
- 「DevOps 转型与实践」沙龙回顾第一讲
9 月 19 日,CODING 和中国 DevOps 社区联合举办的深圳第九届 Meetup 在腾讯大厦 2 楼多功能圆满结束.本次沙龙以 「DevOps 转型与实践」 为主题,4 位来自互联网.金融 ...
- DevOps转型到底值不值?
摘要:企业进行DevOps转型是否有价值?是否能计算出明确的投资回报率呢?本文将为您解惑. 本文分享自华为云社区<DevOps转型到底值不值?>,作者:敏捷小智 . 引言 企业都是以盈利为 ...
- IPD体系向敏捷开发模式转型实施成功的四个关键因素
文/杨学明 集成产品开发(IPD).集成能力成熟度模型(CMMI).敏捷开发(Agile Development)是当前国内外企业产品研发管理的最常用的3种模式.随着创新环境的快速发展,许多企业都会 ...
- 实战:阿里巴巴 DevOps 转型后的运维平台建设
导读:阿里巴巴DevOps转型之后,运维平台是如何建设的?阿里巴巴高级技术专家陈喻结合运维自身的理解,业务场景的分析和业界方法论的一些思考,得出来一些最佳实践分享给大家. 前言 “我是这个应用 ...
- 阿里巴巴 DevOps 转型后的运维平台建设
原文:http://www.sohu.com/a/156724220_262549 本文转载自公众号「DevOps 时代」,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长. 作者简介: 陈喻( ...
- DevOps 转型到底难不难(转自成哥的世界)
原文:https://mp.weixin.qq.com/s/QwZf6ZsKGNT6YyereSmpQg DevOps 自 2009 年诞生以来,至今整整过去了十年,从最初的摸索,逐步变成一种主流的软 ...
- 华为精益敏捷专家:DevOps转型中的那些坑
陈军--原腾讯高级项目经理.华为精益敏捷专家 DevOps是现在非常流行的一个词,很多人都在提DevOps,在往那个方向去转,但转的时候坑特别多. 现实是很理想的,大家都觉得做了DevOps之后就会非 ...
- 108天南京银行完成不可能完成的新金融DevOps转型
在2018云栖大会南京峰会企业研发云专场,由南京银行研发管理负责人吴攀带来了“云效助力新金融DevOps转型——南京银行实践之路”的主题分享.首先对南京银行的研发规模与成长做了介绍,对“鑫云+”的诞生 ...
随机推荐
- Spark application注册master机制
直接上Master类的代码: case RegisterApplication(description) => { if (state == RecoveryState.STANDBY) { / ...
- scala-创建泛型数组(T: Manifest)
def arrayT[T: Manifest](ary: T*): Array[T] = {//接受多个参数 val arys = new Array[T](ary.length) //初始化一个数组 ...
- intellij idea 的全局搜索快捷键方法
1.Ctrl+N按名字搜索类 相当于eclipse的ctrl+shift+R,输入类名可以定位到这个类文件,就像idea在其它的搜索部分的表现一样,搜索类名也能对你所要搜索的内容多个部分进行匹配,而且 ...
- Docker入门6------生产力工具rancher
rancher的安装: https://blog.csdn.net/wh211212/article/details/80932264 安装 一行命令就可以安装 sudo docker run -d ...
- 1、vue 笔记之 组件
1.组件个人理解: <组件>是页面的一部分,将界面切分成部分,每部分称为 <组件> 2.组件化思想: //2.1.定义一个全局的组件,组件支持‘驼峰命名 ...
- 使用APScheduler启动Django服务时自动运行脚本(可设置定时运行)
Django搭建的服务器一般都用作WEB网站进行访问,通常的形式是用户访问网站或点击按钮发送请求,Django检测到请求后进行相应的试图函数处理后返回页面给用户. 但是,我们有时会需要有一些后台自动运 ...
- JDBC-DAO层数据访问工具类的实现
private static PreparedStatement pst; private static ResultSet rst; public static <T> int inse ...
- 12.C# 接口和抽象类的区别
1.抽象类 声明方法的存在而不去实现它的类叫做抽象类,抽象类用abstract关键字声明.抽象类主要用来规定某些类的基本特征,继承它的子类必须实现抽象类的抽象成员,否则这个子类也为抽象类. publi ...
- 揭开yield关键字的神秘面纱
写在前言 经常会看见,python函数中带有yield关键字,那么yield是什么,有什么作用? 答案:可以理解yield是一个生成器: 作用:遇到yield关键字,函数会直接返回yield值,相当于 ...
- HDU 3033 分组背包(至少选一个)
分组背包(至少选一个) 我真的搞不懂为什么,所以现在就只能当作是模板来用吧 如果有大牛看见 希望评论告诉我 &代码: #include <cstdio> #include < ...