Как использовать 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 или к списку рассылки, который может лучше подойти для получения справки о работе вашего манифеста.

Другие вопросы по тегам