БОШ (программное обеспечение)
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2018 г. ) |
![]() | |
Разработчик(и) | Облачная литейная |
---|---|
Первоначальный выпуск | 2010 |
Стабильная версия | 280.1.4 [ 1 ] ![]() |
Репозиторий | |
Написано в | Руби , Го и Баш |
Операционная система | Кросс-платформенный |
Тип | Облачные вычисления |
Лицензия | Лицензия Апач 2.0 [ 2 ] |
Веб-сайт | голова |
BOSH — это проект программного обеспечения с открытым исходным кодом , который предлагает набор инструментов для разработки версий , развертывания программного обеспечения и управления жизненным циклом приложений крупномасштабных распределенных сервисов . Инструментальная цепочка состоит из сервера (BOSH Director) и инструмента командной строки . BOSH обычно используется для упаковки , развертывания и управления облачным программным обеспечением . Хотя BOSH изначально был разработан VMware в 2010 году для развертывания Cloud Foundry PaaS , его можно использовать для развертывания другого программного обеспечения (например, Hadoop , RabbitMQ или MySQL ). BOSH предназначен для управления всем жизненным циклом больших распределенных систем.
С марта 2016 года BOSH может управлять развертываниями как в Microsoft Windows, так и в операционных системах Microsoft Windows. [ 3 ] и Linux- серверы.
Директор BOSH взаимодействует с одним поставщиком инфраструктуры как услуги (IaaS) для управления базовой сетью и виртуальными машинами (VM) (или контейнерами ). Поддерживаются несколько поставщиков IaaS: Amazon Web Services EC2, Apache CloudStack , Google Compute Engine , Microsoft Azure , OpenStack и VMware vSphere .
Чтобы помочь поддержать больше базовых поставщиков IaaS, BOSH использует концепцию интерфейса облачного поставщика (CPI). Для каждого из перечисленных выше поставщиков IaaS существует реализация CPI. Обычно CPI используется для развертывания виртуальных машин, но его можно использовать для развертывания контейнеров и .
Существует несколько CPI для развертывания контейнеров с BOSH, и активно поддерживается только один. Для этого BOSH использует CPI, который развертывает контейнеры Garden от Pivotal Software (Garden очень похож на Docker ) на одной виртуальной машине, работающей под управлением VirtualBox или VMware Workstation . Теоретически можно было бы поддерживать любой другой контейнерный движок, если бы были разработаны необходимые CPI.
Поскольку BOSH безразлично поддерживает развертывание на виртуальных машинах или в контейнерах, BOSH использует для их обозначения общий термин «экземпляры». CPI должен выбрать, является ли «экземпляр» BOSH на самом деле виртуальной машиной или контейнером.
Рабочий процесс
[ редактировать ]После установки сервер BOSH принимает загрузку на него корневых файловых систем (называемых «стволовыми клетками») и пакетов (называемых «релизами»). Когда BOSH-сервер имеет необходимые биты для развертывания данной программной системы, ему можно приказать продолжить, как описано в манифесте развертывания YAML . Затем BOSH постепенно развертывает «экземпляры» (виртуальные машины или контейнеры), используя канареечные программы, чтобы избежать развертывания неудачных конфигураций.
После развертывания программной системы BOSH постоянно контролирует ее экземпляры, чтобы обнаружить неисправные экземпляры и восстановить отсутствующие экземпляры.
При изменении манифеста развертывания BOSH компания BOSH соглашается развертывать подразумеваемые изменения постепенно, экземпляр за экземпляром. Это означает, что BOSH может обновлять работающие кластеры практически без простоев.
Концепции
[ редактировать ]Выпускать
[ редактировать ]Релиз BOSH может представлять собой либо архивный файл , либо репозиторий git . В обоих случаях здесь описывается программная система, которую можно развернуть с помощью BOSH. Для этой цели он упаковывает все связанные двоичные ресурсы, исходный код, сценарии компиляции, настраиваемые свойства, сценарии запуска и шаблоны для файлов конфигурации.
Релизы BOSH состоят из «пакетов» и «заданий». Грубо говоря, пакеты BOSH предоставляют что-то , что можно запустить, а задания BOSH описывают, как эти вещи настраиваются и запускаются.
Пакет BOSH содержит необходимый исходный код, двоичные ресурсы (называемые «блобами») и сценарии компиляции для создания данного программного компонента. Есть два способа предоставления двоичных «блобов». В версию BOSH, предоставляемую в виде архивного файла, большие двоичные объекты включены напрямую. Но с выпусками BOSH, которые предоставляются в виде репозиториев git, сделать то же самое становится проблематично, когда большие двоичные объекты становятся большими. Вот почему в выпуске BOSH предусмотрена концепция «хранилища больших объектов», откуда можно получить ссылочные BLOB-объекты. В большинстве выпусков BOSH используются хранилища больших объектов, поддерживаемые общедоступными корзинами Amazon S3, но существуют и другие способы ссылки на частное или локальное «хранилище больших объектов» в выпуске BOSH.
Пакеты BOSH всегда подвергаются этапу компиляции, даже если при этом файлы просто извлекаются из архива и копируются в соответствующий целевой каталог. Для компиляции данного пакета BOSH создает эфемерный экземпляр компиляции (VM или контейнер), который включает в себя только необходимые пакеты и большие объекты, как указано в спецификации пакета. В этом выделенном экземпляре BOSH запускает сценарий компиляции и запечатывает результат компиляции в своей базе данных, чтобы его можно было безопасно использовать для воспроизводимых развертываний.
С другой стороны, задания BOSH предоставляют свойства конфигурации (которые могут быть задокументированы), шаблоны для файлов конфигурации и сценарии запуска. Задания BOSH относятся к одному или нескольким пакетам как к зависимостям. Задания также запечатываются в базе данных BOSH, но шаблоны файлов конфигурации отображаются во время развертывания, где разрешаются все свойства конфигурации. Этими свойствами конфигурации обычно являются IP-адреса, номера портов, имена пользователей, пароли, имена доменов и т. д.
Стэмселл
[ редактировать ]Стволовая ячейка BOSH содержит основы для создания нового экземпляра (виртуальной машины или контейнера). А именно, стволовая ячейка BOSH отправляет образ операционной системы вместе с агентом BOSH и копией monit , которая используется для управления службами (называемыми «заданиями»), которые будут размещаться на экземпляре. Агент BOSH помогает BOSH взаимодействовать с экземпляром на протяжении всего его жизненного цикла.
Концепция стволовых клеток в BOSH аналогична образам виртуальных машин, таким как AMI от Amazon , но стволовые клетки BOSH не предназначены для специализированного использования для какого-либо конкретного использования. Вместо этого BOSH предоставляет только разные стволовые клетки для поддержки разных операционных систем (CentOS, Ubuntu или Windows) или разных базовых IaaS поставщиков (AWS или OpenStack).
Название «стволовые клетки» произошло от биологического термина «стволовые клетки», который относится к недифференцированным клеткам, способным позже вырасти в различные типы клеток. Точно так же экземпляры, созданные стволовой клеткой BOSH, вначале идентичны.
После создания экземпляры настраиваются с использованием разных ЦП/памяти/хранилища/сети и устанавливаются с разными пакетами программного обеспечения. Следовательно, экземпляры, созданные на основе одной и той же стволовой клетки BOSH, могут вести себя по-разному.
БОШ Агент
[ редактировать ]Агент BOSH — это служба, которая запускается на каждой виртуальной машине, развернутой с помощью BOSH. Он делает следующее:
- настраивает виртуальную машину, например, настраивает локальные диски, настраивает и форматирует подключенные (вторичные) диски, настраивает сети
- принимает запросы от директора, например пинги, запросы управления заданиями
- управляет заданиями: запуск, остановка и мониторинг работоспособности
Развертывание
[ редактировать ]Развертывание BOSH — это, по сути, манифест развертывания YAML, в котором пользователь описывает используемые версии BOSH и стволовые ячейки BOSH, а также способы настройки и объединения заданий в группы идентичных экземпляров (исторически ошибочно называвшихся «заданиями», а позже переименованных в «группы экземпляров»). . Внутри этих «групп экземпляров» BOSH может объединять идентичные экземпляры (виртуальные машины или контейнеры) в разных зонах доступности, чтобы минимизировать риск одновременного выхода из строя всех экземпляров. Это особенно полезно при развертывании высокодоступных баз данных или приложений.
В большинстве случаев пользователи не работают с манифестом развертывания как с одним большим файлом YAML. Вместо этого манифест развертывания разбивается на более мелкие файлы, которые легче поддерживать. Эти отдельные файлы объединяются с помощью таких инструментов, как spiff или spruce, непосредственно перед их загрузкой на сервер BOSH и развертыванием.
В манифесте развертывания можно настроить все свойства конфигурации, объявленные заданиями из всех указанных выпусков. Разные задания могут ссылаться на свойства конфигурации с одинаковым именем, чтобы использовать общие настройки.
Ключевые принципы
[ редактировать ]BOSH был специально создан для реализации четырех принципов современной разработки релизов следующими способами:
Идентифицируемость
Возможность идентифицировать все источники, инструменты, среду и другие компоненты, составляющие конкретный выпуск. В своей концепции «выпуска» BOSH упаковывает весь связанный исходный код, двоичные ресурсы, настраиваемые свойства, сценарии компиляции и сценарии запуска. Это позволяет пользователям легко отслеживать, что на самом деле развернуто и как оно запускается. Кроме того, BOSH предоставляет способ захвата корневых файловых систем, которые будут основой развернутых экземпляров (виртуальных машин или контейнеров), в виде отдельных образов, называемых «стволовыми ячейками». Релизы BOSH и стволовые клетки BOSH идентифицируются по UUID и фиксируются контрольными суммами SHA-1 .
Воспроизводимость
Возможность интеграции исходных, сторонних компонентов, данных и внешних компонентов развертывания программной системы для обеспечения стабильности работы. Цепочка инструментов BOSH предоставляет централизованный сервер для управления развернутыми системами. На этом сервере хранятся «релизы» программного обеспечения, образы операционной системы (называемые «стволовыми клетками»), постоянные данные и конфигурация системы. Таким образом, данное развертывание гарантированно воспроизведет идентичный результат.
Последовательность
Миссия — обеспечить стабильную основу для разработки, развертывания, аудита и отчетности за программные компоненты. BOSH достигает такой согласованности с помощью своих «выпусков» программного обеспечения, которые создают согласованную основу для разработки и развертывания программных систем. Кроме того, аудит и учет обеспечивается сервером BOSH, который позволяет пользователям видеть и отслеживать изменения, внесенные в развернутые системы.
Ловкость
Постоянное исследование того, как современные методы разработки программного обеспечения влияют на производительность цикла разработки программного обеспечения, то есть непрерывной интеграции . Цепочка инструментов BOSH хорошо интегрируется с современными лучшими практиками разработки программного обеспечения (включая непрерывную доставку ), предоставляя способы легкого автоматического создания выпусков программного обеспечения и обновления сложных развернутых систем с помощью простых команд.
История
[ редактировать ]Предназначен для устранения недостатков, обнаруженных в доступных инструментах управления Cloud Foundry . Изначально Chef использовался, но его возможности по упаковке, включению/выключению серверов были ограничены, а также ограничены возможности мониторинга и самоуправления. Первоначально разрабатывался для собственных нужд Cloud Foundry, но теперь проект стал полностью универсальным и может использоваться для оркестровки другого программного обеспечения, такого как Hadoop , RabbitMQ , MySQL и аналогичных платформ или прикладного программного обеспечения.
Архитектура
[ редактировать ]Установка BOSH состоит из нескольких отдельных компонентов, которые можно разделить на разные виртуальные машины или контейнеры:
- Директор , который является «мозгом» сервера
- директора База данных , состоящая из экземпляра PostgreSQL , экземпляра Redis и хранилища Blobstore для хранения скомпилированных пакетов и заданий.
- Монитор работоспособности , который отслеживает состояние экземпляров (виртуальных машин или контейнеров).
- BOSH Множество агентов , по одному на каждый развернутый экземпляр.
- NATS Шина сообщений для подключения директора, монитора работоспособности и всех развернутых агентов BOSH.
- CPI (интерфейс облачного провайдера), который представляет собой просто исполняемый двоичный файл , соответствующий определенному API.
Управляемая среда BOSH обычно сосредоточена вокруг директора, развернутого на виртуальной машине.

Совместимость с облаком/платформой/ОС
[ редактировать ]BOSH подключается к базовому уровню IaaS через абстракцию, называемую CPI (интерфейс облачного провайдера). Доступны значения CPI для Amazon Web Services , некоторых версий OpenStack , vSphere , vCloud . Некоторые поддерживаемые сообществом CPI существуют для Google Compute Engine , Microsoft Azure и CloudStack .
Развертывание
[ редактировать ]BOSH может быть развернут как релиз BOSH, что может преподнести новичкам сюрприз «курица или яйцо».
Сервер BOSH — не единственное программное обеспечение, которое может развертывать выпуски BOSH. Существует проект поставщика BOSH, который может развернуть BOSH на виртуальной машине, в контейнере Docker или на физическом сервере. Этот компонент используется поставщиком упаковщиков BOSH, который создает блок Vagrant , на котором работает BOSH-lite, на что большинство пользователей полагаются при изучении BOSH.
Управление
[ редактировать ]BOSH , который когда-то был подкомпонентом Cloud Foundry , теперь представляет собой отдельный проект с открытым исходным кодом, целью которого является развертывание любого распределенного программного обеспечения. BOSH находится под управлением Cloud Foundry Foundation . Почти весь вклад в BOSH внесен компанией Pivotal.
Пользователи
[ редактировать ]Pivotal использует BOSH для организации Cloud Foundry в рамках Pivotal Cloud Foundry (PCF), а также всех сервисов Pivotal Data Services для Cloud Foundry. В число объявленных общедоступных пользователей BOSH и PCF входят Axel Springer, Corelogic, IBM, Monsanto, Philips, SAP и Swisscom.
Распределения
[ редактировать ]BOSH не распространяется на коммерческой основе как отдельный продукт. Он включен в состав Pivotal Cloud Foundry , IBM Bluemix и HP Helion Developer Platform , а также используется и поддерживается на коммерческой основе Cloud Credo , Stark & Wayne , Gstack и другими.
Ссылки
[ редактировать ]- ^ «Выпуск 280.1.4» . 16 августа 2024 г. Проверено 20 августа 2024 г.
- ^ «Файл ЛИЦЕНЗИИ» . Получено 5 ноября 2019 г. — через GitHub .
- ^ «[cf-dev] Объявление: BOSH для Windows — cf-dev — Архивы списков рассылки» . lists.cloudfoundry.org . Архивировано из оригинала 25 апреля 2016 г. Проверено 31 марта 2016 г.
- ^ Источник изображения
Внешние ссылки
[ редактировать ]- Веб-сервисы
- Веб-хостинг
- Файловый хостинг
- Сетевые файловые системы
- Облачное хранилище
- Поставщики облачных вычислений
- Облачные платформы
- Услуги облачного хостинга с открытым исходным кодом
- Бесплатное программное обеспечение для облачных вычислений
- Бесплатное программное обеспечение, написанное на Ruby.
- VMware