什么年代了,還不會 CI/CD 么?

目錄

什么是 CI/CD?

CI/CD 對業務有哪些好處?

一:確保卓越的代碼質量

二:更快的發布速度 → 更快的交付

三:自動化降低成本

四:故障隔離

五:簡化回滾

六:持續反饋

七:最佳透明度和問責制

八:提高 MTTR(平均修復時間)

九:監控指標數據

十:減少 Backlog 中的非重要缺陷


本文來源:about.gitlab.com

作者:Valerie Silverthorne

譯者:極狐(GitLab) 市場部內容團隊

數字時代,幾乎每家公司都涉及軟件業務。競爭對手、客戶、投資人及員工都要求更快速地更新軟件。因此,越來越多的企業擁抱現實,并為實現更高效的持續集成和交付上投入更多。

以下 10 個理由進一步闡述了為何企業需要 CI/CD。

什么是 CI/CD?


CI/CD 包括了CI(Continuous Integration,持續集成)和 CD(Continous Delivery,持續交付)兩步流程,通過使用自動化力量大大簡化代碼研發和交付流程

  • CI 使代碼集成和版本控制等研發任務更加高效,從而讓軟件更快上線,投入生產;

  • CD 使軟件測試和部署自動化。

簡而言之,CI/CD 共同構成了現代軟件開發的強大引擎,讓企業獲益良多。

CI/CD 對業務有哪些好處?


以下是企業采用 CI/CD 的十大理由:

一:確保卓越的代碼質量

在 GitLab 2021 年全球 DevSecOps 調研報告中,受訪者表示實踐 DevOps 的原因之一是提升代碼質量,即團隊需要 DevOps 功能之一是 CI/CD。因為 CI/CD 流水線提供測試自動化,研發幾乎可以實時了解代碼問題。“快速失敗” 理念意味著團隊不會在錯誤代碼上浪費時間或資源;并且研發人員在轉戰其他項目時,也不會被無休止的 “修復” 請求所困擾。

節約時間、節約金錢,而且研發人員也不需要頻繁進行上下文切換,換來的是 win-win!

二:更快的發布速度 → 更快的交付

對 CI/CD 收益持懷疑態度的人,請聽全球金融巨頭高盛公司的故事:高盛的技術部門從雙周構建一次,演變到了每天構建 1000 次以上。

當討論加速軟件發布頻率時,統一的 CI/CD 流水線像一個渦輪發動機。代碼發布越快,就可以開發更多新代碼,然后發布,以此往復。業務底線是:當成功的 CI/CD 流水線發揮作用時,昂貴的開發人員資源不會被閑置。

三:自動化降低成本

無需人工干預軟件研發過程,則可以節省時間和金錢。這也就是為什么自動化是成功實踐 DevOps 的基礎。?

CI/CD 自動化了源代碼管理、版本控制、部署機制,還有很多測試工作。其中,測試可以說是最重要的。在 GitLab 2021 年的調研中,測試被認為是發版延遲的罪魁禍首

發版延遲不僅會從成本、品牌、公共關系甚至聲譽的角度影響企業,對于依賴快速上市時間的企業來說也是致命的。歷史上,軟件測試都是手動的,且非常耗時,這也是為什么企業通常一年或半年發版一次。在現如今,企業可以隨時發布,而自動化軟件測試是實現這一切的關鍵。

四:故障隔離

在 DevOps 和 CI/CD 獲得關注之前,研發團隊可能知道代碼中存在問題,但卻苦于得知問題的準確位置。

CI/CD 及自動化測試改變了這一切。研發人員可以輕易識別問題并進行故障隔離,顯著提高生產效率

五:簡化回滾

CI/CD 流水線給予研發人員快速試錯和快速恢復的能力。

一個簡單流程就可以將代碼發布到生產環境,如果發生問題,簡單回滾即可。這種代碼簡單回滾的能力,節約了團隊時間、精力以及資源,并且能夠快速修復問題代碼。

六:持續反饋

作為 DevOps 平臺的一部分,統一的 CI/CD 流程讓團隊中的每個人(包括業務利益相關者),都可以清楚獲悉發生了什么、在哪兒發生以及將會出現什么問題。

這聽起來很簡單,但在現實中,能夠提供統一工具窗口查看完整流程,是革命性的轉變。

因為在過去,需要使用很多的工具來完成項目工作,以至于項目經理不得不在眾多地方查看,甚至詢問一眾人來獲取狀態更新信息,研發和運維也有同樣困擾。顯然,這極大浪費了時間和資源,特別是在出現問題時。

七:最佳透明度和問責制

得益于持續反饋,CI/CD 流水線使得軟件研發流程對業務側完全透明。產品經理對項目狀態一目了然,并根據需要追蹤進度和跟蹤責任。

八:提高 MTTR(平均修復時間)

得益于 CI/CD 流水線的可視化,DevOps 團隊可以快速發現問題并進行快速修復。有一個關鍵指標衡量快速解決問題的能力:平均修復時間(MTTR)。MTTR 越好,DevOps 團隊工作越高效,軟件發版也越快

九:監控指標數據

團隊和業務側都需要知道在代碼實際運行如何。在理想情況下,團隊知道存在代碼問題,并在終端用戶感知到之前進行回滾。但在傳統研發實踐中,監控指標往往是缺失的。

CI/CD 流水線通過多種指標數據的持續反饋,讓“理想”變為現實。訪問指標數據不僅節省時間,也間接改進代碼質量,沒有組織希望與錯誤纏身的代碼和性能不佳的應用程序相關聯。

十:減少 Backlog 中的非重要缺陷

很明顯,CI/CD 可以節約時間和金錢,讓開發人員有時間去處理他們過往沒有精力做的事情,比如回頭去修復老代碼中的問題,將其變得更加整潔和高效。

DevOps 和 CI/CD 給團隊帶來了改變:開發人員不僅可以解決積壓的問題,還可以處理非關鍵缺陷,讓產品更加完美。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165586.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165586.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165586.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

設計模式——行為型模式(二)

6.8 迭代器模式 6.8.1 概述 定義:提供一個對象來順序訪問聚合對象中的一系列數據,而不暴露聚合對象的內部表示。 6.8.2 結構 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定義存儲、添加、刪除聚合元素以及創建迭代器對象的接口。具體聚合(ConcreteAggreg…

C# Onnx PP-Vehicle 車輛分析(包含:車輛檢測,識別車型和車輛顏色)

目錄 效果 模型信息 mot_ppyoloe_s_36e_ppvehicle.onnx vehicle_attribute_model.onnx 項目 代碼 下載 其他 C# Onnx PP-Vehicle 車輛分析(包含:車輛檢測,識別車型和車輛顏色) 效果 模型信息 mot_ppyoloe_s_36e_ppvehi…

009 OpenCV 二值化 threshold

一、環境 本文使用環境為: Windows10Python 3.9.17opencv-python 4.8.0.74 二、二值化算法 2.1、概述 在機器視覺應用中,OpenCV的二值化函數threshold具有不可忽視的作用。主要的功能是將一幅灰度圖進行二值化處理,以此大幅降低圖像的數…

ASP.NET Core 啟用CORS

瀏覽器的安全阻止一個域的本地頁面請求另外不同域的本地頁面,這個限制叫同源策略,這個安全特性用來阻止惡意站點從別的網站讀取數據 例如假如我有一個頁面叫A.html https://foo.example/A.html 現在頁面A.html有一個ajax代碼嘗試讀取B.html的HTML的源…

【PyQt】(自定義類)陰影遮罩

寫了一個感覺有些用的小玩具。 用于給控件添加陰影遮罩(強調主控件的同時屏蔽其余控件的點擊) 自定義陰影遮罩Mask: from PyQt5.QtCore import QPoint,QRect,Qt,QPoint,QSize from PyQt5.QtWidgets import QWidget,QLabel,QPushButton,QVBoxLayout from PyQt5.QtGu…

leetcode:合并兩個有序鏈表

題目描述 題目鏈接:21. 合并兩個有序鏈表 - 力扣(LeetCode) 題目分析 這個算法思路很簡單:就是直接找小尾插 定義一個tail和head,對比兩個鏈表結點的val,小的尾插到tail->next,如果一個鏈表…

每日一題:LeetCode-589.N叉樹的前序遍歷序列構造二叉樹

每日一題系列(day 01) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

企業微信身份驗證

本篇主要是在上一篇獲取第三方憑證基礎上,用戶通過三方網站自定義授權登錄后獲取用戶信息,以實現用戶綁定登錄功能。 構造第三方應用授權鏈接 如果第三方應用需要在打開的網頁里面攜帶用戶的身份信息, 第一步需要構造如下的鏈接來獲取授權c…

馬養殖場建設VR模擬實訓教學平臺具有靈活性和復用性

為保障養殖場生物安全,避免疫病傳播,學生出入養殖場受時間和地域的限制, 生產實習多以參觀為主,通過畜牧企業技術人員的講解,學生被動了解生產過程。為了解決畜牧養殖實訓難的問題,借助VR技術開展畜牧養殖虛…

通過云服務器部署JavaWeb項目

文章目錄 搭建Java運行環境部署項目更改部分項目代碼打包項目把war包上傳到webapps目錄下驗證程序 搭建Java運行環境 搭建環境的部分比較復雜,為了讓大家的思路更加清晰特別總結為一篇博客點擊查看 部署項目 更改部分項目代碼 打包項目 把war包上傳到webapps目錄…

大洋鉆探系列之三IODP 342航次是干什么的?(下)

上文簡要地介紹IODP342航次的總體情況,本文以航次1個鉆孔(U1403)為例,更為詳細地系統展示大洋鉆探航次的工作和成果。 ?編輯? 站位疊加多波束影像的成果圖見下圖,從圖中的顏色效果可以看出,此多波束的成…

歸并排序算法

文章目錄 歸并排序一、歸并排序思路二、歸并排序算法模板三、題目代碼 歸并排序 一、歸并排序思路 二、歸并排序算法模板 void merge_sort(int q[], int l, int r) {if (l > r) return;int mid l r >> 1;//中間值merge_sort(q, l, mid);merge_sort(q, mid 1, r);…

大數據分析與應用實驗任務九

大數據分析與應用實驗任務九 實驗目的 進一步熟悉pyspark程序運行方式; 熟練掌握pysaprkRDD基本操作相關的方法、函數,解決基本問題。 實驗任務 進入pyspark實驗環境,打開命令行窗口,輸入pyspark,完成下列任務&am…

Redis入門教程

1. 什么是NoSql NoSQL一詞最早出現于1998年,是Carlo Strozzi開發的一個輕量、開源、不提供SQL功能的關系數據庫。2009年,Last.fm的Johan Oskarsson發起了一次關于分布式開源數據庫的討論,來自Rackspace的Eric Evans再次提出了NoSQL的概念&am…

onnx導出報錯 | IndexError: index_select(): Index is supposed to be a vector

解決方案: 在torch.onnx.export鐘添加do_constant_foldingFalse,如下 torch.onnx.export(model,(None, text),text_fp32_onnx_path,input_names[text],output_names[unnorm_text_features],export_paramsTrue,opset_version13,verboseTrue,do_constant_…

編程參考 - C++ Code Review: 一個計算器的項目

GitHub - jroelofs/calc: Toy Calculator Toy Calculator 1,拿到一個project,第一眼看,沒有配置文件,說明沒有引入持續集成系統,continuous integration system。 2,然后看cmake文件,使用的子…

使用Python的turtle模塊繪制鋼鐵俠圖案

1.1引言: 在Python中,turtle模塊是一個非常有趣且強大的工具,它允許我們以一個可視化和互動的方式學習編程。在本博客中,我們將使用turtle模塊來繪制鋼鐵俠的圖案。通過調用各種命令,我們可以引導turtle繪制出指定的圖…

第十四章 控制值的轉換 - 在DISPLAYLIST中投影值

文章目錄 第十四章 控制值的轉換 - 在DISPLAYLIST中投影值在DISPLAYLIST中投影值 第十四章 控制值的轉換 - 在DISPLAYLIST中投影值 在DISPLAYLIST中投影值 對于 %String 類型(或任何子類)的屬性,XML 投影可以使用 DISPLAYLIST 參數。 簡單…

CrystalDiskInfo/CrystalDiskMark/DiskGenius系統遷移

CrystalDiskInfo 主要用于看硬盤的各種信息,包括但不限于硬盤通電時間、通電次數、硬盤好壞狀態 CrystalDiskMark 主要用于測試硬盤的讀寫速度、連續讀寫速度 DiskGenius 主要用于通過U盤裝操作系統后進行,磁盤分區,更改磁盤名、隱藏部分…