1. 程式人生 > 實用技巧 >男神鵬:微服務開發規範與CI接入流程

男神鵬:微服務開發規範與CI接入流程

工業雲微服務統一接入流程(方便後續標準化和接入交付平臺):

  1. 接入映象構建
  2. 錄入微服務資訊:暫時忽略

映象構建

工業雲後臺所有微服務的軟體原始碼統一通過 QCI 進行構建;構建所依賴的指令碼和 Dockerfile 統一託管在 git 專案tools中,因此微服務專案的組織形式須符合以下兩種形式:

  1. 多微服務專案【推薦方式】,例如 iam,asm,或者參考文件專案工程規範
  2. 獨立微服務專案,例如 instance-center

所有微服務專案都通過 QCI 模板的方式來建立 QCI 構建任務,請注意以下兩點:

  1. 每個專案儘量在每個迭代建立一個構建任務,不要隨意建立,後續統一清理現有;
  2. 程式碼庫認證請選擇“SSH + Token”方式,相關憑據選賊GIT_SSH
    即可,自行建立會導致 QCI 構建狀態無法同步到工蜂。

具體接入步驟請參考以下內容:

多微服務專案接入 QCI

下面我們以專案 iam 為例,獨立微服務專案如何接入 QCI:

  1. 選擇構建模板QCI構建模板_後臺微服務專案,並新建任務
  2. 輸入任務名稱,建議名稱為“專案名-迭代名”;關聯需要的程式碼庫:
  3. 選擇名為“GIT_SSH”認證,如果沒有的話,請看第4步;
  4. 新建認證(可選):
    4.1 選中需要的程式碼庫,如果沒有的話,請先登記程式碼庫

    4.2 新增認證,認證方式選擇SSH + Token,憑據選擇GIT_SSH
  5. 檢視基於模板生成的構建任務-iam-來自模板
  6. 任務構建時,如何設定環境變數MODULES
    • 構建多個微服務,可以填寫多個微服名,並用英文分號分割
    • 構建單個微服務,填寫單個微服務名
    • 構建所有微服務,填為空即可

獨立微服務專案接入 QCI

下面我們以專案 instance-center 為例,獨立微服務專案如何接入 QCI:

  1. 選擇構建模板QCI構建模板_後臺微服務專案,並新建任務
  2. 輸入任務名稱,建議名稱為“專案名-迭代名”;關聯需要的程式碼庫:
  3. 選擇名為“GIT_SSH”認證,如果沒有的話,請看第4步;
  4. 新建認證(可選):
    4.1 選中需要的程式碼庫,如果沒有的話,請先登記程式碼庫

    4.2 新增認證,認證方式選擇SSH + Token,憑據選擇GIT_SSH
  5. 修改環境變數MODULES
    接入專案的名稱即可,例如專案instance-center,我們可以檢視基於模板生成的構建任務-instance-center-來自模板instance-center-crontask來自模板

注意:如果發現構建失敗,請檢查:
是否使用 vendor 模式進行構建,但是沒有上傳 vendor目錄?
如何確定是否使用 vendor 模式:檢查專案的 makefile 中-mod=vendor
如果發現容器執行異常,請檢查容器的工作目錄,新的 dockerfile 模板已經改為/data
接入模板後,會知道映象名稱的改變,請注意檢視下

備註:服務構建完後,會同時推送到以下兩個映象倉庫中:
  1. # 非雲梯騰訊雲倉庫,邊緣機房可以使用該賬號
  2. ccr.ccs.tencentyun.com/cloudindustry
  3. username100008089439
  4. passwordLRSxVZwaZ#kj
  5. # 雲梯自動化測試環境倉庫,日常開發請勿使用
  6. ccr.ccs.tencentyun.com/autotest-cloudindustry
  7. username100011201700
  8. passwordtest@D0cker

檢視構建產物

目前,QCI 的構建產物為:

  1. 服務映象列表:message.txt
  2. 服務環境模板:env.yaml

構建環境變數說明

  1. MODULES:請檢視接入步驟說明
  2. MICRO_*:這兩個引數用於構建時指定微服務執行的環境變數,如果是 Docker Swarm 環境下,請將這兩個值置為空;
  3. 構建版本號,請自行根據迭代版本進行修改執行配置,如下所示: