在一個 CI 工具鏈上配置多個應用程式

當您透過「持續整合 (CI)」執行服務供應項目時,請考量將所有供應項目微服務或元件合併至單一一般工具鏈,而不是針對每一個儲存庫管理多個工具鏈。

將 CI 管線 及 取回要求(PR)管線 配置為適用於多個應用程式的儲存庫很簡單。 請使用下列步驟及變更來啟用多個應用程式。

工具鏈自訂作業

透過將工具鏈新增至多個應用程式並增加其功能來自訂工具鏈。 步驟如下:

  1. 針對您要在工具鏈管線上建置的每一個應用程式,新增「GitHub 工具」整合。
  2. 針對任何額外 問題、庫存 及 證明 儲存庫新增更多 GitHub 整合,這些儲存庫可以針對特定應用程式進行配置。
  • 請參閱文件頁面和最佳作法,以瞭解您是否需要應用程式的這些額外儲存庫。

  • 子系統是一組相互依存的相關服務,這些服務共同開發並部署。

    • 單一子系統內的服務必須共享共同的庫存儲存庫與證據保管庫。 每個子系統必須在其庫存儲存庫與證據保管庫之間維持一對一的對應關係。 跨多個儲物櫃的證據查詢功能不被支援,因其會擴大搜尋範圍並增加資料衝突的風險。
    • 您亦可將多個子系統分組,使其共用相同的共享庫存與儲物櫃。
    • 範例: 將相關服務(例如 auth 和 user-profile)歸類至單一子系統。 此模型支援在 Continuous Delivery 環境中進行可擴展的微服務管理。
  • 應用程式 儲存庫也可以作為它自己的問題儲存庫。 僅當在工具整合上啟用 GitHub 問題選項時才適用。

  • 庫存 儲存庫必須足夠作為單一合併儲存庫來記錄建置記錄,因為記錄已被 app-name 分割,只要該參數不同,就不會遺失或混淆。 雖然您可能想要參閱 庫存文件,以瞭解如何處理此儲存庫的構想,因為其主要功能是協助支援連續部署管線中的部署。

  1. 設定 IBM Cloud® Object Storage 儲存區。

    IBM Cloud Object Storage 是管線證明構件的偏好證明櫃方法,且為審核相符性所需。 針對您帶入 CI 工具鏈的每一個應用程式,使用相同的 Object Storage 儲存區。 此外,當您將 CI 工具鏈與 CD 或 CC 工具鏈整合時,請重複使用相同的 Object Storage 儲存區。

  2. 選用項目: 額外 HashiCorp Vault 整合。

    因為 HashiCorp Vault 工具整合僅支援一個路徑,所以您可能需要更多路徑,視 HashiCorp Vault 密碼的配置方式而定。 不同的應用程式可能需要彼此不同的認證或其他認證。

CI 及 PR 管線自訂作業

使用下列步驟進行配置,以自訂 CI 及 PR 管線:

  1. 為每一個應用程式建立 Git 觸發程式。

    • 複製現有觸發程式,以在您建立觸發程式時儲存部分 tedium。
    • 請確定每一個觸發程式都指向必要的 GitHub 儲存庫和分支。
    • 請確定已設定下列觸發程式內容:
      • app-name (文字): 應用程式名稱在不同應用程式之間必須是唯一的。 這是因為在庫存中使用應用程式名稱、DevOps 見解,以及其他名稱作為放置構件並與構件一起記錄時的唯一 ID。
      • cos-bucket-name 存放應用程式證據的 Object Storage 儲存桶名稱。
  2. 每一個應用程式的環境內容變更。

    • 這是每一個應用程式可能需要變更為不同值的環境內容清單。 這可以使用管線觸發程式上的觸發程式內容來達成; 這會以您自己選擇的值置換環境內容。
      • app-name (文字): 應用程式名稱在不同應用程式之間一律需要是唯一的,因為在庫存、DevOps 見解等中使用應用程式名稱作為放置及記錄構件時的唯一 ID。
      • cos-bucket-name 存放應用程式證據的 Object Storage 儲存桶名稱。
      • repository (文字): 此參數控制將哪些應用程式儲存庫複製到管線,並充當各種相符性及安全作業之 CI 及 PR 管線的目標。
      • 可選:evidence-repo (文字):作為應用程式證據櫃的「存放區」的 URL。
      • 可選:incident-repo (文字):作為應用程式的 issues repo 的 URL。
      • 可選:inventory-repo (文字):URL 作為應用程式庫存儲庫的儲存庫。
  3. optional step 設定每一個應用程式的手動觸發程式。

    • 技術上您只需要一個手動觸發程式,因為可以在呼叫時編輯其內容,但是團隊可以使用預先編寫的手動觸發程式來儲存一些步驟,以撰寫應用程式之間所有可能的微小差異。
  4. optional step 建立應用程式的計時器觸發程式。

    • 經常重建及重新驗證應用程式是很好的作法,因此您可以隨時處理任何相符性及漏洞問題,以及任何建置問題。
    • 以您配置手動觸發程式的相同方式來配置觸發程式內容,因為計時器觸發程式只是計時器上的手動觸發程式。
    • 將 cron 工作彼此交錯,否則您可能會使工作者叢集超載,且您的工作可能會經歷增加建置時間或階段之間的延遲。

如需可在管線觸發程式上或環境內容內設定之其他內容的相關資訊,請參閱 管線參數型錄。