如何決定要建立哪種類型的元件?

您如何決定應該建立一個模組、一個可部署的架構,或是將可部署的架構堆疊在一起? 讓我們比較差異,並評估下列各節中的使用案例,以協助您決定。

比較可部署的架構和模組

下表提供模組與可部署架構類型之間主要差異的比較和快速摘要。

概念比較
方法 範圍 聯結 (coupling) 可部署 作者
建立模組 緊密 開發人員
建立可部署的架構 中到寬 緊密 開發人員
堆疊可部署架構 廣泛 鬆散 任何人

下表可協助您根據使用情況,決定是使用模組、可部署架構,還是一起堆疊可部署架構。

幫我選擇要使用的元件
目的 建議方法 附註
加速編碼自動化 使用模組 模組提供可重複使用且經過策劃的自動化,讓可部署架構的開發人員更快速撰寫程式碼。 模組適用於開發人員,而非消費者。
確保雲端安全與合規 使用可部署的架構 可部署的架構會施行架構的安全和相符性。 如果可部署架構的範圍太小,則無法施行相符性。 例如,僅部署虛擬伺服器實例的可部署架構無法確保網路安全。
為使用者提供具有護欄的選項 將可部署的架構堆疊在一起 透過堆疊可部署架構,您可以交換可部署架構或新增可部署架構,讓使用者有更多選擇。 由於可部署架構會強制執行安全與合規,因此堆疊有助於確保整體解決方案保持合規。 堆疊可部署的架構是一種很好的方法,例如選擇使用哪個資料庫。
使用者建立的解決方案或架構 將可部署的架構堆疊在一起 堆疊可部署架構允許使用者建立並發佈他們自己的可重複模式,這些模式仍然是安全的,因為它們是由安全且符合規範的可部署架構所組成。
取消連結的架構元件 將可部署的架構堆疊在一起 可部署的架構可以獨立開發與版本化,然後再堆疊在一起進行部署。
簡化使用者體驗 使用可部署的架構 可部署架構可以提供小型或簡式輸入清單給使用者,即使是大型或複式架構也一樣。 可部署架構很容易瞭解及部署。 相比之下,堆疊可部署架構會稍微複雜一些,因為會公開可部署架構。

IBM Cloud 專案 可確保透過型錄中的可部署架構部署資源,並在組織的安全及相符性護欄內運作。 它們也可確保這些資源保持最新,且不會漂移。

可部署架構的依賴關係

當一種可部署架構提供的資源被另一種架構所需時,就會產生依賴關係。 也就是說,一個可部署架構提供的資源在另一個架構的部署期間使用,如下圖所示。

具有依賴性的可部署架構的可視化表示。 可部署架構 A 輸出資源,然後用作可部署架構 B 的輸入。
可部署的架構依賴

處理依賴關係的一種方式是 堆疊可部署的架構,並在專案中加入它們之間的參考。 例如 VSI on VPC landing zone 可部署架構包括擴充 Red Hat OpenShift Container Platform on VPC landing zone 可部署架構的變體。 考慮將這些架構堆疊在一個專案中。 如果尚未部署必備架構,則此方法效果很好。 您也不需要編輯程式碼來堆疊可部署的架構。

許多可部署架構都是獨立的,不是其他架構的擴展,但是您可以選擇在建築學目錄詳細資訊頁面的部分。 從以下選項中選擇一個選項您想如何建構這個架構? 菜單。

但是,如果您已經部署Red Hat OpenShift容器平台,您需要部署VSI,VSI所需的資源已經準備好。 您不需要部署Red Hat OpenShift再次容器平台架構。 由於VSI架構是Red Hat OpenShift容器平台,您可以部署VSI,架構使用來自容器平台的資源Red Hat OpenShift根據需要的容器平台。

可選擇及交換的可部署架構

當您將可部署架構加入私有目錄時,您可以透過與其他架構堆疊來擴充它。 如此一來,您就可以為使用者建立更客製化的解決方案。

為何要在上線期間堆疊?
在入職期間堆疊架構與專案中堆疊架構相似。 當您加入一個架構時,您可以透過堆疊所需的架構來加入相依性。 然而,與專案中的堆疊架構不同,入職期間的堆疊架構包括以下功能:
  • 您可以針對不同的使用個案,新增可選的架構。
  • 您可以新增可交換的架構,讓使用者可以選擇。
可選的架構
也許您的架構與其他可部署的架構配合得很好,但卻不需要滿足依賴性或符合法規。 您可以將可部署架構新增為選項,使用者將您的可部署架構新增至專案時,可以選擇包含該架構。 例如,監控架構可能有用,但不是必需的。
可更換的架構
在上線過程中與自己的架構堆疊的任何架構都可以與其他架構交換。 可交換架構讓使用者可以在提供相同功能的多種選項中選擇。 例如,您可以包含兩個可部署的架構,建立不同的資料庫,而使用者可以決定要使用您架構中的哪一個資料庫選項。

如需詳細資訊,請參閱 在上線期間擴充可部署架構

當您將可部署的架構加入私有目錄時,就可以新增可選和可交換的架構。 目前,在專案中堆疊可部署的架構不支援可選或可交換的架構。

Terraform 與 Ansible

在 IBM Cloud中,可部署架構必須使用 Terraform 將可部署架構 (介面) 的輸入及輸出宣告為 Ansible 沒有機器可讀取的介面定義。 否則,可部署架構的作者可能會使用 Ansible 前置或後置 Script 與 Terraform 的任何組合來執行可部署架構的工作。 因此,開發人員如何決定要使用哪些技術?

配置語言的比較
第一列是用於比較 Terraform 和Ansible類別。 第二欄提供 Terraform 與第一欄中集種類的相關資訊,第三欄提供 Ansible 與第一欄中集種類的相關資訊。
Terraform Ansible
語言 宣告式 程序化
語法 HCL (類似於 JSON) YAML (以及其他 Script 的外呼)
預設方法 可變的基礎架構 不可變的基礎架構
焦點 基礎架構 配置
漂移 與想要的狀態比較 等冪作業

Terraform 非常適合建立及管理基礎架構,而 Ansible 則非常適合配置在該基礎架構上執行的軟體及作業系統。 因為 Ansible 是程序化的,所以您也可以對一次性作業進行 Script 化。 維護作業 (例如從備份還原) 在 Ansible中很容易。

幫助我選擇要使用的設定語言
目的 建議的配置語言 附註
部署雲端基礎架構或服務 Terraform Terraform 以此使用案例為目標,更能處理不斷變更的基礎架構。IBM Cloud 提供 Terraform 模組和支援的可部署架構,以加速安全且合規的基礎架構型樣。 Terraform 狀態模型可讓開發人員預覽變更。 可以掃描那些變更是否符合標準。
安裝或配置軟體 Ansible 如果預先建置的儲存器或虛擬機器映像檔不適用於使用案例,則 Ansible 更適合處理軟體安裝與配置。 Ansible 廣泛支援自動化作業,例如配置編輯、套件管理及程序重新啟動。 提供大型 Ansible 模組及教戰手冊檔案庫,以簡化數千個常用軟體套件的配置。
CCDB 整合 Ansible 對內部部署服務 (例如 CCDB) 進行動態呼叫可以在 Terraform 或 Ansible 中完成,但在程序化或 Scripting 語言中更容易達成。
輸入驗證 Terraform 或 Ansible Terraform 執行輸入驗證的能力有限,但它是宣告式,可供使用者介面使用。 Ansible 可新增執行動態輸入驗證的功能,其中會根據遠端服務來檢查可部署架構的輸入。
第 2 天維護動作 Ansible 第 2 天維護通常是程序化的本質,最好在 Ansible中完成。 範例包括手動備份、還原或金鑰輪替。
漂移管理
  • Terraform
  • Ansible
  • Terraform 可用來判斷是否發生漂移,以及該漂移是什麼,這可協助您決定如何管理漂移。 漂移資訊很強大,因為它可能指出您可以將變更新增至自動化。
  • Ansible 無法偵測漂移。 但透過定期重新套用等冪的 Ansible Script,您可以防止漂移。

如需將前置或後置 Script 併入可部署架構的相關資訊,請參閱 建立可部署架構的 Script

後續步驟: 決定要發佈的位置

在規劃架構並決定要建立的元件類型之後,您應該 考量您計劃在何處共用或發佈 解決方案,以便其他使用者可以利用您所建立的解決方案。 視您計劃共用或發佈的位置而定,您可能需要完成不同層次的需求或核准。