1 背景
企業級分布式應用服務EDAS(Enterprise Distributed Application Service)是阿裡雲原生産品體系的核心産品之一,為複雜微服務的建構和托管提供端到端應用生命周期管理。在不少企業級場景中,EDAS會被內建到客戶側的研發測試的IT流程中形成更加完整的企業IT雲化整體解決方案,如對接到客戶的CMP多雲管理平台,被串聯到客戶的CICD流水線中,和客戶的統一監控運維平台對接等。對于以上場景我們在多個真實項目中幫助客戶一起完成了整體實踐的設計和落地,在這裡以最佳實踐的方式系統性地輸出給專有雲的廣大客戶進行參考,以期EDAS可以在各行業的客戶場景中更好地被使用、被內建。
本次最佳實踐通過打通客戶側GitLab、Jenkins與專有雲企業版提供的EDAS和ACK來幫助客戶建構端到端企業級雲原生CICD流水線。具體實作思路為通過JAVA編寫一個EDAS-SDK适配插件,Jenkins通過在腳本庫預先設定的SHELL腳本來調用該插件,進而內建EDAS在持續傳遞層面的能力。
2 軟體環境
本期最佳實踐基于阿裡雲專有雲企業版V3.9.0版,EDAS控制台由Apsara Stack控制台單點登入并跳轉。
3 基于GitLab+Jenkins+Edas+K8S組裝CICD流水線
3.1 操作流程
本期最佳實踐涉及的任務流程如下:
(1)開發送出代碼(本示例中代碼管理在GitLab中)。
(2)WebHook觸發Jenkins的建構任務。
(3)調用EDAS OpenAPI拉取鏡像部署應用。
3.2 送出代碼
(1)開發送出代碼到git本地倉庫。
(2)開發對需要釋出的版本打上Tag。
(3)通過GitLab的tag push,将本地倉庫代碼同步到遠端的gitLab服務上。
3.3 WebHook觸發Jenkins的建構任務
送出代碼到GitLab服務,WebHook觸發Jenkins的建構任務,Jenkins和WebHook配置如下:
(1)在cicd的源碼管理頁面,配置git庫位址。

圖1:git庫位址配置
(2)在cicd的建構觸發器頁面,配置觸發器,并擷取觸發器的URL和Secret Token。
圖2:建構觸發器示意圖-1
圖3:建構觸發器示意圖-2
(3)在cicd的Settings頁面,配置git庫的WebHook。
說明:URL和Secret Token的值即上一步中擷取的觸發器的URL和Secret Token。
圖4:git庫的WebHook配置
(4)在cicd的建構頁面,配置建構鏡像和推送鏡像。
圖5:cicd建構頁面配置
(5)執行如下指令配置觸發調用EDAS Open API小程式對外暴露的請求位址,用于通路EDAS背景。
圖6:請求位址配置
本期對EDAS及Open API最佳實踐的前兩步工作進行了介紹,下期将對調用EDAS OpenAPI拉取鏡像部署應用進行詳細介紹,敬請期待!
劉偉業
阿裡雲智能混合雲PDSA團隊進階解決方案工程師
多年雲計算、金融行業應用運維工作經驗,銀行核心應用運維架構設計與應用維護。專注中間件及資料庫技術,現就職于阿裡雲智能GTS-SRE團隊,主要負責中間件領域客戶技術支援工作。
我們是阿裡雲智能全球技術服務-SRE團隊,我們緻力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基于雲建構更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運作更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿裡雲SRE技術學院釘釘圈子,和更多雲上人交流關于雲平台的那些事。