Spring Boot: развертывание в облаке, Cloud Foundry
Cloud Foundry предоставляет пакеты сборки (buildpack) по умолчанию, которые вступают в игру, если не указан другой пакет сборки. Сборка Java Cloud Foundry имеет отличную поддержку приложений Spring, включая Spring Boot. Вы можете развернуть как автономные исполняемые jar-приложения, так и традиционные .war-упакованные приложения.
После того как вы скомпилировали свое приложение (например, с помощью mvn clean package) и установили инструмент командной строки cf, разверните его с помощью команды cf push, подставив путь к скомпилированному файлу .jar. Обязательно войдите в систему с помощью клиента командной строки cf, прежде чем отправлять приложение. В следующей строке показано использование команды cf push для развертывания приложения:
$ cf push acloudyspringtime -p target/demo-0.0.1-SNAPSHOT.jar
В предыдущем примере замените acloudyspringtime на любое значение, которое вы указываете в качестве имени вашего приложения.
Если в этом же каталоге присутствует файл manifest.yml Cloud Foundry, он учитывается.
В этот момент cf начинает загрузку вашего приложения, выводя результат, подобный следующему примеру:
Uploading acloudyspringtime... OK
Preparing to start acloudyspringtime... OK
-----> Downloaded app package (8.9M)
-----> Java Buildpack Version: v3.12 (offline) | https://github.com/cloudfoundry/java-buildpack.git#6f25b7e
-----> Downloading Open Jdk JRE 1.8.0_121 from https://java-buildpack.cloudfoundry.org/openjdk/trusty/x86_64/openjdk-1.8.0_121.tar.gz (found in cache)
Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.6s)
-----> Downloading Open JDK Like Memory Calculator 2.0.2_RELEASE from https://java-buildpack.cloudfoundry.org/memory-calculator/trusty/x86_64/memory-calculator-2.0.2_RELEASE.tar.gz (found in cache)
Memory Settings: -Xss349K -Xmx681574K -XX:MaxMetaspaceSize=104857K -Xms681574K -XX:MetaspaceSize=104857K
-----> Downloading Container Certificate Trust Store 1.0.0_RELEASE from https://java-buildpack.cloudfoundry.org/container-certificate-trust-store/container-certificate-trust-store-1.0.0_RELEASE.jar (found in cache)
Adding certificates to .java-buildpack/container_certificate_trust_store/truststore.jks (0.6s)
-----> Downloading Spring Auto Reconfiguration 1.10.0_RELEASE from https://java-buildpack.cloudfoundry.org/auto-reconfiguration/auto-reconfiguration-1.10.0_RELEASE.jar (found in cache)
Checking status of app 'acloudyspringtime'...
0 of 1 instances running (1 starting)
...
0 of 1 instances running (1 starting)
...
0 of 1 instances running (1 starting)
...
1 of 1 instances running (1 running)
App started
Как только ваше приложение станет активным, вы можете проверить состояние развернутого приложения с помощью команды cf apps, как показано в следующем примере:
$ cf apps
Getting applications in ...
OK
name requested state instances memory disk urls
...
acloudyspringtime started 1/1 512M 1G acloudyspringtime.cfapps.io
...
Как только Cloud Foundry подтвердит, что ваше приложение было развернуто, вы сможете найти приложение по указанному URI. В предыдущем примере вы можете найти его по адресу https://acloudyspringtime.cfapps.io/.
Привязка к сервисам
По умолчанию метаданные о запущенном приложении, а также информация о подключении к сервисам предоставляются приложению в качестве переменных среды (например, $VCAP_SERVICES). Это архитектурное решение обусловлено многоязычностью Cloud Foundry (любой язык и платформа могут поддерживаться в виде buildpack-пакета). Переменные среды в области процессов не зависят от языка.
Переменные среды не всегда обеспечивают самый простой API, поэтому Spring Boot автоматически извлекает их и выравнивает данные в свойства, к которым можно получить доступ через абстракцию Spring Environment, как показано в следующем примере:
@Component
class MyBean implements EnvironmentAware {
private String instanceId;
@Override
public void setEnvironment(Environment environment) {
this.instanceId = environment.getProperty("vcap.application.instance_id");
}
// ...
}
Все свойства Cloud Foundry имеют префикс vcap. Вы можете использовать свойства vcap для доступа к информации о приложении (такой как общедоступный URL-адрес приложения) и информации о сервисе (такой как учетные данные базы данных).
Проект Java CFEnv лучше подходит для таких задач, как настройка DataSource.
Читайте также:
- Spring Boot Actuator: поддержка Cloud Foundry
- Развертывание приложений Spring Boot в контейнерах
- Spring Boot: развертывание в облаке
Комментарии
Отправить комментарий