DevOps实践永无止境!

Stella981
• 阅读 361

DevOps实践永无止境!

DevOps一直不断发展。自从2009年有了这个概念以来,DevOps的发展状态就以每年指数级的速度增长。在2019年飞速发展的过程中,各种规模的组织(从企业到初创企业)都对DevOps充满热情。每个组织都有自己的DevOps实践经历。其中一些DevOps实践经历尚未开始,一些实践还在起步阶段,有些实践已经成熟,有些实践已经达到极致。与其他实践不同, DevOps实践永无止境,因为它涉及持续改进。

随着企业逐渐数字化和软件驱动,人们对DevOps本质和发展潜力有了更大的认识。不仅工程师、技术领导者,还有商业领导者都对DevOps的概念,实践和应用感兴趣。人们越来越需要DevOps取得商业效益。

《DevOps2019年状况报告》,可以了解DevOps如何塑造跨行业的软件交付的。 这份报告总结了软件交付的趋势和挑战。 它可以帮助团队用于改善软件交付性能,并最终实现卓越性能。

在本报告中,IT性能称为软件交付性能,以区分软件交付工作与IT服务台和其他支持功能。这是一个期待已久、受欢迎的变化。我还喜欢的一项重要更改,是它增加了完成软件交付周期的操作指标。该报告重点介绍了关于“  软件交付和 运维 (SDO)性能 指标 ”的5项指标,它们侧重于系统级效果。这有助于避免软件度量标准的常见陷阱,后者常常使不同的功能相互冲突,并导致以总体效果为代价的局部优化。

DevOps实践永无止境!

图1:5个SDO性能指标

该报告重点介绍了软件交付性能的四个方面,如下所示:

  1. 部署频率–你从事的主要应用程序或服务,你的组织多久部署一次代码?

  2. 服务变更的交付时间–对于你正在工作的主应用程序或服务,你的变更的交付时间是多少( 即,从代码提交到成功在生产中运行的代码需要多长时间)?

  3. 恢复服务的时间–对于你正在使用的主应用程序或服务,发生服务故障(例如,计划外的服务中断,服务障碍)时,恢复服务通常需要多长时间?

  4. 服务修改的失败率–对于你使用的主应用程序或服务,多少百分比的修改,会导致服务质量下降或需要立即补救(例如服务故障或服务中断,需要热修复,回滚,打补丁)?

对如上四个方面的衡量,会有四个性能:卓越,高,中和低。下表(引用上文的报告)说明了各个方面的详细信息。

DevOps实践永无止境!

图2:软件交付性能的各个方面

另一个方面,我强烈建议添加到此列表中的是“  团队参与度指数 ”,即团队的快乐程度和参与度。我认为团队性能与团队敬业度成正比。团队参与度越高,即团队越快乐和参与度越高,他们产生的结果就越好。

报告中的另一个主题是“  J曲线转换”。下图突出显示了,自动化如何帮助低性能升到中等性能水平,以及测试要求,技术债务和复杂性的增加变得手动控制,从而导致进度变慢。这是一个有趣且“ 值得注意 ”的观察。它强调了自动化并非总是最好的办法。如果你使错误的流程自动化,那么你得到的只是错误的结果,而且更快。

DevOps实践永无止境!

图3:转换的J曲线

持续改进,学习和共享以及利用专业知识,可以使你达到高性能或卓越性能水平- 将团队提升为卓越性能的过程需要的不仅仅是工具。在各个级别(即团队级别,领导级别和赞助者级别)的坚持和毅力是至关重要,会帮助你从中低性能级别突破,以发挥团队最大潜力。 如果我们开始走上实现卓越性能的道路,你会发现自动化,技术实践和持续改进计划是你旅途的催化剂。而测试需求,技术债务和增加的复杂性将成为你的阻碍。我发现锚定和引擎(SailBoat Retrospective)格式提供了一种快速有趣的方法,帮助我们在一幅图片中形象化看到催化剂(engines) 和阻滞剂 (anchors)的关系 (如下所示)。

DevOps实践永无止境!

图4:卓越性能之旅

行业看到了更多的卓越性能

报告证实,卓越性能的比例几乎增加到原来的三倍,低性能的比例下降了,中等性能的比例上升了。要注意的一项主要观察结果是,从低性能到中性能再到高性能的移动不是一个方向。当面对复杂性增加时,团队(正如J曲线中突出显示)可以从高位降为中级,也可以从中级降为低级。总体而言,很高兴看到向上增长的趋势。

DevOps实践永无止境!

图5:不同性能集群

未来的方向

软件交付性能可以通过多种方式决定业务成果。组织推动软件交付性能的能力包括文化,技术实践,清晰的变更过程,持续交付以及有价值的成果。这些功能并不是一蹴而就的,需要对组织DNA进行根本性的改变。

根据我在不同行业和公司中工作的经验,我可以确认这些软件交付性能不是静态的。上面列出的任何功能的变化都会影响软件交付性能,你可能会发现集群性能来回从一个级别波动到另一个级别。关键是保持专注,并通过将其嵌入组织的工作方式,定期来维持它。

译者:王延飞

原文:https://dzone.com/articles/good-to-great-with-devops

END


Kubernetes  线上直播班

DevOps实践永无止境!

DevOps实践永无止境!

DevOps实践永无止境!

本文分享自微信公众号 - K8S中文社区(k8schina)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
5个月前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
5个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
密钥管理系统-为你的天翼云资产上把“锁
本文关键词:数据安全,密码机,密钥管理一、你的云上资产真的安全么?1.2021年1月,巴西的一个数据库30TB数据被破坏,泄露的数据包含有1.04亿辆汽车和约4000万家公司的详细信息,受影响的人员数量可能有2.2亿;2.2021年2月,广受欢迎的音频聊天室应用Clubhouse的用户数据被恶意黑客或间谍窃取。据悉,一位身份不明的用户能够将Clubho
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue