編者按:從今天起,我們將開(kāi)啟一個(gè)新的專(zhuān)欄:《研發(fā)效能提升36計(jì)_持續(xù)交付篇》。專(zhuān)欄將通過(guò)10-20篇文章,系統(tǒng)分享云原生時(shí)代,企業(yè)如何落地持續(xù)交付,本文是該專(zhuān)欄的開(kāi)篇。
在敘州等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需求定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)營(yíng)銷(xiāo)推廣,外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),敘州網(wǎng)站建設(shè)費(fèi)用合理。
策劃&編輯|雅純
Dora在2018年DevOps年度報(bào)告中對(duì)軟件交付效能提出了一組度量指標(biāo),以衡量一個(gè)企業(yè)的軟件交付水平。
可以看到,“精英”團(tuán)隊(duì)的部署頻率基本上是按需——只要想發(fā)布,就可以隨時(shí)發(fā)布上去。我們將“低效能”和“精英”之間一比較,再對(duì)照一下自己的團(tuán)隊(duì),就可以看到自己是屬于哪一個(gè)象限里,是屬于精英、低效能、高效能,還是中等效能。
當(dāng)然,對(duì)于變更失敗率一項(xiàng),有些同學(xué)會(huì)說(shuō):“我每次發(fā)布都成功了,我是百分百的。”其實(shí)不然,一次完成發(fā)布過(guò)程,且中間沒(méi)有任何的干預(yù),也沒(méi)有事后的修復(fù)、回滾是很難的。
在跟很多業(yè)務(wù)團(tuán)隊(duì)、包括外面公司的同學(xué)交流時(shí),我們發(fā)現(xiàn),無(wú)論是CTO、CIO、還是一線的研發(fā)人員,大家都面臨一個(gè)問(wèn)題:“我想改變”、“我想做得好”、“我想成為精英”,但是實(shí)際做到卻很難。為什么?
因?yàn)椋?/p>
1.管理成本越來(lái)越高。人越來(lái)越多,管理成本越來(lái)越大,協(xié)作復(fù)雜度也越來(lái)越高,開(kāi)會(huì)的時(shí)間比干活的時(shí)間還多。
2.技術(shù)債務(wù)也越來(lái)越高。實(shí)際生產(chǎn)中,業(yè)務(wù)往往不會(huì)給你很多時(shí)間去在一開(kāi)始就做得很好。于是便有了“我不管怎么樣先把業(yè)務(wù)它跑起來(lái)。”但是可能過(guò)了一年或者兩年之后,你會(huì)發(fā)現(xiàn)它跑不動(dòng)了。這種情形在互聯(lián)網(wǎng)創(chuàng)業(yè)里頭叫糙快猛。技術(shù)債務(wù)越來(lái)越高之后,要再去做一些事情,就要連本帶息要一起還了。
3.新技術(shù)引入非常困難。有一些比較好的技術(shù)因?yàn)槿藛T的成本的問(wèn)題,找不到非常優(yōu)秀的人。另外,有一些技術(shù)的門(mén)檻較高,需要的技能也紛繁復(fù)雜。
不僅如此,軟件交付形態(tài)的變化也對(duì)軟件交付效能提出了挑戰(zhàn)。
以前的軟件交付是有里程碑的,但是現(xiàn)在不一樣了,我們希望每天都有新的東西出來(lái),而不是去完成幾個(gè)里程碑、或者是三個(gè)月、一兩年后再出一個(gè)東西。我們希望軟件的交付是持續(xù)地、增量發(fā)生的。
以電信設(shè)備為例,電信設(shè)備的交付,開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境網(wǎng)絡(luò)是不通的,換而言之,去做一次發(fā)布和實(shí)施的成本特別高。
這時(shí)候,持續(xù)的交付就對(duì)軟件的研發(fā)模式提出了更高的要求。不可能再有很長(zhǎng)時(shí)間的plan,然后等到半年后或者兩年后做一個(gè)集成來(lái)交付實(shí)施。它要求你每個(gè)迭代都有東西出來(lái)。
當(dāng)軟件可以做到持續(xù)發(fā)布、升級(jí)了,軟件的可用性也會(huì)相應(yīng)地被提出更高的要求,不能動(dòng)不動(dòng)就斷了。對(duì)客戶來(lái)講,他看到的就是你的一個(gè)服務(wù),他對(duì)你提供的服務(wù)是有感的,因此你的服務(wù)需要非常高的可用性。
質(zhì)量對(duì)持續(xù)交付是非常重要的。當(dāng)產(chǎn)品發(fā)布上線,如果有質(zhì)量問(wèn)題就很容易導(dǎo)致故障,甚至導(dǎo)致需要公司出面來(lái)去做公關(guān)。近幾年也有很多這樣的例子。
俗話說(shuō),有挑戰(zhàn)就一定有機(jī)遇。具體來(lái)看,云原生時(shí)代,我們面臨著2大機(jī)遇,可以幫助我們提升軟件交付效能。
(1)應(yīng)用架構(gòu)的演進(jìn)
我們會(huì)發(fā)現(xiàn),技術(shù)的發(fā)展實(shí)際上在推動(dòng)我們的應(yīng)用架構(gòu)和部署架構(gòu)的演進(jìn)。從資源的角度來(lái)說(shuō),以前我們應(yīng)用云托管,而后發(fā)展為云優(yōu)化,再到現(xiàn)在的云原生。我們會(huì)發(fā)現(xiàn)資源發(fā)生了一些變化,而應(yīng)用架構(gòu)的也同樣發(fā)生了變化——從單體應(yīng)用逐漸發(fā)展為了Severless。也就是說(shuō)從原來(lái)挨得越來(lái)越近,到慢慢地分得越來(lái)越開(kāi)、拆得越來(lái)越小。
(2)部署架構(gòu)的演進(jìn)
從部署架構(gòu)的角度來(lái)說(shuō),我們也可以看到一些變化,從原來(lái)的物理機(jī)到現(xiàn)在的BaaS/FaaS。
這樣的演進(jìn)也讓我們的整個(gè)交付變得更靈活、更解耦,可以做到想發(fā)就發(fā),甚至讓工程師更多的關(guān)注在業(yè)務(wù)邏輯上。
(1)云基礎(chǔ)設(shè)施的層次越來(lái)越高
現(xiàn)在云基礎(chǔ)設(shè)施的抽象層次越來(lái)越高了。其實(shí)在13年的時(shí)候,我們當(dāng)時(shí)對(duì)于云基礎(chǔ)設(shè)施的理解都是“infrastructure”。但隨著容器的興起,我們逐漸看到了容器平臺(tái),而后我們又有了PaaS,我們不需要再去關(guān)心消息隊(duì)列、存儲(chǔ)、監(jiān)控等。而今,我們擁有了Serverless,幾乎是可以不用寫(xiě)后端,整個(gè)的應(yīng)用后端全部在云上。要做的就是寫(xiě)業(yè)務(wù)邏輯,而且?guī)缀跏乔岸说臉I(yè)務(wù)邏輯。后端服務(wù)我只需要按照使用量付費(fèi)就可以了。
(2)K8S成為事實(shí)標(biāo)準(zhǔn),云原生成為趨勢(shì)
從K8S到現(xiàn)在的CNCF,我們會(huì)發(fā)現(xiàn)目前K8S已經(jīng)是一個(gè)事實(shí)上的標(biāo)準(zhǔn)。大家不會(huì)再去討論要不要去做云原生,現(xiàn)在的問(wèn)題是怎么做。
(3)微服務(wù)化背景下,服務(wù)治理的訴求越來(lái)越大
大家都在談微服務(wù),但微服務(wù)會(huì)帶來(lái)很多之前沒(méi)有的問(wèn)題。其中一個(gè)比較典型的問(wèn)題就是服務(wù)治理。服務(wù)太多,怎么進(jìn)行服務(wù)治理、服務(wù)發(fā)現(xiàn)怎么做、負(fù)載均衡、容量調(diào)度等等,各種問(wèn)題都來(lái)了。所以大家對(duì)服務(wù)治理的訴求就變得越來(lái)越大。
與此同時(shí),服務(wù)的數(shù)量越多,復(fù)雜性就越高。比如,若一個(gè)服務(wù)的可用性是99.9%,10個(gè)9服務(wù)累加便是99.9%的10次方。另外,它本身的復(fù)雜性也會(huì)越來(lái)越高。好比說(shuō)兩個(gè)人之間交流很簡(jiǎn)單的,但三個(gè)人交流的時(shí)候,我的鏈路就多了一些。再加上分布式服務(wù)間的網(wǎng)絡(luò)通信,各種各樣的異常情況都會(huì)出現(xiàn)。這些都是非?,F(xiàn)實(shí)的問(wèn)題,也會(huì)給我們帶來(lái)很大的成本。
云原生時(shí)代,我們需要持續(xù)交付的模式,以實(shí)現(xiàn)更快、更高質(zhì)量的軟件交付。
然而,大多數(shù)時(shí)候概念十分美好,落地卻有各種各樣的痛苦。
云原生時(shí)代,我們?cè)撊绾温涞爻掷m(xù)交付?接下來(lái),我們將通過(guò)系列文章,與大家一起梳理云原生時(shí)代持續(xù)交付的系列實(shí)踐,敬請(qǐng)期待。
也歡迎在評(píng)論區(qū)留言,與云效專(zhuān)家互動(dòng),說(shuō)出你想聽(tīng)到的內(nèi)容~
歡迎大家使用云效,云原生時(shí)代新DevOps平臺(tái),通過(guò)云原生新技術(shù)和研發(fā)新模式,大幅提升研發(fā)效率。現(xiàn)云效公共云基礎(chǔ)版不限人數(shù)0元使用。
點(diǎn)擊下方鏈接立即體驗(yàn)云效DevOps全家桶!
https://www.aliyun.com/product/yunxiao?channel=yy_yccb_36
了解更多關(guān)于云效 DevOps 的最新動(dòng)態(tài),可微信搜索并關(guān)注【云效】公眾號(hào);
福利:公眾號(hào)后臺(tái)回復(fù)【研發(fā)效能】,可獲得精品課程【阿里巴巴研發(fā)效能提升 36 計(jì)】
ps:大家都在看,本課程將從研發(fā)效能的定義和度量著手,逐漸深入解析來(lái)自不同業(yè)務(wù)部門(mén)提升持續(xù)交付能力的實(shí)踐、方法和工具,同時(shí)還將分享如何基于持續(xù)交付能力,切實(shí)提升產(chǎn)品和業(yè)務(wù)創(chuàng)新的效率和效果。
看完覺(jué)得對(duì)您有所幫助別忘記點(diǎn)贊、收藏和關(guān)注呦;