天天看點

Zadig + Gitee:完美實作微服務架構持續傳遞

作者:運維開發故事
Zadig + Gitee:完美實作微服務架構持續傳遞

Gitee.com(碼雲) 是開源中國推出的代碼托管平台,支援 Git 和 SVN,目前已有超過 800 萬的開發者選擇 Gitee,随着 Zadig 社群小夥伴對 Gitee 呼聲越來越高,在剛剛釋出的 Zadig V1.11.0 版本中正式加入了對 Gitee 代碼源的支援,同時結合 Zadig 強大的環境管理能力和 Git Webhook 能力,可以幫助更多工程師高效、愉悅的傳遞。

本文将介紹 Gitee 倉庫管理的項目如何在 Zadig 上快速搭建,下面以 microservice-demo 項目為例,該項目包含 Vue.js 前端服務和 Golang 後端服務,以下步驟包含從 Code 到 Ship 的整個過程的示範。

Zadig + Gitee:完美實作微服務架構持續傳遞

準備工作

案例源碼

本案例所用代碼及配置 fork 自項目案例源碼:

https://gitee.com/koderover/zadig/tree/main/examples/microservice-demo

主要包含:

服務 YAML 檔案:

  • https://gitee.com/koderover/zadig/tree/main/examples/microservice-demo/k8s-yaml

服務源碼及 Dockerfile 檔案

  • Frontend:https://gitee.com/koderover/zadig/tree/main/examples/microservice-demo/frontend
  • Backend:https://gitee.com/koderover/zadig/tree/main/examples/microservice-demo/backend

接入 Gitee 代碼源

建立 Gitee 第三方應用

  • 點選 Gitee 賬号頭像 -> 設定 -> 資料管理 -> 第三方應用 -> 建立應用來建立應用程式。
Zadig + Gitee:完美實作微服務架構持續傳遞
Zadig + Gitee:完美實作微服務架構持續傳遞

配置 Gitee 第三方應用

Zadig + Gitee:完美實作微服務架構持續傳遞

填寫以下内容後點選建立:

  • 應用名稱:zadig,也可以填寫可識别的任一名稱。
  • 應用首頁:http://[koderover.yours.com]
  • 應用回調位址:

    http://[koderover.yours.com]/api/directory/codehosts/callback

  • 上傳 LOGO:上傳符合格式和大小的圖檔
  • 權限勾選: projects、pull_requests、hook、groups

注意:應用回調位址中 koderover.yours.com 需要替換為 Zadig 系統部署的實際位址。

擷取 Client ID、Client Secret 資訊

  • 應用建立成功後,可擷取該應用對應的 Client ID 和 Client Secret 資訊。
Zadig + Gitee:完美實作微服務架構持續傳遞

将配置填入 Zadig 系統

  • 切換到 Zadig 系統,管理者依次點選 系統設定 -> 內建管理 -> 代碼源內建 -> 點選添加按鈕。
Zadig + Gitee:完美實作微服務架構持續傳遞

依次填入如下已知資訊:

  • 代碼源:此處選擇 Gitee
  • Client ID:上一步中擷取的 Client ID
  • Client Secret:上一步中擷取的 Client Secret
  • 組織/使用者名稱:推薦填寫 Gitee 賬号的使用者名,友善在 Zadig 系統中辨別 Gitee 代碼源的出處

資訊确認無誤後點選 前往授權,耐心等待,此時系統會跳轉到 Gitee 進行授權。

Zadig + Gitee:完美實作微服務架構持續傳遞

點選 同意授權 後,跳轉到 Zadig 系統,至此 Gitee 內建完畢。

項目配置

進入 Zadig 系統,點選 建立項目 -> 填寫項目名稱 microservice-demo -> 選擇 K8s YAML 項目 -> 點選 立即建立 -> 點選 下一步。

Zadig + Gitee:完美實作微服務架構持續傳遞
Zadig + Gitee:完美實作微服務架構持續傳遞

建立服務并配置建構

建立服務:

服務配置指的是 YAML 對這個服務的定義,Kubernetes 可以根據這個定義産生出服務執行個體。可以了解為 Service as Code。

Zadig 提供三種方式管理服務配置:

  • 手工輸入:在建立服務時手動輸入服務的 K8s YAML 配置檔案,内容存儲在 Zadig 系統中。
  • 從代碼庫同步:服務的 K8s YAML 配置檔案在代碼庫中,從代碼庫中同步服務配置。之後送出到該代碼庫的 YAML 變更會被自動同步到 Zadig 系統上。
  • 使用模闆建立:在 Zadig 平台中建立服務 K8s YAML 模闆,建立服務時,在模闆的基礎上對服務進行重新定義。

這裡,我們使用手工輸入的方式:點選 手工輸入 按鈕 -> 填寫服務名稱 -> 填寫服務 YAML 配置内容 -> 點選 儲存 按鈕即可,

Zadig + Gitee:完美實作微服務架構持續傳遞
Zadig + Gitee:完美實作微服務架構持續傳遞

backend 服務的配置内容如下:

Zadig + Gitee:完美實作微服務架構持續傳遞

frontend 服務的配置内容如下:

Zadig + Gitee:完美實作微服務架構持續傳遞

配置建構

配置後端服務建構:選擇 backend 服務 -> 點選 添加建構 -> 填寫建構配置和建構腳本後儲存。

Zadig + Gitee:完美實作微服務架構持續傳遞

建構配置說明:

  • 應用清單:選擇 go 1.13
  • 代碼資訊:準備工作中 fork 的代碼倉庫
  • 建構腳本如下:
Zadig + Gitee:完美實作微服務架構持續傳遞

同樣的步驟為 frontend 服務配置建構并儲存。

Zadig + Gitee:完美實作微服務架構持續傳遞

建構配置說明:

  • 代碼資訊:準備工作中 fork 的代碼倉庫
  • 建構腳本如下:
Zadig + Gitee:完美實作微服務架構持續傳遞

加入環境

  • 點選向導的「下一步」。這時,Zadig 會根據你的配置,建立兩套包括上述 2 個服務的環境以及相關工作流,如下圖所示。
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 繼續點選下一步完成向導流程。
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 點選完成向導,一個有 2 個微服務的項目、2 套環境、3 條工作流已經産生,項目概覽如下。

工作流傳遞

使用工作流對環境中的服務進行部署更新,以 dev 環境為例操作步驟如下。

  • 點選 microservice-demo-workflow-dev 工作流 -> 選擇服務,點選「啟動任務」運作工作流。
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 觸發工作流後,可檢視工作流運作狀況,點選服務左側的展開圖示可檢視服務建構的實時日志。
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 待工作流運作完畢,進入 dev 環境,可看到 backend 服務和 frontend 服務被部署更新成功,鏡像資訊均被更新。

配置自動觸發工作流

添加觸發器,使得代碼 Push commit、Pull Request、Push tag 都能自動觸發服務的重新建構和部署。

  • 配置工作流
  • 添加 Webhook 觸發器 -> 打開 Webhook 開關 -> 添加配置 -> 填寫配置 -> 儲存配置 -> 儲存對工作流的修改
Zadig + Gitee:完美實作微服務架構持續傳遞

改動代碼,觸發工作流

  • 以 Pull Request 事件為例說明,送出 Gitee PR 修改源代碼
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 切換到 Zadig 系統,檢視工作流 microservice-demo-workflow-dev,被自動觸發執行
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 待工作流執行完畢,進入 項目->microservice-demo->環境,可看到服務的鏡像已被自動觸發的工作流更新。
Zadig + Gitee:完美實作微服務架構持續傳遞

配置 IM 通知

  • 配置工作流
  • 添加通知 -> 參考 IM 通知填寫相關配置 -> 儲存修改
Zadig + Gitee:完美實作微服務架構持續傳遞
  • 工作流執行後,會自動将運作結果和環境、服務等資訊推送到 IM 系統中,友善及時跟進
Zadig + Gitee:完美實作微服務架構持續傳遞

Zadig,讓工程師更專注創造!

繼續閱讀