IBM Cloud Docs
規劃使用工作區

規劃使用工作區

使用下列問題作為提示來規劃及設計工作區:

  • 如何使工作區與 Git 儲存庫相關?
  • 我的應用程式環境需要多少工作區?
  • 如何跨環境和工作區重複使用 Terraform 配置文件?
  • 我該如何控制存取權限並管理我的工作區?

工作區和 Git 儲存庫

工作區使用來自專用或公用 Git 儲存庫 (例如 GitHubGitLabBitbucket 及 Azure DevOps) 的 Terraform 範本。 此表格提供儲存庫來源的格式。

Git 儲存庫
Git 儲存庫 URL
GitHub https://github.com/<your_user_name>/<repo_name>/tree/<branch_name>/<folder_name>
GitLab https://gitlab.com/<your_user_name>/<project_name>/tree/<branch_name>/<folder_name>
Bitbucket https://bitbucket.org/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>
https://<username>@bitbucket.org/<workspace_name>/tf_cloudless_sleepy/src/master
Azure DevOps https://azure.com/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>
https://visualstudio.com/<your_user_name>/<repo_name>/src/<branch_name>/<folder_name>

我的應用程式環境需要多少工作區?

IBM Cloud Schematics 中您需要的工作區數目取決於應用程式的結構,以及您開發、測試及發佈應用程式或微服務所需的環境。

根據經驗,請考慮為每個微服務和您使用的環境提供獨立的工作區。 例如,如果您的產品應用程式包含搜尋、付款和審查微服務元件,請考慮為每個微服務元件及其開發、暫存和生產環境建立獨立的工作區。 每個元件和環境都有獨立的工作區,您可以開發、部署和更新 Terraform 配置檔案及相關的雲端資源,而不會影響其他元件。

檢閱下列影像,觀察由三個微服務組成之應用程式的工作區結構 IBM Cloud Schematics。

IBM Cloud Schematics的工作空間結構IBM Cloud Schematics " caption-side="bottom"}{: caption="工作空間結構

在基礎架構責任分散在多個團隊的組織中,不建議使用一個工作區來管理整個暫置或正式作業環境。 當您使用單一工作區部署所有雲端資源時,不同的團隊可能難以協調更新和管理這些資源的存取。 個別工作區,使用遠端狀態資料來源來共用基礎架構定義,可提供一種機制來建立個別的責任區域。

我該如何架構 Git 儲存庫,以對應我的工作區?

架構 Git 儲存庫,讓您有一個儲存庫存放所有建構微服務的 Terraform 配置檔案,並使用 Schematics,或 GitHub 分支或目錄中的輸入變數來區分開發環境、暫存環境和生產環境。

檢閱下表,找出如何架構 Git 儲存庫以對應不同工作區環境的選項清單。

Git 儲存庫的結構
選項 說明
一個 Git 儲存庫,使用變數區分環境 建立一個 Git 倉庫,存放構成微服務元件的 Terraform 配置檔案。 儘可能使 Terraform 配置檔通用,以便可以在不同環境中重複使用相同的配置。 若要配置開發、暫置和正式作業環境的具體資訊,請在配置檔中使用 Terraform 輸入變數。 在建立工作區時,輸入變數會自動載入到 IBM Cloud Schematics。 要自訂工作區,請輸入變數的特定於環境的值。 如果您有一個團隊負責管理微服務元件的生命週期,並且您的不同環境中的配置差異並不大,則此設定非常有用。
一個 Git 倉庫,使用分支區分環境 為你的微服務元件建立一個 Git 倉庫,並使用不同的 Git 分支來儲存每個環境的 Terraform 配置檔案。 使用此設定時,可以明確區分不同環境,並對誰可以存取和變更特定配置有更多控制權。 請務必設定一個組態檔案中的變更如何在各分支間填充,以避免您在每個環境中擁有不同的組態。
一個 Git 倉庫,使用目錄區分環境 對於首選短期分支,並且其不同環境中的配置差異很大的組織,請考慮建立代表環境不同配置的目錄。 使用此設定時,所有目錄都將接聽確定到 master 分支的變更。 請務必設定一個組態檔案中的變更如何在不同目錄中填充,以避免在每個環境中有不同的組態。
每個環境使用一個 Git repo 每個環境使用一個 Git 儲存庫。 透過此設定,您的工作區與 Git 儲存庫之間是 1:1 的關係,您可以為每個 Git 儲存庫套用不同的權限。 確保您的團隊可以管理多個 Git 儲存庫,並保持同步。

如何在不同環境和工作空間中重複使用配置檔?

透過建立標準化的 Terraform 範本,並使用變數依據需求自訂範本的使用方式,盡量減少需要管理的 Terraform 配置檔案數量。

現在,您可以從 IBM Cloud的 Terraform 模組登錄中使用 Terraform 模組。

透過標準化的 Terraform 模版或 Terraform 模組,您可以確保組織內部遵循最佳開發實務,並確保所有 Terraform 配置檔案具有相同的結構。 透過瞭解 Terraform 配置檔的結構,開發人員可以更輕鬆地理解檔案、宣告變數、貢獻程式碼以及對錯誤進行疑難排解。

如何控制對工作空間的存取?

IBM Cloud Schematics 已與 IBM Cloud® Identity and Access Management完全整合。 若要控制對工作區的存取,以及誰可以使用 IBM Cloud Schematics 來執行基礎架構程式碼,請參閱管理使用者存取權

當我有先前與 Terraform 獨立式搭配使用的儲存庫時,需要注意什麼?

由於 IBM Cloud Schematics 提供 Terraform 即服務 (Terraform-as-a-Service) 功能,因此您可以重複使用工作區中現有的 Terraform 模版。 視 Terraform 範本的撰寫方式和 Git 儲存庫的結構而定,您可能需要進行變更才能順利使用 IBM Cloud Schematics。

  • 提供者區塊聲明:由於 IBM Cloud Schematics 與 IBM Cloud® Identity and Access Management 整合,您的 IBM Cloud API 金鑰會自動為所有啟用 IAM 的資源擷取,您不需要在 provider 區塊中提供此資訊。 但是,傳統基礎結構資源不會擷取 API 金鑰。 如需相關資訊,請參閱配置 provider 區塊
  • Terraform 指令行和 IBM Cloud 提供者外掛程式: 若要使用 IBM Cloud Schematics,您不需要安裝 Terraform 指令行或 IBM Cloud Provider Plug-in for Terraform。 如果您想要自動配置資源,請改用 IBM Cloud Schematics 指令列外掛程式

設定工作區的持續交付工具鏈

每當您更新 Terraform 配置檔時,請將來源儲存庫連接至 IBM Cloud 中的持續交付管線,以自動產生 Terraform 執行計劃並在 IBM Cloud 中執行 Terraform 程式碼。

  1. 如果您的帳戶中還沒有 Continuous Delivery 服務實例,請建立一個服務實例。
    1. 在 IBM Cloud 型錄中,開啟 Continuous Delivery 服務
    2. 選取要在其中建立服務的 IBM Cloud 地區。
    3. 選取定價方案。
    4. 輸入服務實例的名稱,選取資源群組,然後輸入要與服務實例關聯的任何標籤。
    5. 按一下建立以在帳戶中建立服務實例。
  2. 工作區儀表板中,選取工作區。
  3. 選取設定標籤。
  4. 在「摘要」區段中,按一下 啟用持續交付
  5. 配置工具鏈。
    1. 輸入工具鏈的名稱,並選取您要在其中部署此工具鏈的地區及資源群組。 地區及資源群組可能不同於您用於 Schematics 工作區的地區及資源群組。
    2. 選取儲存 Terraform 配置檔的來源儲存庫類型。 例如 GitHub。
    3. 檢閱來源儲存庫的資訊。 例如,如果您的 Terraform 檔案儲存在GitHub,請查看GitHub伺服器和要為其建立持續交付工具鏈的儲存庫。 這些欄位會根據您的工作區配置預先移入。
    4. 選用項目: 選擇是否要針對工具鏈啟用 Git 問題及程式碼變更追蹤。
  6. 選取 Delivery Pipeline 圖示,以配置 Delivery Pipeline。
    1. 請驗證顯示給您的工作區 ID 是正確的。
    2. 輸入 IBM Cloud API 金鑰。 如果您沒有 API 金鑰,請按一下 新建 + 以建立 API 金鑰。
  7. 按一下 建立,以完成工具鏈的設定。 您會看到為工具鏈配置的工具概觀。
  8. 打開 Delivery Pipeline. Delivery Pipeline 包括用於從來源儲存庫擷取更新項目、建立 Terraform 執行計劃、套用此計劃以及對工作區執行性能檢查的階段。
  9. 更新來源儲存庫中的 Terraform 檔案,並檢閱如何在 Delivery Pipeline中處理此變更。 如果其中一個階段失敗,請按一下 檢視日誌和歷程,以開始疑難排解錯誤。 如需檢視日誌和歷程的相關資訊,請參閱 檢閱 Schematics 工作詳細資料