Как использовать BOSH lite в качестве разработчика?
Мне было поручено обновить некоторые сценарии / задания BOSH / что там у вас, и их разработка стоит мне очень много времени.
Я наконец-то получил ключ к использованию BOSH lite, но я действительно вижу, как развернуть CloudFoundry
в среду BOSH Lite.
Тем не менее, я немного растерялся относительно того, что мне нужно поместить в мой релиз BOSH lite / manifest / что здесь происходит?
Может ли кто-нибудь описать свой рабочий процесс с помощью BOSH lite и какие типы информации мне нужно включить в манифест выпуска, чтобы развернуть мой выпуск и проверить мои задания и поручения в BOSH lite? Мне было трудно находить хорошие ресурсы в этой области, и просто BOSH в целом.
1 ответ
Рабочий процесс высокого уровня:
- на вашей рабочей станции у вас есть репозиторий для вашего релиза BOSH
- у вас где-то есть режиссер BOSH
- вы работаете над выпуском, создаете его и загружаете его в каталог
- вы создаете / изменяете манифест развертывания, который ссылается на загруженный выпуск
- ты бежишь
bosh deploy
с вашим манифестом, чтобы директор мог создавать "виртуальные машины" в "облаке" и помещать биты программного обеспечения в вашем выпуске на эти виртуальные машины (и запускать программное обеспечение) в топологии, описанной в вашем манифесте
Директору нужно указать три основных момента: это стволовая ячейка (и), релиз (ы) и манифест развертывания. К настоящему времени у вас есть представление о том, что такое релиз, в основном это все программное обеспечение, которое запускается.
Стволовая ячейка - это базовый образ ОС, который будет общим для всех ваших развернутых виртуальных машин (вы можете иметь разные стволовые клетки в развертывании, но самое распространенное - это иметь их все одинаково); это специальное изображение, в котором предварительно запечены некоторые вещи, чтобы облегчить работу с BOSH. Прежде всего, у него есть агент BOSH, именно так Директор связывается с виртуальными машинами, чтобы сказать ему "загрузить этот пакет", "загрузить это задание", "запустить этот процесс" и т. Д.
Манифест развертывания - это файл YAML, в котором вы указываете несколько вещей:
name
вашего развертывания.- Список
releases
наряду с конкретными версиями, которые вы будете развертывать в рамках этого развертывания. - Описание
networks
что вы хотите связать с развернутыми виртуальными машинами. Если вы используете IaaS, например AWS, например, вы, возможно, развертываете в VPC, и здесь вы можете указать некоторые из своих идентификаторов подсети. - Описание
jobs
это, в основном, список из нескольких однородных кластеров, которые нужно развернуть, вместе с тем, сколько экземпляров виртуальных машин / узлов вам нужно для каждого кластера. Скажем, ваш релиз состоит изfrontend
сервис,backend
сервис иdatabase
оказание услуг. Тогда вы можете развернутьfrontend
кластер, который просто запускаетfrontend
работа, и там будет 5 экземпляров этого. И вы можете захотеть 10 экземпляровbackend
кластер, и, вероятно, только 1 экземплярdatabase
, каждыйjob
в манифесте может ссылаться на несколькоjobs
из нескольких выпусков (да, это исторический несчастный случай, когда эти две вещи названы одним и тем же). - конфигурация
properties
Например, ваши задания могут нуждаться в настройке набора параметров и учетных данных, а любые свойства, которые должны использоваться глобально, могут быть помещены вproperties
раздел.
BOSH-Lite - это Vagrant VM, которая, по сути, выполняет две вещи, которые вас волнуют:
- БОШ директор
- Garden, менеджер контейнеров Linux (если вы слышали о Docker, Garden похож, но существует дольше и лучше подходит для производственных случаев). Garden действует здесь как "облако", когда Директору необходимо создать виртуальную машину, он делегирует свой "Облачный интерфейс провайдера", который, в свою очередь, просто просит Garden создать контейнер.
Преимущество BOSH-Lite состоит в том, что гораздо дешевле и быстрее запускать контейнер внутри виртуальной машины на вашем ноутбуке, чем запускать настоящую виртуальную машину в AWS, vSphere, OpenStack или другом реальном центре обработки данных.
Первый рабочий процесс (после запуска и настройки BOSH-Lite):
$ git clone YOUR_RELEASE_REPO
$ cd YOUR_RELEASE_REPO
$ bosh create release && bosh upload release
$ # create manifest, call it manifest.yml
$ bosh -d manifest.yml deploy
Итерация:
$ # modify the code in your repo
$ bosh create release --force && bosh upload release
$ # modify your manifest if necessary
$ bosh -d manifest.yml deploy
Создать манифест с нуля может быть сложно, если вы не знакомы с манифестами BOSH. Одна из вещей, которую вы можете рассмотреть, - это следовать инструкциям по созданию манифеста BOSH-Lite для Cloud Foundry. Затем измените это в соответствии с вашим проектом.
Вот полная документация по схеме манифеста развертывания: https://bosh.io/docs/deployment-manifest.html.
Если вы сгенерировали манифест и у вас возникли проблемы с ним, вы можете обратиться к проблемам GitHub или к списку рассылки, который может лучше подойти для получения справки о работе вашего манифеста.