主頁 > 軟體工程 > 云原生時代,軟體交付有何不同 | 研發效能提升36計

云原生時代,軟體交付有何不同 | 研發效能提升36計

2022-01-25 06:43:41 軟體工程

編者按:從今天起,我們將開啟一個新的專欄:《研發效能提升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

 

 

 

 

 

 

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/420424.html

標籤:其他

上一篇:你能在另一個回圈中回圈資料嗎

下一篇:如何高效完成ECS多環境部署?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more