規劃使用工作區
使用下列問題作為提示來規劃及設計工作區:
- 如何使工作區與 Git 儲存庫相關?
- 我的應用程式環境需要多少工作區?
- 如何跨環境和工作區重複使用 Terraform 配置文件?
- 我該如何控制存取權限並管理我的工作區?
工作區和 Git 儲存庫
工作區使用來自專用或公用 Git 儲存庫 (例如 GitHub、GitLab、Bitbucket 及 Azure DevOps) 的 Terraform 範本。 此表格提供儲存庫來源的格式。
| 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的
{: caption="工作空間結構
在基礎架構責任分散在多個團隊的組織中,不建議使用一個工作區來管理整個暫置或正式作業環境。 當您使用單一工作區部署所有雲端資源時,不同的團隊可能難以協調更新和管理這些資源的存取。 個別工作區,使用遠端狀態資料來源來共用基礎架構定義,可提供一種機制來建立個別的責任區域。
我該如何架構 Git 儲存庫,以對應我的工作區?
架構 Git 儲存庫,讓您有一個儲存庫存放所有建構微服務的 Terraform 配置檔案,並使用 Schematics,或 GitHub 分支或目錄中的輸入變數來區分開發環境、暫存環境和生產環境。
檢閱下表,找出如何架構 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 程式碼。
- 如果您的帳戶中還沒有 Continuous Delivery 服務實例,請建立一個服務實例。
- 在 IBM Cloud 型錄中,開啟 Continuous Delivery 服務。
- 選取要在其中建立服務的 IBM Cloud 地區。
- 選取定價方案。
- 輸入服務實例的名稱,選取資源群組,然後輸入要與服務實例關聯的任何標籤。
- 按一下建立以在帳戶中建立服務實例。
- 從 工作區儀表板中,選取工作區。
- 選取設定標籤。
- 在「摘要」區段中,按一下 啟用持續交付。
- 配置工具鏈。
- 輸入工具鏈的名稱,並選取您要在其中部署此工具鏈的地區及資源群組。 地區及資源群組可能不同於您用於 Schematics 工作區的地區及資源群組。
- 選取儲存 Terraform 配置檔的來源儲存庫類型。 例如 GitHub。
- 檢閱來源儲存庫的資訊。 例如,如果您的 Terraform 檔案儲存在GitHub,請查看GitHub伺服器和要為其建立持續交付工具鏈的儲存庫。 這些欄位會根據您的工作區配置預先移入。
- 選用項目: 選擇是否要針對工具鏈啟用 Git 問題及程式碼變更追蹤。
- 選取 Delivery Pipeline 圖示,以配置 Delivery Pipeline。
- 請驗證顯示給您的工作區 ID 是正確的。
- 輸入 IBM Cloud API 金鑰。 如果您沒有 API 金鑰,請按一下 新建 + 以建立 API 金鑰。
- 按一下 建立,以完成工具鏈的設定。 您會看到為工具鏈配置的工具概觀。
- 打開 Delivery Pipeline. Delivery Pipeline 包括用於從來源儲存庫擷取更新項目、建立 Terraform 執行計劃、套用此計劃以及對工作區執行性能檢查的階段。
- 更新來源儲存庫中的 Terraform 檔案,並檢閱如何在 Delivery Pipeline中處理此變更。 如果其中一個階段失敗,請按一下 檢視日誌和歷程,以開始疑難排解錯誤。 如需檢視日誌和歷程的相關資訊,請參閱 檢閱 Schematics 工作詳細資料。