BOSH — это инструмент с открытым исходным кодом для управления релизами, развертываниями и жизненным циклом распределённых облачных приложений. Он предназначен для описания, упаковки и распространения программных компонентов в виде релизов, автоматизированного развертывания на виртуальные машины и управления состоянием инстансов в кластерах. В состав проекта входят серверная часть (BOSH Director) и клиентская утилита командной строки, которые совместно обеспечивают координацию процессов создания, обновления и восстановления рабочих сред.
Изначально разработанный для управления платформой как сервисом и сопутствующими компонентами, BOSH применяется в сценариях, где требуется детализированное декларирование инфраструктуры и приложений, воспроизводимость развертываний и устойчивость к сбоям. Он поддерживает работу с разными поставщиками виртуальной инфраструктуры, предлагает механизм релизов для версионирования пакетов и процедур управления, а также предоставляет средства для мониторинга и выполнения операций жизненного цикла, таких как масштабирование, обновления и восстановление после отказов.
- Декларативное описание релизов: хранение пакетов, конфигураций и задач в структуре релиза для воспроизводимых развертываний.
- BOSH Director: центральный компонент, координирующий развертывания, обновления и управление состоянием инстансов.
- CLI: командная строка для выполнения операций развертывания, управления релизами и инспекции состояния.
- Поддержка поставщиков инфраструктуры: интеграция с различными IaaS-платформами для создания и управления виртуальными машинами.
- Управление жизненным циклом: автоматизация задач по установке, обновлению, перезапуску и удалению компонентов.
- Высокая доступность и восстановление: механизмы для обнаружения сбоев и автоматического восстановления сервисов.
- Версионирование и совместимость: возможность одновременного управления несколькими версиями релизов и отката на предыдущие версии.
- Конфигурация и шаблонизация: поддержка параметризованных манифестов и шаблонов для генерации конфигураций при развертывании.
- Операции и мониторинг: встроенные возможности по выполнению администрирования и собиранию информации о состоянии развёрнутых компонентов.
- Расширяемость: поддержка пользовательских скриптов и задач для интеграции с внешними системами и специфичными процессами развертывания.