Статьи

Развертывание сервиса RESTful на Cloudfoundry

В этом посте мы развернем сервис 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 .