本文始發於:雲棲社區
時間:2020-06-01
原文鏈接:https://yq.aliyun.com/articles/763243
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。
image
圖4:git庫的WebHook配置
(4)在cicd的構建頁面,配置構建鏡像和推送鏡像。
圖5:cicd構建頁面配置
(5)執行如下命令配置觸發調用EDAS Open API小程序對外暴露的請求地址,用於訪問EDAS後臺。
圖6:請求地址配置
本期對EDAS及Open API最佳實踐的前兩步工作進行了介紹,下期將對調用EDAS OpenAPI拉取鏡像部署應用進行詳細介紹,敬請期待!
劉偉業
阿里雲智能混合雲PDSA團隊高級解決方案工程師
多年雲計算、金融行業應用運維工作經驗,銀行核心應用運維架構設計與應用維護。專注中間件及數據庫技術,現就職於阿里雲智能GTS-SRE團隊,主要負責中間件領域客戶技術支持工作。
我們是阿里雲智能全球技術服務-SRE團隊,我們致力成為一個以技術為基礎、面向服務、保障業務系統高可用的工程師團隊;提供專業、體系化的SRE服務,幫助廣大客戶更好地使用雲、基於雲構建更加穩定可靠的業務系統,提升業務穩定性。我們期望能夠分享更多幫助企業客戶上雲、用好雲,讓客戶雲上業務運行更加穩定可靠的技術,您可用釘釘掃描下方二維碼,加入阿里雲SRE技術學院釘釘圈子,和更多雲上人交流關於雲平臺的那些事。