7招,实现安全高效的流水线管理
簡介:云效團隊多年來為阿里巴巴內部(Aone)和云上企業(yè)用戶(云效)分別提供研發(fā)運維工具,并致力于打造企業(yè)級一站式的 DevOps 平臺,更多關注不同類型的企業(yè)用戶在使用過程中的管理與協(xié)作場景,本文將重點介紹高效安全管理云效流水線的7招。
概述
傳統(tǒng)流水線 Pipeline 工具,包括 Jenkins、Teamcity、Travis CI 等產品,作為企業(yè) DevOps 中持續(xù)集成/持續(xù)交付的核心工具,從核心功能上來說通常可以概括為以下4點:
1、自動化測試:提供代碼掃描、安全掃描、單元測試等自動化測試工具,確保代碼在集成前已經經過充分測試驗證。
2、集成構建:提供各種語言、框架的應用編譯打包功能,將源碼自動化轉化為可以運行的實際代碼,比如安裝依賴、配置資源等。
3、發(fā)布部署:支持多種資源(虛擬主機、K8S等)的發(fā)布方式,支持通過灰度發(fā)布、分批發(fā)布等各種策略,保障業(yè)務交付的穩(wěn)定。隨著各種云計算的逐漸普及,出現(xiàn)各種各樣的 Iaas/Paas 產品,CI/CD 工具如何支持各種形式的發(fā)布場景成為了一大核心價值。
4、流程編排:通過對不同工具和任務的流程編排能力,實現(xiàn)不同 CI/CD 流程把控。通常來說,流水線工具不但支持串聯(lián)自身提供的測試、構建、部署功能,還會支持企業(yè)打通自有的其他工具(比如 git 倉庫、自動化測試系統(tǒng)等)。
以上幾點,作為 CI/CD 提供的基礎功能,本文不做贅述。
云效團隊多年來為阿里巴巴內部(Aone)和云上企業(yè)用戶(云效)分別提供研發(fā)運維工具,并致力于打造企業(yè)級一站式的 DevOps 平臺,更多關注不同類型的企業(yè)用戶在使用過程中的管理與協(xié)作場景,本文將重點介紹高效安全管理云效流水線的7招:
第1招:基于業(yè)務特性分組管理流水線
第2招:預置流水線模板/任務組/步驟
第3招:一鍵批量升級流水線
第4招:設置通用變量組,隨調隨用
第5招:精細管理主機/集群資源
第6招:靈活管理私有構建集群
第7招:自定義企業(yè)maven配置
第1招:基于業(yè)務特性分組管理流水線
隨著企業(yè)業(yè)務規(guī)模和團隊規(guī)模的逐步發(fā)展,流水線和企業(yè)成員的數(shù)量越來越多。如何讓成員快速定位到自己的流水線,避免成員淹沒在一堆與自己無關的內容中,同時保障業(yè)務發(fā)展的安全性,成為了企業(yè)的共同訴求。
云效支持企業(yè)管理員可以在單條流水線上設置不同成員的查看、運行、編輯等流水線權限。同時也支持對流水線進行分組,并基于分組對多條流水線批量授權。
在云效上進行流水線分組操作
分組支持直接按照部門設置權限,這樣的好處是部門成員發(fā)生變動后,流水線權限也自動發(fā)生變化。企業(yè)成員入職、離職的變動導致的權限變更可以做到自動化處理。
基于分組批量設置權限
第2招:預置流水線模板/任務組/步驟
在云效流水線 Flow 中,流水線是按照 流水線 -> 任務組 -> 步驟組成的,流水線可以由多個任務組編排組成,而每個任務組可以由多個步驟編排而成。
為了方便用戶快速創(chuàng)建流水線,云效流水線 Flow 預置了部分流水線模板、任務組、步驟。
預置的模板可以直接調用
為了支持企業(yè)用戶更加個性化地配置自己的流水線,云效流水線 Flow 中的流水線模板、任務組、步驟均支持企業(yè)自定義創(chuàng)建。可在企業(yè)設置中的流水線模板管理-任務組管理-步驟管理中,創(chuàng)建屬于企業(yè)個性化的內容,企業(yè)成員可以在編輯流水線的過程中使用此部分自定義內容。
此外,在流水線模板管理-任務組管理-步驟管理中,企業(yè)管理員可以關閉企業(yè)不需要的內容以避免造成干擾。
可在任務組設置中關閉不需要的步驟
第3招:一鍵批量升級流水線
雖然隨著業(yè)務規(guī)模的增長,企業(yè)內部流水線任務越來越多,但由于企業(yè)內技術棧基本統(tǒng)一,會出現(xiàn)不同流水線之間只有部分配置(如代碼源、虛擬主機組等)存在差異,而大部分配置基本相同的情況。
當企業(yè)流水線的某些配置(比如構建腳本、人工卡點的審核人員)需要更改時,修改流水線會導致大量的重復工作。
因此,云效提供了通過任務組實現(xiàn)流水線批量升級的功能。
支持在企業(yè)設置中添加任務組時,開啟“支持批量升級”功能。
在任務組中開啟「支持批量升級」
企業(yè)成員在配置流水線過程中,可以選擇已經創(chuàng)建的任務組。此后,企業(yè)管理員編輯修改任務組后,會對關聯(lián)流水線中的任務節(jié)點進行升級。
修改可以同步升級關聯(lián)流水線
第4招:設置通用變量組,隨調隨用
定義環(huán)境變量是實現(xiàn)流水線過程定制化的一種常見方法,可以在執(zhí)行過程的任何階段使用這些變量,云效流水線支持在每條流水線中設置其獨有的環(huán)境變量。
在云效流水線中設置環(huán)境變量
但是有些變量其實是非常通用的變量,企業(yè)內大部分流水線都會用到,這時如果單獨在流水線中進行設置,可導致大量重復工作。因此,云效提供了企業(yè)級管理變量的通用變量組功能。
支持在企業(yè)設置中添加變量組,每個變量組可設置多個變量,且變量均可設置為私密變量,部分敏感參數(shù),如 username、password 等,設置成私密變量后,可以大幅降低安全風險。
在企業(yè)設置中設置通用變量
流水線管理者,只需要在流水線中關聯(lián)變量組,就可在流水線任務中使用該變量。
在單獨流水線中可以直接配置通用變量
第5招:精細管理主機/集群資源
云效流水線 Flow 支持將你的應用構建發(fā)布至虛擬主機或 Kubernetes 集群,同時云效的發(fā)布能力并不局限于阿里云服務器(ECS)和阿里云容器服務 Kubernetes(ACK),其他云廠商或者企業(yè)自建的虛擬主機或 Kubernetes 集群也可以通過云效實現(xiàn)部署。
在實際生產應用過程中,主機和集群資源作為企業(yè)的基礎設施,其使用權限需要嚴格把控,以確保線上業(yè)務的安全性。
因此,云效提供了主機組/Kubernetes 集群管理功能,并支持在主機組和集群設置權限。
支持在企業(yè)設置中添加主機組,主機組可選擇阿里云 ECS 和自有主機兩種類型。每個主機組下均可添加多臺主機資源,同時可將企業(yè)成員設置為主機組成員,擁有權限的成員才可以在流水線中選擇該主機組資源。
在主機組中添加主機資源
同樣,支持在企業(yè)設置中添加 Kubernetes 集群,主機組可選擇阿里云容器服務 Kubernetes(ACK) 和自定義集群兩種類型。可將企業(yè)成員設置為集群成員,擁有權限的成員才可以在流水線中選擇該集群資源。
自定義 Kubernetes 集群
第6招:靈活管理私有構建集群
云效流水線 Flow 為企業(yè)提供了穩(wěn)定、可靠的構建資源,并提供了北京和香港兩個 region 構建集群,企業(yè)用戶無需再自行創(chuàng)建并維護構建機,降低了企業(yè)整體的上云成本。
然而,云效提供的構建統(tǒng)一的免費資源并無法解決部分企業(yè)特性問題:
- 特殊的網(wǎng)絡環(huán)境,無法直接從公網(wǎng)和云效打通。
- 特殊的構建機環(huán)境,云效無法直接提供。
因此,云效提供了構建集群管理功能,如果有特殊的構建環(huán)境需求,用戶可在 Flow 中創(chuàng)建并使用私有的構建集群。
云效流水線 Flow 支持使用阿里云 ECS 或者自有主機作為構建集群。
在流水線的任務節(jié)點中,可以選擇企業(yè)自定義的構建集群執(zhí)行構建任務。
第7招:自定義企業(yè)maven配置
在云效流水線 Flow 中使用 Java 構建任務,云效流水線 Flow 會自動幫你代理阿里云 Maven 公庫和云效企業(yè)私庫 Packages,企業(yè)用戶可以將企業(yè)依賴文件上傳至 Packages 倉庫,完成構建依賴下載的打通。
然而,對于使用 Java 技術棧的企業(yè),通常都會有屬于企業(yè)內部特有的 Maven 配置。
因此,云效提供了企業(yè) Maven 配置功能,支持在企業(yè)設置中上傳自定義 settings.xml 文件,Flow 會根據(jù)你的配置執(zhí)行 Java 構建任務。
原文鏈接
本文為阿里云原創(chuàng)內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的7招,实现安全高效的流水线管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学信网:研究生云复试平台快速搭建上线
- 下一篇: 一种命令行解析的新思路(Go 语言描述)