孤立的 BOSH 職位
bpm(BOSH 流程管理器)是monit
和 BOSH 作業之間的一個層,它添加了附加功能,同時刪除了幾乎所有樣板啟動腳本。它向後相容於過去幾年發布的任何 BOSH 版本。
目前的作業生命週期非常依賴monit
語意。無法保證作業和流程的啟動順序,並且您可能會遇到隱藏的逾時,這將使您的系統處於意外狀態。
bpm 對你的工作的期望非常明確。它定義了事情應該花費多長時間、bpm 將如何與您的流程進行通信,以及您的工作在某些情況下應如何表現。大多數工作已經合規。
使用 bpm 的作業是相互隔離的。所有作業系統資源(網路除外)都是命名空間的,因此作業無法看到其所在作業以外的其他行程或與之互動。
這在您的作業和系統之間提供了一個更小且更易於維護的接口,但至關重要的是提供了一個安全屏障,這樣如果您機器上的一個作業受到損害,那麼事件僅限於該作業,而不是同一台作業上的所有作業機器。
由於上述功能所選擇的技術,bpm 也能夠提供資源限制。這可以防止任何一項作業導致其他並置作業缺乏其工作所需的作業系統資源。
文件可以在 docs 目錄中找到。當我們開發 bpm 時,此文件可能會導致短暫的實現更改,但它最終將成為 bpm 文件的官方來源。
bpm 現已達到 1.0,並擁有穩定的公共 API,應該可用於大多數 BOSH 作業。我們不打算在 2.0 之前對公共 API 進行任何向後不相容的更改。
您可以開始閱讀 bpm 為您的作業提供的精神和術語表、執行時間環境、配置格式以及系統的未定義行為。
儘管可以在 macOS 上運行基於 docker 的測試,但目前除 Linux 之外的任何其他平台均不支援開發。
本機測試所需的依賴項:
碼頭工人
去
以下步驟應該可以讓您在本機 docker 容器中執行測試:
透過以 root 身分執行以下命令來啟用交換記帳:
# sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="swapaccount=1"/' /etc/default/grub# update-grub# restart
克隆此儲存庫和子模組:
$ cd ~/工作區 $ git 克隆 https://github.com/pivotal-cf/bpm-release.git $ cd ~/workspace/bpm-release
運行測試:
$ cd ~/workspace/bpm-release $ ./scripts/test-with-docker