云效 AppStack 通過應用中心化管理、應用模板支持和批量升級功能,簡化微服務應用的配置管理,提升效率,減少錯誤,實現對上百個應用和上千條流水線的高效管理和批量授權。
1. 使用模板一鍵創建應用
在企業中,通常同類應用的研發會采用相同的技術棧。例如,Web 類后端服務常用 Java 開發語言、Spring Boot 框架和 K8s 部署形態,而前端服務則常用 Node.js 開發語言和 K8s 部署形態。由于這類應用的研發流程、部署架構、環境劃分和角色權限劃分基本相似,可以將其定義為應用模板,從而使同類應用能夠通過模板快速初始化配置。
從示例應用模板快速配置應用
云效提供兩套示例應用模板,您可以直接從示例模板一鍵初始化應用配置,體驗完整應用部署流程;實際應用部署可按需修改部分流程或配置。
Java K8s 應用示例模板:預置測試(鏡像構建+測試環境部署)、預發(鏡像構建+預發環境部署)、生產(鏡像構建+人工卡點+生產環境部署)三條流水線,預置K8s Deployment 部署 YAML,預置開發、測試、預發、生產四套環境。
Java 主機應用示例模板:預置測試、預發、生產三條流水線,預置 Linux 主機部署 Shell 腳本,預置開發、測試、預發、生產四套環境。
企業自定義應用模板一鍵創建應用
示例應用模板旨在幫助快速體驗應用配置和部署流程。在實際業務研發中,企業可以自定義應用模板,以符合其業務特征和研發流程規范。在企業全局設置中,可以新建應用模板(或從現有模板復制),并按照單應用配置方式設置應用環境、流水線和部署 K8s YAML 等。對于應用中少量不同的配置,可以提取為變量,并關聯全局變量組或應用內變量組,以實現差異化配置。
配置模板。
如:Java 構建命令中,某些應用跳過 maven 測試。定義
skipMvnTest
為流水線變量,流水線關聯應用變量組,由變量組取值決定是否跳過。如:部署 K8s YAML 中,某些應用 Deployment 開啟 xx 特殊配置。定義
pilotAutoEnable
為編排配置變量,環境關聯變量組,應用環境部署時由變量組取值決定是否開啟。
新建應用時,選擇上述配置好的模板,即可一鍵初始化應用配置,省去多應用逐個重復配置成本,“解放”雙手。
應用創建成功后,可以批量為應用添加成員并賦予相應角色,以角色權限方式統一為應用的多套環境、多條流水線授權。企業可按需配置開發、測試等各角色的權限點。
2. 模板修改批量升級到應用
隨著應用架構升級、或研發規范的調整,應用配置也需要不斷的升級,通常會選取一兩個試點應用做升級測試,驗證通過后批量推廣到所有應用。典型升級場景示例如下:
場景1:批量修改應用部署配置,增加 sidecar 容器,統一接入監控日志
應用穩定性升級項目要求所有統一接入監控日志,需要在應用部署中增加 skywalking sidecar 容器,用于日志采集、上報等。批量升級步驟如下:
進入
,開啟同步功能。修改模板編排 YAML Demployment 文件,增加 SkyWalking 容器配置。
選擇試點應用,進行配置同步,重新部署試點應用進行測試驗證。
試點應用測試驗證 OK 后,再批量選擇應用同步,批量推廣。同步后,應用下次部署使用最新同步的 YAML 即可生效 skywalking sidecar 容器,進行應用日志采集。
單擊
,可以實時查看各應用同步狀態和同步版本,整體控制升級進度和風險,避免錯改、避免漏改。
場景2:應用研發流程統一增加安全掃描卡點
企業內引入安全掃描能力,安全同學要求將安全掃描結果作為發布流程卡點,沒有通過安全掃描的應用不允許發布。應用批量接入步驟如下:
進入
,開啟同步功能。編輯生產發布階段流水線,增加安全掃描卡點組件。
選擇試點應用,進行配置同步,重新運行試點應用生產階段發布流程,進行流程驗證。
試點應用流程驗證 OK 后,再批量選擇應用同步,批量推廣。同步后,應用下次發布時,生產發布流程將經過「安全掃描卡點」,作為發布卡點。
綜上所述,介紹了如何以應用維度分組管理測試、預發和生產等不同環境的流水線;通過應用模板實現一鍵初始化應用配置;以及通過應用模板的批量同步功能實現對上百個應用和上千條流水線的統一配置管理,從而真正“解放”管理員的雙手,強化企業級管控能力。