極狐GitLab怎麼樣?如何利用極狐GitLab CI提高生產力?

陳笑笑長大了發表於2021-07-19

極狐GitLab怎麼樣?如何利用極狐GitLab CI提高生產力?

在當前DevOps的趨勢下,持續整合(CI)和持續部署(CD)具有支柱性地位,為了在開發團隊和運營團隊之間搭建橋樑,CI/CD流水線實現了應用程式的自動構建、自動測試和自動部署。如何更好地使用極狐GitLab CI中的流水線功能?下文將給大家介紹一些使用技巧,幫助你利用極狐GitLab CI提高生產力。

在講述使用技巧之前,我們首先來了解下CI/CD流水線的優勢。總的來說,CI/CD流水線可以幫助消除程式碼錯誤帶來的影響,從而使錯誤更容易被修復,這是一款能保障執行任務可見性且大大提高生產效率的工具。由於CI/CD流水線的主要目的是加快開發程式,從而更快地為終端使用者提供價值,所以整個過程始終有提高效率的空間。

接下來,極狐GitLab CI使用技巧請拿走~

有向無環圖 (DAG) 如何實現併發流水線



在基本流水線結構中,同一個階段的所有作業將同時執行,而後續作業必須等待前序作業完成後才能開始。所有階段的作業都遵循這樣的順序。也就是說,上圖中第二階段Test的第一個作業需要等到第一階段BUILD的三個作業全部完成才能開始,這大大減慢了整個流水線的速度。

但是在極狐GitLab平臺,透過使用關鍵詞needs:,您可以為作業定義直接依賴關係,後續作業(如Test 作業2)只需等待相關聯的作業(Build作業3)完成即可開始。透過使用 DAG 策略,您可以從某個專案的流程中節省幾分鐘,從而提高流水線執行速度並降低 CI 分鐘消耗。透過使用 needs: []您可以讓任何階段的工作無需等其他工作完成就能立即執行。

為什麼並行作業會提高生產力?

並非流水線中的所有作業都需要執行相同的時間,有些專案可能只需要幾秒鐘,有些則需要更長的時間才能完成。當一個團隊有很多成員需要等待前序作業完成後才能繼續進行專案時,整個團隊的生產效率就會大幅降低。

為此,極狐GitLab 提供了一種方法來克隆作業,並使用關鍵詞parallel: 使其並行執行從而加快執行速度。並行作業可能無法減少 CI 每分鐘的消耗,但一定能幫助提高工作效率。

使用並行矩陣作業分解大型流水線

在釋出並行矩陣作業之前,為了執行多個包含不同變數的作業例項,必須在 .gitlab-ci-yml 中手動定義作業,如下所示:



極狐GitLab 13.3 版本釋出了並行矩陣作業,可以讓你根據指定的變數在執行時建立作業。假設需要同時執行多個例項,每個例項具有不同的變數值,那麼結合 parallel: 和matrix:就可以做到這一點。透過使用 parallel:和 matrix:,就可以將大型流水線分解為可管理的單元以進行高效維護。

透過父/子流水線降低合併衝突風險



為了更好地管理依賴項,許多組織更喜歡為專案設定單一儲存庫。但是單一儲存庫也有不完善之處。如果用儲存庫託管大量專案,使用單個流水線定義來觸發不同元件的不同自動化流程,流水線效能就會受到負面影響。透過使用基於父子專案的流水線,你可以擁有多個並行執行的子流水線,從而能設計更高效的流水線。使用關鍵字 include: 從而在包含外部 YAML檔案的CI/CD 配置中就可以達到這個目的。在上圖中,父流水線透過關鍵字 trigger:include生成子流水線。這種方法只允許在必要時編輯流水線的一部分,進而減少了發生合併衝突的機會。

合併列車讓目標分支更加穩定

當有大量合併請求流入專案時,存在合併衝突的風險。合併列車是極狐GitLab 的一個強大功能,允許使用者在不破壞目標分支的情況下自動合併一系列已在排隊的合併請求。使用此功能時你可以在列車新增一個 MR,列車將會進行接管,直到MR被合併。

在同一個作業中使用多個快取

從極狐13.11 版本開始,極狐GitLab CI/CD 提供在單個作業中配置多個快取鍵的功能,從而提高流水線效能,並幫助你在作業執行時節省寶貴的開發時間。

高效的流水線如何為你降低成本?

透過使用 CI/CD 策略確保安全合併更改和綠色主機,企業就無需太擔心由於基礎設施故障和程式碼衝突導致的意外停機。

有了更高效的流水線,開發人員能夠減少花在維護上的時間,將更多的時間和空間集中在創造富有想法和創新力的工作上,從而提升程式碼質量改善公司氛圍並提升整體士氣。

好了,以上就是極狐GitLab CI的幾個使用技巧,希望能給到你幫助~


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545225/viewspace-2782128/,如需轉載,請註明出處,否則將追究法律責任。

相關文章