BOSH教程:了解開源BOSH的基本知識
BOSH由Cloud Foundry開發
BOSH 是 Bosh OutterSHell(Bosh 外殼)的遞歸縮寫詞。相對於「外殼」(Outter Shell),由 BOSH 部署和管理的系統則稱作「內殼」(Inner Shell)。
是一款用於發布工程、部署、生命周期管理和分散式系統監控的開源工具。
構建時充分考慮到了Web級別,而該級別的再現性和可預測性至關重要,因此BOSH提供了一種以可控方式一致部署複雜Web應用的方法。
為實現了這一目標,BOSH打包組成特定版本的各種文件和配置詳細信息,並將其與基礎鏡像一起用於版本構建。
不熟悉BOSH?您可以看一看這個BOSH基礎教程,詳細了解這一在Pivotal Container Service中起著重要作用的開源工具。
讓我們來看一看這個BOSH入門教程,了解BOSH相關基本知識及其工作原理。
「
BOSH基本信息
BOSH將基礎鏡像稱為Stem Cell。
「stemcell」這個名字源自於「stem cell」(幹細胞)這個生物學術語,該術語指的是能夠生成各種細胞的未分化細胞。同樣,一個 BOSH stemcell所創建的各個虛擬機起初也是完全相同的。初始化後,這些虛擬機便配置了不同的 CPU、內存、存儲和網路參數,並裝有不同的軟體包。因此,基於同一個stemcell模板構建的虛擬機會表現出不同的行為。一個Stem Cell可以輕鬆地成為一個Web伺服器、SQL 伺服器或應用伺服器。
Stem Cell旁邊有一個blob store(用於存放二進位程序包的容器)和一個存儲庫。這些項目在構建時整合在一起,始終提供相同的結果,因此可以輕鬆管理髮行版本並根據需要進行遷移。管理員可以定義想要部署的版本,而且有信心一切與預期的情況完全相同。
BOSH依賴於多個元件運行,包一個director VM、接收來自director VM的升級和更改的agents、健康監控基礎架構以及版本控制基礎架構。BOSH設置中的另一個關鍵組件是雲提供商介面(CPI)。顧名思義,CPI介面就是BOSH工具與遠程雲提供商API之間的介面,因此您可以在雲中啟動資產,無需在本地執行任何操作。Cloud Foundry通過版本控制將這些配置單獨存儲在Git存儲庫中。
這些構成完整應用堆棧的項目將被添加到Stem Cell上,整合在一起後,您可以隨意部署,不需考慮底層平台及其依賴關係。它提供一致且可複製的版本,並內置強大的版本控制功能。這種可靠性是選擇使用BOSH在Pivotal Container Service中實現多雲基礎架構自動化的主要原因之一。
BOSH基礎教程
您需要先在BOSH中創建幾個組件才能創建虛機。但在開始之前,需要注意的是:如果您是從供應商存儲庫那裡安裝BOSH,則可能使用的是過時版本。所以建議您按照下述手動設置步驟進行操作。
通過這個非常簡單的BOSH教程,向您演示了如何將這些組件組合在一起。
首先,您需要在客戶端安裝BOSH工具來部署BOSH配置。根據平台情況從BOSH官方網站下載相應的工具。請確保下載路徑有助於獲得更輕鬆的管理體驗。輸入以下命令來測試系統(您可能需要對下載的文件進行重命名):
bosh-cli –v
接下來,您需要設置Director VM來管理環境。每個BOSH director伺服器管理一個已定義工作區, 這個工作區隨BOSH director一起設置。這些工作區是具有特定任務和要求的不同環境。單個BOSH部署中通常有多個工作區。需要注意的是,不要將這些工作區混淆為Docker鏡像,雖然它們可以共存,但並不是一回事。
使用YAML基礎文件來創建這些工作區。YAML文件是描述網路、存儲、虛機大小和其他基礎架構配置項,並將這些信息傳遞到BOSH以進行實施的聲明性文件。YAML文件中有幾個項目需要配置,包括網路、密碼、數據存儲和其他關鍵信息。請謹慎更改YAML文件,因為它們對錯誤空間非常敏感。
最後,您必須創建一個由DirectorVM 管理的環境。假設一切按計划進行,您應該已經配置了一個可用環境,並且現在可以使用管理員定義的YAML文件來開始構建基礎架構。
常見問題解答
我可以在何處下載 BOSH 和了解它的相關信息?
可在 http://cloudfoundry.org/ 找到 BOSH 文檔和軟體
BOSH 供哪些人使用?
BOSH 主要是為操控 Cloud Foundry 的大規模生產部署的人員設計的。
雖然 BOSH 不是運行 Cloud Foundry 時所必需的,但仍然建議將 BOSH 用於大規模的 Cloud Foundry 實例。
BOSH 發揮什麼作用?
BOSH 旨在推動服務的系統性、規範性的演變,可為 Cloud Foundry 生產實例的運行提供方便。
BOSH 實現了各種雲基礎架構的自動化,可幫助進行有針對性的服務更新,從而產生一致的結果並將停機時間縮至最短。
TAG:Pivotal |