1. 程式人生 > 其它 >7招!實現安全高效的流水線管理

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

簡介:雲效團隊多年來為阿里巴巴內部(Aone)和雲上企業使用者(雲效)分別提供研發運維工具,並致力於打造企業級一站式的 DevOps 平臺,更多關注不同型別的企業使用者在使用過程中的管理與協作場景,本文將重點介紹高效安全管理雲效流水線的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配置

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

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

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

在雲效上進行流水線分組操作

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

基於分組批量設定許可權

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

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

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

預置的模板可以直接呼叫

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

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

可在任務組設定中關閉不需要的步驟

第3招:一鍵批量升級流水線

雖然隨著業務規模的增長,企業內部流水線任務越來越多,但由於企業內技術棧基本統一,會出現不同流水線之間只有部分配置(如程式碼源、虛擬主機組等)存在差異,而大部分配置基本相同的情況。

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

因此,雲效提供了通過任務組實現流水線批量升級的功能。

支援在企業設定中新增任務組時,開啟“支援批量升級”功能。

在任務組中開啟「支援批量升級」

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

修改可以同步升級關聯流水線

第4招:設定通用變數組,隨調隨用

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

在雲效流水線中設定環境變數

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

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

在企業設定中設定通用變數

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

在單獨流水線中可以直接配置通用變數

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

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

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

因此,雲效提供了主機組/Kubernetes 叢集管理功能,並支援在主機組和叢集設定許可權。

支援在企業設定中新增主機組,主機組可選擇阿里雲 ECS 和自有主機兩種型別。每個主機組下均可新增多臺主機資源,同時可將企業成員設定為主機組成員,擁有許可權的成員才可以在流水線中選擇該主機組資源。

在主機組中新增主機資源

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

自定義 Kubernetes 叢集

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

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

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

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

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

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

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

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

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

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

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

原文連結

本文為阿里雲原創內容,未經允許不得轉載。