В этом посте мы развернем сервис 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-validationAPI endpoint: api.local.pcfdev.ioEmail> userPassword> 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":"aggarwalarpit.89@gmail.com"}' http://empoyee-service.local.pcfdev.io/employee/create |
Полный исходный код размещен на github .
| Ссылка: | Развертывание сервиса RESTful на Cloudfoundry от нашего партнера JCG Арпита Аггарвала в блоге |