孤立的 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