天天看點

7招!實作安全高效的流水線管理

7招!實作安全高效的流水線管理

概述

傳統流水線 Pipeline 工具,包括 Jenkins、Teamcity、Travis CI 等産品,作為企業 DevOps 中持續內建/持續傳遞的核心工具,從核心功能上來說通常可以概括為以下4點:

1、自動化測試: 提供代碼掃描、安全掃描、單元測試等自動化測試工具,確定代碼在內建前已經經過充分測試驗證。

2、內建建構: 提供各種語言、架構的應用編譯打包功能,将源碼自動化轉化為可以運作的實際代碼,比如安裝依賴、配置資源等。

3、釋出部署: 支援多種資源(虛拟主機、K8S等)的釋出方式,支援通過灰階釋出、分批釋出等各種政策,保障業務傳遞的穩定。随着各種雲計算的逐漸普及,出現各種各樣的 Iaas/Paas 産品,CI/CD 工具如何支援各種形式的釋出場景成為了一大核心價值。

4、流程編排: 通過對不同工具和任務的流程編排能力,實作不同 CI/CD 流程把控。通常來說,流水線工具不但支援串聯自身提供的測試、建構、部署功能,還會支援企業打通自有的其他工具(比如 git 倉庫、自動化測試系統等)。

以上幾點,作為 CI/CD 提供的基礎功能,本文不做贅述。

雲效團隊多年來為阿裡巴巴内部(Aone)和雲上企業使用者(雲效)分别提供研發運維工具,并緻力于打造企業級一站式的 DevOps 平台,更多關注不同類型的企業使用者在使用過程中的管理與協作場景,本文将重點介紹高效安全管理雲效流水線的7招:

第1招:基于業務特性分組管理流水線

第2招:預置流水線模闆/任務組/步驟

第3招:一鍵批量更新流水線

第4招:設定通用變量組,随調随用

第5招:精細管理主機/叢集資源

第6招:靈活管理私有建構叢集

第7招:自定義企業maven配置

随着企業業務規模和團隊規模的逐漸發展,流水線和企業成員的數量越來越多。如何讓成員快速定位到自己的流水線,避免成員淹沒在一堆與自己無關的内容中,同時保障業務發展的安全性,成為了企業的共同訴求。

雲效支援企業管理者可以在單條流水線上設定不同成員的檢視、運作、編輯等流水線權限。同時也支援對流水線進行分組,并基于分組對多條流水線批量授權。

7招!實作安全高效的流水線管理

分組支援直接按照部門設定權限,這樣的好處是部門成員發生變動後,流水線權限也自動發生變化。企業成員入職、離職的變動導緻的權限變更可以做到自動化處理。

7招!實作安全高效的流水線管理

在雲效流水線 Flow 中,流水線是按照 流水線 -> 任務組 -> 步驟組成的,流水線可以由多個任務組編排組成,而每個任務組可以由多個步驟編排而成。

7招!實作安全高效的流水線管理

 為了友善使用者快速建立流水線,雲效流水線 Flow 預置了部分流水線模闆、任務組、步驟。

7招!實作安全高效的流水線管理

 為了支援企業使用者更加個性化地配置自己的流水線,雲效流水線 Flow 中的流水線模闆、任務組、步驟均支援企業自定義建立。可在企業設定中的流水線模闆管理-任務組管理-步驟管理中,建立屬于企業個性化的内容,企業成員可以在編輯流水線的過程中使用此部分自定義内容。

此外,在流水線模闆管理-任務組管理-步驟管理中,企業管理者可以關閉企業不需要的内容以避免造成幹擾。

7招!實作安全高效的流水線管理

雖然随着業務規模的增長,企業内部流水線任務越來越多,但由于企業内技術棧基本統一,會出現不同流水線之間隻有部配置設定置(如代碼源、虛拟主機組等)存在差異,而大部配置設定置基本相同的情況。

當企業流水線的某些配置(比如建構腳本、人工卡點的稽核人員)需要更改時,修改流水線會導緻大量的重複工作。

是以,雲效提供了通過任務組實作流水線批量更新的功能。

支援在企業設定中添加任務組時,開啟“支援批量更新”功能。

7招!實作安全高效的流水線管理

 企業成員在配置流水線過程中,可以選擇已經建立的任務組。此後,企業管理者編輯修改任務組後,會對關聯流水線中的任務節點進行更新。

7招!實作安全高效的流水線管理

定義環境變量是實作流水線過程定制化的一種常見方法,可以在執行過程的任何階段使用這些變量,雲效流水線支援在每條流水線中設定其獨有的環境變量。

7招!實作安全高效的流水線管理

但是有些變量其實是非常通用的變量,企業内大部分流水線都會用到,這時如果單獨在流水線中進行設定,可導緻大量重複工作。是以,雲效提供了企業級管理變量的通用變量組功能。

支援在企業設定中添加變量組,每個變量組可設定多個變量,且變量均可設定為私密變量,部分敏感參數,如 username、password 等,設定成私密變量後,可以大幅降低安全風險。

7招!實作安全高效的流水線管理

流水線管理者,隻需要在流水線中關聯變量組,就可在流水線任務中使用該變量。

7招!實作安全高效的流水線管理

雲效流水線 Flow 支援将你的應用建構釋出至虛拟主機或 Kubernetes 叢集,同時雲效的釋出能力并不局限于阿裡雲伺服器(ECS)和阿裡雲容器服務 Kubernetes(ACK),其他雲廠商或者企業自建的虛拟主機或 Kubernetes 叢集也可以通過雲效實作部署。

在實際生産應用過程中,主機和叢集資源作為企業的基礎設施,其使用權限需要嚴格把控,以確定線上業務的安全性。

是以,雲效提供了主機組/Kubernetes 叢集管理功能,并支援在主機組和叢集設定權限。

支援在企業設定中添加主機組,主機組可選擇阿裡雲 ECS 和自有主機兩種類型。每個主機組下均可添加多台主機資源,同時可将企業成員設定為主機組成員,擁有權限的成員才可以在流水線中選擇該主機組資源。

7招!實作安全高效的流水線管理

同樣,支援在企業設定中添加 Kubernetes 叢集,主機組可選擇阿裡雲容器服務 Kubernetes(ACK) 和自定義叢集兩種類型。可将企業成員設定為叢集成員,擁有權限的成員才可以在流水線中選擇該叢集資源。

7招!實作安全高效的流水線管理

雲效流水線 Flow 為企業提供了穩定、可靠的建構資源,并提供了北京和香港兩個 region 建構叢集,企業使用者無需再自行建立并維護建構機,降低了企業整體的上雲成本。

然而,雲效提供的建構統一的免費資源并無法解決部分企業特性問題:

  • 特殊的網絡環境,無法直接從公網和雲效打通。
  • 特殊的建構機環境,雲效無法直接提供。

是以,雲效提供了建構叢集管理功能,如果有特殊的建構環境需求,使用者可在 Flow 中建立并使用私有的建構叢集。

雲效流水線 Flow 支援使用阿裡雲 ECS 或者自有主機作為建構叢集。

7招!實作安全高效的流水線管理

在流水線的任務節點中,可以選擇企業自定義的建構叢集執行建構任務。

7招!實作安全高效的流水線管理

在雲效流水線 Flow 中使用 Java 建構任務,雲效流水線 Flow 會自動幫你代理阿裡雲 Maven 公庫和雲效企業私庫 Packages,企業使用者可以将企業依賴檔案上傳至 Packages 倉庫,完成建構依賴下載下傳的打通。

然而,對于使用 Java 技術棧的企業,通常都會有屬于企業内部特有的 Maven 配置。

是以,雲效提供了企業 Maven 配置功能,支援在企業設定中上傳自定義 settings.xml 檔案,Flow 會根據你的配置執行 Java 建構任務。

7招!實作安全高效的流水線管理

歡迎大家使用雲效,雲原生時代新DevOps平台,通過雲原生新技術和研發新模式,大幅提升研發效率。現雲效公共雲基礎版不限人數0元使用。

https://www.aliyun.com/product/yunxiao?channel=yy_rccb

關于我們

了解更多關于雲效DevOps的最新動态,可微信搜尋關注【雲效】公衆号;

彩蛋:公衆号背景回複【指南】,可獲得《阿裡巴巴DevOps實踐指南》&《10倍研發效能提升案例集》;

看完覺得對您有所幫助别忘記點贊、收藏和關注呦;

繼續閱讀