企业建立成功 DevOps 模式所需应对的5个挑战
【编者按】本文作者为 Kevin Goldberg,主要介绍要想成功部署 DevOps 模式,企业所需应对的5大挑战与问题。文章系国内 ITOM 管理平台 OneAPM 编译呈现。
要给 DevOps 下个简明、准确而又恰当的定义真不是件容易的事儿。不过,以前看到过一句话,似乎能较好地解释什么是 DevOps——“DevOps 是一种文化、运动或者实践,它强调软件开发人员和其他 IT 专业技术人员之间的沟通与协作,以共同促进软件交付流程和基础设施变更的自动化。”
现在,你明白了什么是 DevOps,什么不是 DevOps,那么你又要思考,为什么你的企业应该使用 DevOps?除了打破两个分散部门之间独立的工作模式,你还可以期待怎样的显著变化和成果?根据 Puppet 最新的《DevOps 现状报告》,他们发现“高效能的IT组织比低效能的IT组织经历的故障要少 60 倍,故障恢复速度要快 168 倍。而且,他们的部署时间要短 200 倍但部署频率却高出 30 倍。”简单地说就是,成功的 DevOps 组织能在更短的时间内实现更快的产品发布频率,而且出现的问题更少。
要实现更具有协作性的 DevOps 转变,在开始前,必须搞清楚公司可能会面临哪些潜在的挑战。
1. 切记不要由上而下发起
这是很多企业试图在内部实现 DevOps 时最常遇到的问题之一。在实际过程中,任何高管都不可能直接将一个成功的 DevOps 模式生搬硬套,一声令下就开始在整个公司内实施。因为这根本不可能由上而下地推行。
成功的 DevOps 运动应该由“草根”发起,然后演变成一场全公司的文化变革。最完美的情况是,几个开发和运维人员凑在一起,共同处理一些小事件,并在合作过程中建立起良好的默契。然后这种新式的团队氛围逐渐升温,自然而然地向双方部门渗透,最终形成步调一致的反馈流程和工作节奏。
2. 从正确的项目开始
很多大中型企业的员工和办事处遍布全球。毫无疑问,这给协作带来了巨大的挑战。因为无论是语言障碍还是时差问题,又或者只是因为各部门之间的分散独立,总之公司越大,就越难形成一个完善的 DevOps 模式。这就是为什么使用正确的工具促进协作至关重要(后面再详细讨论这个问题)。同样重要的是,开始部署 DevOps 时,必须选择正确的项目。
通过使用各种工具,如果你的 DevOps 团队一步一个脚印地向前迈进,虽然一路进展缓慢,但是确实取得了实质性的成果,那么全球的团队成员就会更加关注这个新的工作模式,并且迫切地想要加入其中。运维和开发团队通力合作完成的产品,其质量也会更好,而且所有的团队成员都会为此感到骄傲。尤其是看到了自己的工作成果以后,每个成员将会更有责任感,接下来的工作也会更加努力。
3. 策略、云和工具的革新
“遗留”,在这里指的是那些阻碍 DevOps 运动的策略性和工具性挑战。首先最重要的是有关团队氛围和文化的遗留问题。我们经常听到管理层说:“我们一直都是这样做的”。没错,这就是笔者为什么开篇就强调要从公司的技术层而不是管理层推动 DevOps 运动。因为下面的人既需要也想要向 DevOps 发展,一旦他们取得了成效,上面也就不会有太多的反对意见。
第二个遗留问题是关于现有的工具。如果你的团队还在使用一些发布缓慢且不敏捷的古董级工具,那么你可以借此开始讨论工具的迁移问题。越来越多的企业已经在云和集成产品上投入了大量的资金和信任。你在决定要购买哪些工具时,一定要考虑它们是否和应用程序的生命周期相匹配,以及它们和其他工具是否能共同发挥最大的效用。
4. 量化成果与影响
我们经常听到的另一个挑战是,企业里很多成功的 DevOps 团队很难得到管理层的支持,因为他们的成果难以量化。虽然Puppet的调查报告显示 DevOps 成绩斐然,但是公司的管理层未必这么认为。作为 DevOps 团队的领头羊,你需要考虑以下几个问题:
你的团队多久发布一次更新?
发布更新后,获得了多少支持票?
平均多久发布一个应用?
每次发布的应用带来了怎样的收益,以及/或者形成了怎样的品牌影响?
这些问题有助于评定你目前的发布流程和绩效,并发现哪些地方可以实现最大程度的改进。一旦明确了这些问题,你就可以拿着这份最适合公司情况的 KPI 数据去和管理团队谈你的成果。
5. 选择适用于整个生命周期的工具集
几个星期前,笔者写了一篇关于如何选择最好的工具以及如何将这些工具映射到应用程序生命周期的文章。其实这个策略怎么强调都不过分,因为我们经常看到有些团队选择工具只是因为它们看起来很酷,又或者是有些团队想要这些工具,最后却出于各种原因再也不用了。
如果你有兴趣了解更多关于 DevOps 工具包的内容,请点击此处阅读我们的免费电子书籍。
本文系 OneAPM 工程师编译整理。OneAPM Cloudinsight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客。
本文转自 OneAPM 官方博客
原文地址:https://blog.appdynamics.com/devops/5-challenges-for-a-successful-enterprise-devops-model/
企业建立成功 DevOps 模式所需应对的5个挑战的更多相关文章
- 企业玩转DevOps转型:由弱到强,只需7步
[摘要] 在参考业界方法并总结客户成功故事的基础上,本文提出了“七步法”路线图,希望能帮助更多的企业顺利进行DevOps转型. 从2009年诞生,DevOps已经悄然走过了10多个年头.Gartner ...
- 搭建DevOps模式的项目
在后端的开发领域,各类开发框架都已经很多,在开发项目时可以根据不同的需要和需求选择合适的开发框架.然而在需要开发一个完善的工程化项目时,仅仅一个后端开发框架是不够的,还面临着在对开发项目的快速迭代中进 ...
- 企业建立私有云的N个理由
简而言之,私有云意味着高效.安全.可控(技术路线是否可控另说了),也意味着高成本.有限弹性.(政绩工程不在讨论范围) 全面回答这个问题,其实包括两个部分:为什么要上云计算,以及为什么要采用私有化部署模 ...
- 企业运营对 DevOps 的「傲慢与偏见」
摘要:出于各种原因,并非所有人都信任 DevOps .有些人觉得 DevOps 只不过给开发者改善产品提供了一个途径而已,还有的人觉得 DevOps 是一堆悦耳的空头支票,甚至有人认为 DevOps ...
- 利用SOLR搭建企业搜索平台 之——模式配置Schema.xml
来源:http://blog.csdn.net/awj3584/article/details/16963525 schema.xml这个配置文件可以在你下载solr包的安装解压目录的\solr\ex ...
- 与某军工背景软件企业分享Azure DevOps Server的经验
DevOps 是英文单词Development和Operations的组合词,是一种用于促进软件开发.运维实施和质量保障部门之间协同工作的过程和方法. 结合软件开发管理规范,应用自动化的构建.测试和发 ...
- 传统码头建设企业:Azure DevOps Server 流水线技术沟通
受某码头建设企业的邀请,与企业软件研发团队就如何利用Azure DevOps Server进行了沟通.结合企业当前技术框架和管理流程,探索利用微软Azure DevOps Server的技术能力,加强 ...
- 测试wss是否连接企业微信成功
企业微信考勤机有时候无法连接,可以使用下面代码来测试下网络情况 <html> <head> <title>测试wss</title> </hea ...
- 建立windows认证模式下的用户登录
第一步:点击控制面板-----管理工具------计算机管理 ,在操作系统的计算机管理界面下,展开本地用户和组,在用户下建立三个用户u1,u2,u3,密码与用户名相同,如图所示. 然后新建一个组叫QQ ...
随机推荐
- java提高(2)---正则表达式(1)常用符号
正则表达式---常用符号 首先声明,我这里列表的是经常使用的一些符号,如果你想得到全部,那建议你通过API中,搜索Pattern类,会得到所有符号. 字符类 [abc] a.b 或 c(简单类) [^ ...
- Django--缓存设置
Django缓存机制 一. 缓存介绍 缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或memcache的缓存中 ...
- PHP取得json前面有乱码(去除文件头部BOM)
curl请求接口时,返回结果如下: {} 想把json转换成数组或者对象,但是用json_decode返回是空的,然后用var_dump打印了一下返回结果,发现结果如下: ) 发现前面多了两个字符,因 ...
- 一些不常用但又很有用的css小tips
1.box-sizing:border-box box-sizing有三个属性:content-box(默认值) || border-box || inhreit.第一个自然不用说,比如我们设置一个d ...
- .NET西安社区 [拥抱开源,又见 .NET] 活动简报
拥抱开源, 又见 .NET」 随着 .NET Core的发布和开源,.NET又重新回到了人们的视野.除了开源.跨平台.高性能以及优秀的语言特性,越来越多的第三方开源库也出现在了Github上——包括M ...
- Centos7搭建邮件服务器-Postfix+Cyrus-sasl+Courier-authlib+Dovecot+ExtMail+Centos7
1.环境介绍 MTA: Postfix 3.1.4 SASL: Cyrus-sasl 2.1.26 ; Courier-authlib 0.66.1(Cyrus-sasl使用Courier-authl ...
- OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系
一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- Tomcat:At least one JAR was scanned for TLDs yet contained no TLDs
启动Tomcat的时候,经常见到这样的BUG: 14-Apr-2019 13:53:25.198 信息 [localhost-startStop-1] org.apache.jasper.serv ...
- 【春华秋实】.NET Framework与.NET Core
C#是微软发布的面向对象的,运行与.NET Framework之上的高级程序设计语言,属于编译型语言,也是目前.NET Framework的主角.C#语言语法简单而优雅,同时也有着很高的开发效率,尤其 ...
- .Net Core实现记录接口执行时间的中间件
项目中有时接口访问时间过长,但是通过浏览器F12查看时,接口访问时间很正常,所以就很奇怪,于是写一个中间件,记录所有接口访问时间的中间件. 一.中间件 中间件是应用程序处理管道中的组件,用来处理请求和 ...