Изолированные рабочие места BOSH
bpm (менеджер процессов BOSH) — это прослойка между monit
и вашими заданиями BOSH, которая добавляет дополнительные функции, удаляя при этом почти все стандартные сценарии запуска. Он обратно совместим с любой версией BOSH, выпущенной за последние несколько лет.
Текущий жизненный цикл задания очень зависит от семантики monit
. Порядок запуска заданий и процессов не гарантирован, и существуют скрытые тайм-ауты, которые вы можете нажать, что приведет вашу систему в неожиданное состояние.
bpm очень четко формулирует свои ожидания от вашей работы. Он определяет, сколько времени должно занять все, как bpm будет взаимодействовать с вашим процессом и как ваша работа должна вести себя в определенных сценариях. Большинство рабочих мест уже будут соответствовать требованиям.
Задания, использующие bpm, изолированы друг от друга. Все ресурсы операционной системы (за исключением сетевых) распределены по пространству имен таким образом, что задание не может видеть или взаимодействовать с другими процессами за пределами содержащего его задания.
Это обеспечивает гораздо меньший и более простой в обслуживании интерфейс между вашими заданиями и системой, но, что особенно важно, обеспечивает барьер безопасности, так что если одно из заданий на вашем компьютере будет скомпрометировано, инцидент ограничивается только этим заданием, а не всеми заданиями на одном и том же компьютере. машина.
bpm также может предложить ограничение ресурсов благодаря технологиям, выбранным для вышеупомянутых функций. Это не позволяет одному заданию лишить другие совместно размещенные задания ресурсов операционной системы, необходимых им для работы.
Документацию можно найти в каталоге docs. Пока мы разрабатываем bpm, эта документация может на короткое время привести к изменениям в реализации, но в конечном итоге она станет официальным источником документации по bpm.
bpm теперь достиг версии 1.0 и имеет стабильный общедоступный API, который можно использовать для большинства задач BOSH. Мы не планируем вносить обратно несовместимые изменения в общедоступный API до версии 2.0.
Вы можете начать читать об идеалах и глоссарии, среде выполнения, которую bpm предоставляет для вашей работы, формате конфигурации и неопределенном поведении системы.
В настоящее время разработка не поддерживается ни для чего, кроме Linux, хотя запуск тестов на основе Docker возможен и в macOS.
Зависимости, необходимые для локального тестирования:
Докер
Идти
Следующие шаги позволят вам запустить тесты в локальном контейнере докеров:
Включите учет подкачки, выполнив следующие команды от имени пользователя root:
# sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="swapaccount=1"/' /etc/default/grub# update-grub# restart
Клонируйте этот репозиторий и подмодули:
$ cd ~/рабочая область $ git clone https://github.com/pivotal-cf/bpm-release.git $ cd ~/workspace/bpm-release
Запустите тесты:
$ cd ~/workspace/bpm-release $ ./scripts/test-with-docker