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


2.持续升级的服务对可用性提出了更高的要求 当软件可以做到持续发布、升级了 , 软件的可用性也会相应地被提出更高的要求 , 不能动不动就断了 。 对客户来讲 , 他看到的就是你的一个服务 , 他对你提供的服务是有感的 , 因此你的服务需要非常高的可用性 。
3.持续的交付需要能高效保证产品质量 质量对持续交付是非常重要的 。 当产品发布上线 , 如果有质量问题就很容易导致故障 , 甚至导致需要公司出面来去做公关 。 近几年也有很多这样的例子 。
俗话说 , 有挑战就一定有机遇 。 具体来看 , 云原生时代 , 我们面临着2大机遇 , 可以帮助我们提升软件交付效能 。
机遇1:技术发展推动应用架构及部署架构的演进

(1)应用架构的演进
我们会发现 , 技术的发展实际上在推动我们的应用架构和部署架构的演进 。 从资源的角度来说 , 以前我们应用云托管 , 而后发展为云优化 , 再到现在的云原生 。 我们会发现资源发生了一些变化 , 而应用架构的也同样发生了变化——从单体应用逐渐发展为了Severless 。 也就是说从原来挨得越来越近 , 到慢慢地分得越来越开、拆得越来越小 。
(2)部署架构的演进
从部署架构的角度来说 , 我们也可以看到一些变化 , 从原来的物理机到现在的BaaS/FaaS 。
这样的演进也让我们的整个交付变得更灵活、更解耦 , 可以做到想发就发 , 甚至让工程师更多的关注在业务逻辑上 。
机遇2:云基础设施和云原生技术的兴起

(1)云基础设施的层次越来越高
现在云基础设施的抽象层次越来越高了 。 其实在13年的时候 , 我们当时对于云基础设施的理解都是“infrastructure” 。 但随着容器的兴起 , 我们逐渐看到了容器平台 , 而后我们又有了PaaS , 我们不需要再去关心消息队列、存储、监控等 。 而今 , 我们拥有了Serverless , 几乎是可以不用写后端 , 整个的应用后端全部在云上 。 要做的就是写业务逻辑 , 而且几乎是前端的业务逻辑 。 后端服务我只需要按照使用量付费就可以了 。
(2)K8S成为事实标准 , 云原生成为趋势
从K8S到现在的CNCF , 我们会发现目前K8S已经是一个事实上的标准 。 大家不会再去讨论要不要去做云原生 , 现在的问题是怎么做 。
(3)微服务化背景下 , 服务治理的诉求越来越大
大家都在谈微服务 , 但微服务会带来很多之前没有的问题 。 其中一个比较典型的问题就是服务治理 。 服务太多 , 怎么进行服务治理、服务发现怎么做、负载均衡、容量调度等等 , 各种问题都来了 。 所以大家对服务治理的诉求就变得越来越大 。
与此同时 , 服务的数量越多 , 复杂性就越高 。 比如 , 若一个服务的可用性是99.9% , 10个9服务累加便是99.9%的10次方 。 另外 , 它本身的复杂性也会越来越高 。 好比说两个人之间交流很简单的 , 但三个人交流的时候 , 我的链路就多了一些 。 再加上分布式服务间的网络通信 , 各种各样的异常情况都会出现 。 这些都是非常现实的问题 , 也会给我们带来很大的成本 。
总结来看 , 如今我们的软件交付与以前有了非常大的不同 。
云原生时代 , 我们需要持续交付的模式 , 以实现更快、更高质量的软件交付 。
然而 , 大多数时候概念十分美好 , 落地却有各种各样的痛苦 。
云原生时代 , 我们该如何落地持续交付?接下来 , 我们将通过系列文章 , 与大家一起梳理云原生时代持续交付的系列实践 , 敬请期待 。
也欢迎在评论区留言 , 与云效专家互动 , 说出你想听到的内容~