В этом посте мы развернем сервис RESTful на Cloudfoundry с использованием Dev Pivotal Cloud Foundry (PCF). Поскольку создание полноценного веб-сервиса не является частью этого поста, я уже создал сервис-сотрудник, который имеет статический бэкэнд и доступен для клонирования из GitHub .
Прежде чем развернуть его на Cloudfoundry, давайте кратко расскажем об этом.
Cloudfoundry
Cloud Foundry — это облачная платформа с открытым исходным кодом как услуга (PaaS), на которой разработчики могут создавать, развертывать, запускать и масштабировать приложения на моделях публичных и частных облаков. Это VMware, изначально созданная VMware, и теперь она является частью Pivotal Software.
Теперь давайте настроим облегченный PCF на нашей локальной рабочей станции с помощью PCF Dev , выполнив следующие шаги:
Шаг 1: Загрузите и установите cf-cli-installer_6.22.2_osx.pkg в каталоге, для меня это / Users / ArpitAggarwal / cloudfoundry
1
2
|
$ cd /Users/ArpitAggarwal/cloudfoundry/ $ sudo installer -pkg ./cf-cli-installer_6. 22 .2_osx.pkg -target / |
Шаг 2. Проверьте, успешно ли установлен Cloudfoundry CLI:
1
|
$ cf help |
Шаг 3: Затем мы загрузим и установим PCF Dev в тот же каталог, который мы создали ранее, следующим образом:
1
2
3
|
$ cd /Users/ArpitAggarwal/cloudfoundry/ $ unzip pcfdev-v0. 22.0 +PCF1. 8.2 -osx.zip $ ./pcfdev-v0. 22.0 +PCF1. 8.2 -osx |
Начало 4: Запустите PCF Dev:
1
2
|
$ cd /Users/ArpitAggarwal/cloudfoundry/ $ cf dev start |
Приведенная выше команда запускает одну виртуальную машину на нашей рабочей станции, на которой работает PCF.
Шаг 5: Клонировать служащий сотрудника из GitHub в каталоге, для меня это / Users / ArpitAggarwal /
1
2
|
$ cd /Users/ArpitAggarwal/ $ git clone https: //github.com/arpitaggarwal/empoyee-service.git |
Шаг 6: Обновите employee-service с помощью manifest.yml:
1
2
|
$ cd /Users/ArpitAggarwal/employee-service $ touch manifest.yml |
Созданный выше manifest.yml используется PCF для развертывания на локальной рабочей станции или в общедоступном облаке.
Шаг 7: Скопируйте приведенный ниже контент в manifest.yml :
1
2
3
4
5
6
7
|
--- applications: - name: empoyee-service memory: 1G random-route: true path: build/libs/empoyee-service- 0.0 . 1 .war buildpack: https: //github.com/arpitaggarwal/java-buildpack.git |
Атрибут name, указанный выше, является именем приложения.
Атрибут path является каталогом приложения.
Атрибут buildpack указывает на java-buildpack, который используется PCF для запуска приложений на основе JVM.
Подробнее о manifest.yml вы можете узнать здесь .
Шаг 8: Далее мы создадим приложение и отправим его на локальную рабочую станцию Cloudfoundry после входа в систему следующим образом:
1
2
3
4
5
6
7
8
9
|
$ cd /Users/ArpitAggarwal/empoyee-service $ empoyee-service git:(master) ./gradlew clean build $ empoyee-service git:(master) ✗ cf login -a api.local.pcfdev.io --skip-ssl-validation API endpoint: api.local.pcfdev.io Email> user Password> pass $ cf push |
cf push- команда, указанная выше, передает приложение или синхронизирует изменения в существующем приложении по URL-адресу http://empoyee-service.local.pcfdev.io
Приложение успешно развернуто на Cloudfoundry?
Давайте проверим это, просмотрев последние журналы развертывания, где мы можем посмотреть состояние запуска сервера, следующим образом:
1
2
|
$ cd /Users/ArpitAggarwal/empoyee-service $ cf logs empoyee-service --recent |
Мы также можем проверить развертывание приложения, выполнив для него запрос GET и POST, следующим образом:
ПОЛУЧИТЬ запрос на получение всех сотрудников:
1
|
curl -i -H "Accept: application/json" -H "Content-Type: application/json" http: //empoyee-service.local.pcfdev.io/empoyee/get |
POST Запрос на создание сотрудника:
1
|
curl -H "Content-Type: application/json" -X POST -d '{"name": "Arpit Aggarwal","email":"[email protected]"}' http: //empoyee-service.local.pcfdev.io/employee/create |
Полный исходный код размещен на github .
Ссылка: | Развертывание сервиса RESTful на Cloudfoundry от нашего партнера JCG Арпита Аггарвала в блоге |