CloudFoundry - Как понять среду операционной системы (ОС) приложения? - PullRequest
0 голосов
/ 08 февраля 2019

Мы запускаем Java-приложение для облачного литейного производства, используя cf push с указанным ниже файлом манифеста

    applications: 
       - name: xyz-api 
         instances: 1 
         memory: 1G 
         buildpack: java_buildpack_offline 
         path: target/xyz-api-0.1-SNAPSHOT.jar

Я понимаю, что PAAS (например: облачный литейный завод) - это слой поверх IAAS (например: vcenter, размещающий Linux и виртуальные машины Windows).

В файле манифеста buildpack просто говорит о библиотеках времени выполнения пользовательского пространства, необходимых для запуска приложения.


Исходя из не облачного фонаи, читая этот файл манифеста, я хотел бы понять ...

1) Как понять среду операционной системы (ОС), в которой работает приложение?В какой операционной системе ...

2) Чем приложение, запущенное на экземпляре Bosh, отличается от Docker-контейнера?

1 Ответ

0 голосов
/ 09 февраля 2019

1) Как понять среду операционной системы (ОС), в которой работает приложение?В какой операционной системе ...

Стек определяет операционную систему, в которой будет работать ваше приложение.В манифесте есть атрибут stack, или вы можете использовать cf push -s для обозначения стека.

Вы можете запустить cf stacks, чтобы просмотреть все доступные стеки.

В большинстве сред навремя написания у вас будет cflinuxfs2.Это Ubuntu Trusty 14.04.Он будет заменен на cflinuxfs3, то есть Ubuntu Bionic 18.04, потому что Trusty поддерживается только до апреля 2019 года. У вас всегда будет какой-то стек cflinuxfs*, но число будет варьироваться в зависимости от того, когда вы его прочитаете.

В некоторых средах у вас также может быть стек на базе Windows.Исходный стек для Windows windows2012r2.Это довольно старо, когда я пишу это, так что вы, вероятно, больше этого не увидите.Вероятно, вы увидите windows2016 или, возможно, что-то более новое, в зависимости от того, когда вы читаете это.

Если вам нужно больше контроля, вы всегда можете нажать на контейнер докера.Это позволило бы вам выбрать полный образ ОС для вашего приложения.

2) Чем приложение, запущенное на экземпляре Bosh, отличается от контейнера Docker?

Приложения, работающие на Cloud Foundry arenне развернут BOSH напрямую.Приложение работает в контейнере.Контейнер запланирован и управляется Диего.Диего - ВМ, развернутая BOSH.Так что там есть дополнительный слой.

По сути, разница между запуском вашего приложения в Cloud Foundry и запуском приложения в док-контейнере минимальна.Они оба работают в «контейнере» Linux, который имеет ограничения, накладываемые на пространства имен ядра и cgroups.

Разница заключается в а) том, как вы строите контейнер, и б) том, как контейнер развертывается.

С Cloud Foundry вы не создаете контейнер.Вы предоставляете свое приложение для CF & CF создает образ контейнера на основе выбранного стека и дополнительного программного обеспечения, добавляемого buildpacks.Вывод в терминологии CF называется «дроплет», но в основном это образ OCI (это будет еще больше в случае buildpacks v3).Когда вам нужно обновить или добавить новый код, вы просто повторяете процесс и нажимаете снова.Стек и пакеты сборки, которые автоматически обновляются платформой, в свою очередь предоставят вам исправленный и обновленный образ приложения.

С помощью Docker вы вручную создаете образ, создавая его с нуля илииз некоторого надежного базового образа.Вы добавляете свои собственные среды выполнения и код приложения.Когда вам нужно выполнить обновление, вы должны получать обновления из базового образа и среды выполнения или еще хуже, чтобы обновить образ с нуля.

Когда дело доходит до развертывания, CF обрабатывает все это автоматически.Он может запускать любое количество экземпляров вашего приложения, которое вам нравится, и автоматически размещает их так, чтобы ваше приложение было устойчивым к сбоям в инфраструктуре и в CF.

С Docker, это на вас или все чащечасто на каком-то другом инструменте, таком как Kubernetes.

Надеюсь, это поможет!

...