企业建立成功 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 ...
随机推荐
- C++版 - 剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题,ZOJ 1088:System Overload类似)题解
剑指Offer 面试题45:圆圈中最后剩下的数字(约瑟夫环问题) 原书题目:0, 1, - , n-1 这n个数字排成一个圈圈,从数字0开始每次从圆圏里删除第m个数字.求出这个圈圈里剩下的最后一个数字 ...
- Flink集群部署
部署方式 一般来讲有三种方式: Local Standalone Flink On Yarn/Mesos/K8s… 单机模式 参考上一篇Flink从入门到放弃(入门篇2)-本地环境搭建&构建第 ...
- .Net程序员学用Oracle系列(19):导出、导入(备份、还原)
1.传统的导出/导入工具 1.1.EXP 命令详解 1.2.IMP 命令详解 1.3.EXP/IMP 使用技巧 2.新的导出/导入工具 2.1.EXPDP/IMPDP 参数说明 2.2.EXPDP/I ...
- CSS实例详解:Flex布局
本文由云+社区发表 本文将通过三个简单的实例,实际应用上篇文章的基础理论知识,展示下Flex布局是如何解决CSS布局问题. 一.垂直居中 这里同时用非flex布局和flex布局两种方式来实现,可以对比 ...
- Ubuntu16.04环境下搭建基于三台主机的mysql galera cluster集群(实测有效)
(注意: (1)文中红色字体部分不一定需要操作 (2)由于word文档编辑的原因,实际操作时部分命令需要手动输入!!直接复制粘贴会提示错误!! ) 一 搭建环境: 1 Ubuntu16.04版本(系 ...
- DynamicProxy系列目录
C# 1.基于Emit实现动态代理 2.Microsoft.CodeAnalysis动态生成代理类 3.castle dynamicproxy + AutoFac 4.DispatchProxy .R ...
- Redis实现世界杯排行榜功能(实战)
转载请注明出处:https://www.cnblogs.com/wenjunwei/p/9754346.html 需求 前段时间,做了一个世界杯竞猜积分排行榜.对世界杯64场球赛胜负平进行猜测,猜对+ ...
- 面试题·HashMap和Hashtable的区别(转载再整理)
原文链接: Javarevisited 翻译: ImportNew.com- 唐小娟 译文链接: http://www.importnew.com/7010.html HashMap和Hashtabl ...
- 分布式系统监视zabbix讲解十一之zabbix升级--技术流ken
思考 现在有这样一个需求,业务场景想要使用的监控模版没有3.0版本的,只有2.0,我们都知道2.0的模版无法导入进3.0版本的zabbix中,这个时候应该怎么获得3.0的监控模版哪?本篇博客将详细演示 ...
- MySQL系列详解七:MySQL双主架构演示-技术流ken
前言 在企业中,数据库高可用一直是企业的重中之重,中小企业很多都是使用mysql主从方案,一主多从,读写分离等,但是单主存在单点故障,从库切换成主库需要作改动.因此,如果是双主或者多主,就会增加mys ...