云原生时代,软件交付有何不同 | 研发效能提升36计

简介: 从今天起,我们将开启一个新的专栏:《研发效能提升36计_持续交付篇》。专栏将通过10-20篇文章,系统分享云原生时代,企业如何落地持续交付。

编者按:从今天起,我们将开启一个新的专栏:《研发效能提升36计_持续交付篇》。专栏将通过10-20篇文章,系统分享云原生时代,企业如何落地持续交付,本文是该专栏的开篇。

image.png

                                                                策划&编辑|雅纯

Dora在2018年DevOps年度报告中对软件交付效能提出了一组度量指标,以衡量一个企业的软件交付水平。

image.png

  • 部署频率。指应用将变更部署到生产环境的频率。如每天都有部署,一天能部署十次,还是一天部署一次,或者一个月才部署一次。
  • 变更前置时长。指从代码提交到部署上线并在生产环境运行起来的时长。
  • 服务恢复时间。是服务中断之后到下一次服务能够恢复以继续服务的时长。
  • 变更失败率。是指对生产环境的变更失败的比率,总共变更了多少次,其中有多少次是失败的。

可以看到,“精英”团队的部署频率基本上是按需——只要想发布,就可以随时发布上去。我们将“低效能”和“精英”之间一比较,再对照一下自己的团队,就可以看到自己是属于哪一个象限里,是属于精英、低效能、高效能,还是中等效能。

当然,对于变更失败率一项,有些同学会说:“我每次发布都成功了,我是百分百的。”其实不然,一次完成发布过程,且中间没有任何的干预,也没有事后的修复、回滚是很难的。

在跟很多业务团队、包括外面公司的同学交流时,我们发现,无论是CTO、CIO、还是一线的研发人员,大家都面临一个问题:“我想改变”、“我想做得好”、“我想成为精英”,但是实际做到却很难。为什么?

因为:

1.管理成本越来越高。 人越来越多,管理成本越来越大,协作复杂度也越来越高,开会的时间比干活的时间还多。

2.技术债务也越来越高。 实际生产中,业务往往不会给你很多时间去在一开始就做得很好。于是便有了“我不管怎么样先把业务它跑起来。”但是可能过了一年或者两年之后,你会发现它跑不动了。这种情形在互联网创业里头叫糙快猛。技术债务越来越高之后,要再去做一些事情,就要连本带息要一起还了。

3.新技术引入非常困难。 有一些比较好的技术因为人员的成本的问题,找不到非常优秀的人。另外,有一些技术的门槛较高,需要的技能也纷繁复杂。

不仅如此,软件交付形态的变化也对软件交付效能提出了挑战。

image.png

1.持续的产品交付对软件研发模式要求更高

以前的软件交付是有里程碑的,但是现在不一样了,我们希望每天都有新的东西出来,而不是去完成几个里程碑、或者是三个月、一两年后再出一个东西。我们希望软件的交付是持续地、增量发生的。

以电信设备为例,电信设备的交付,开发环境和生产环境网络是不通的,换而言之,去做一次发布和实施的成本特别高。

这时候,持续的交付就对软件的研发模式提出了更高的要求。不可能再有很长时间的plan,然后等到半年后或者两年后做一个集成来交付实施。它要求你每个迭代都有东西出来。

2.持续升级的服务对可用性提出了更高的要求

当软件可以做到持续发布、升级了,软件的可用性也会相应地被提出更高的要求,不能动不动就断了。对客户来讲,他看到的就是你的一个服务,他对你提供的服务是有感的,因此你的服务需要非常高的可用性。

3.持续的交付需要能高效保证产品质量

质量对持续交付是非常重要的。当产品发布上线,如果有质量问题就很容易导致故障,甚至导致需要公司出面来去做公关。近几年也有很多这样的例子。

俗话说,有挑战就一定有机遇。具体来看,云原生时代,我们面临着2大机遇,可以帮助我们提升软件交付效能。

机遇1:技术发展推动应用架构及部署架构的演进

image.png

(1)应用架构的演进

我们会发现,技术的发展实际上在推动我们的应用架构和部署架构的演进。从资源的角度来说,以前我们应用云托管,而后发展为云优化,再到现在的云原生。我们会发现资源发生了一些变化,而应用架构的也同样发生了变化——从单体应用逐渐发展为了Severless。也就是说从原来挨得越来越近,到慢慢地分得越来越开、拆得越来越小。

(2)部署架构的演进

从部署架构的角度来说,我们也可以看到一些变化,从原来的物理机到现在的BaaS/FaaS。

这样的演进也让我们的整个交付变得更灵活、更解耦,可以做到想发就发,甚至让工程师更多的关注在业务逻辑上。

机遇2:云基础设施和云原生技术的兴起

image.png

(1)云基础设施的层次越来越高

现在云基础设施的抽象层次越来越高了。其实在13年的时候,我们当时对于云基础设施的理解都是“infrastructure”。但随着容器的兴起,我们逐渐看到了容器平台,而后我们又有了PaaS,我们不需要再去关心消息队列、存储、监控等。而今,我们拥有了Serverless,几乎是可以不用写后端,整个的应用后端全部在云上。要做的就是写业务逻辑,而且几乎是前端的业务逻辑。后端服务我只需要按照使用量付费就可以了。

(2)K8S成为事实标准,云原生成为趋势

从K8S到现在的CNCF,我们会发现目前K8S已经是一个事实上的标准。大家不会再去讨论要不要去做云原生,现在的问题是怎么做。

(3)微服务化背景下,服务治理的诉求越来越大

大家都在谈微服务,但微服务会带来很多之前没有的问题。其中一个比较典型的问题就是服务治理。服务太多,怎么进行服务治理、服务发现怎么做、负载均衡、容量调度等等,各种问题都来了。所以大家对服务治理的诉求就变得越来越大。

与此同时,服务的数量越多,复杂性就越高。比如,若一个服务的可用性是99.9%,10个9服务累加便是99.9%的10次方。另外,它本身的复杂性也会越来越高。好比说两个人之间交流很简单的,但三个人交流的时候,我的链路就多了一些。再加上分布式服务间的网络通信,各种各样的异常情况都会出现。这些都是非常现实的问题,也会给我们带来很大的成本。

总结来看,如今我们的软件交付与以前有了非常大的不同。

image.png

云原生时代,我们需要持续交付的模式,以实现更快、更高质量的软件交付。

然而,大多数时候概念十分美好,落地却有各种各样的痛苦。

云原生时代,我们该如何落地持续交付?接下来,我们将通过系列文章,与大家一起梳理云原生时代持续交付的系列实践,敬请期待。

也欢迎在评论区留言,与云效专家互动,说出你想听到的内容~

image.png


欢迎大家使用云效,云原生时代新DevOps平台,通过云原生新技术和研发新模式,大幅提升研发效率。现云效公共云基础版不限人数0元使用。

点击下方链接立即体验云效DevOps全家桶!

https://www.aliyun.com/product/yunxiao?channel=yy_yccb_36

lQLPDhsGzb2HRiHNBDjNB4CwPRTOVsFHvw0B29IABwA0AA_1920_1080.png

相关文章
|
2月前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
针对软件供应链的攻击事件在以每年三位数的速度激增,其中三方或开源软件已经成为攻击者关注的重要目标,其攻击方式和技术也在不断演进。通过供应链的传播,一个底层软件包的漏洞的影响范围可以波及世界。企业亟需更加标准和完善的供应链风险洞察和防护机制。本文将结合最佳实践的形式,面向容器应用完整的生命周期展示如何基于容器服务ACK/ACR/ASM助力企业构建云原生软件供应链安全。
|
2月前
|
Cloud Native API 持续交付
云原生技术:开启现代软件部署的新篇章
在数字化浪潮中,云计算已从简单的资源共享进化到支持复杂应用的平台。云原生技术作为这一演变的核心,不仅重塑了软件开发、部署的方式,还为业务敏捷性、可伸缩性和可靠性设定了新的标准。本文将探讨云原生的基本概念、核心技术及实践方法,揭示它如何引领企业走在数字化转型的前列。
|
3月前
|
运维 Cloud Native Devops
云原生之旅:探索现代软件部署的未来之路
在数字化时代的浪潮下,云计算已不再是新鲜词汇,而云原生技术作为其进阶形态,正引领着软件开发和运维的全新变革。本文将深入浅出地解析云原生的核心概念、优势以及实践路径,旨在为读者揭示这一技术趋势如何重塑我们的数字世界,同时分享个人从传统IT向云原生转型的真实体验和所思所感。
|
3月前
|
运维 Cloud Native 安全
云原生之旅:探索现代软件部署的未来
在数字化转型的浪潮中,企业正寻求更高效、灵活的方式来部署和管理他们的应用程序。云原生技术,作为一种新兴的架构模式,提供了一种解决方案。本文将介绍云原生的基本概念,探讨它如何改变软件开发和运维的方式,并分析其在企业中的应用实例,最后讨论云原生面临的挑战及未来发展趋势。
53 2
|
3月前
|
敏捷开发 Cloud Native 云计算
云原生技术:推动现代软件发展的新引擎
【8月更文挑战第23天】在数字化浪潮的推动下,云原生技术正成为企业数字化转型和软件创新的关键力量。本文将深入探讨云原生技术的核心概念、优势及其在现代软件开发中的应用,旨在为读者提供对云原生技术的全面理解和认识。
|
4月前
|
安全 Cloud Native 网络安全
云原生应用交付
【7月更文挑战第22天】云原生环境下的安全问题易被忽视,导致潜在风险。应用层渗透测试和漏洞扫描是检测安全的关键,尤其是对于CVE漏洞的修复。然而,常见误解认为安全由外部防护处理且不易引入问题。
|
3月前
|
运维 Cloud Native API
云原生之旅:探索现代软件部署的未来
在数字化浪潮中,云原生技术如同一股清流,为软件开发与部署带来了革命性的变革。本文将深入浅出地探讨云原生概念的核心,揭示它如何优化资源利用、提升开发效率,并确保系统的可伸缩性与韧性。通过实际案例,我们一同见证云原生如何在企业中落地生根,助推创新和业务成长。
|
3月前
|
Cloud Native 持续交付 云计算
云原生之旅:探索现代软件部署的变革之路
在数字化浪潮中,云原生技术如同一艘航船,带领企业驶向灵活、高效的未来。本文将深入浅出地探讨云原生的核心理念、关键技术以及实践案例,揭示它如何重塑软件开发与运维的模式,为企业数字化转型提供动力。
49 0
|
5月前
|
Cloud Native 持续交付 云计算
云原生技术:构建未来软件的基石
【6月更文挑战第8天】随着信息技术的飞速发展,云计算已从一项辅助技术转变为企业数字化转型的核心。本文将深入探讨云原生技术的概念、优势及其在现代软件开发中的应用,揭示它是如何成为推动创新和效率提升的关键因素。
|
5月前
|
Cloud Native 物联网 持续交付
云原生技术:构建未来软件的基石
【6月更文挑战第9天】随着云计算的不断发展,云原生技术已经成为了软件开发的新趋势。本文将深入探讨云原生技术的概念、优势以及在实际应用中的重要性。我们将从云原生技术的定义开始,逐步解析其核心组件和实践方法,最后讨论如何利用云原生技术来构建高效、可扩展的软件系统。
47 3