Содержание


Создание и администрирование облачных приложений с помощью Java

Использование клиентской библиотеки Cloud Foundry Java в Bluemix

Comments

IBM® Bluemix®, решение «платформа как сервис» (PaaS) от IBM, предоставляет всю инфраструктуру, необходимую для работы приложений, и обеспечивает гибкость.Среда Bluemix основана на Cloud Foundry, платформе с открытым исходным кодом, предназначенной для создания, развертывания и администрирования приложений в облаке.

Как правило, пользователи взаимодействуют с приложением в Bluemix посредством команды cf интерфейса командной строки Cloud Foundry (CLI). Из CLI можно выполнить несколько операций в Bluemix, таких как cf push, cf delete или cf start/stop.

Кроме CLI, в Cloud Foundry есть другие инструменты и библиотеки, которые можно использовать для создания и администрирования приложений в облаке. В этом руководстве показано, как использовать в Bluemix клиентскую библиотеку Cloud Foundry Java™.

Что требуется для создания приложения

  • Учетная запись Bluemix
  • Cloud Foundry Java Client Library

Шаг 1. Получение библиотеки

Чтобы использовать клиентскую библиотеку Cloud Foundry Java в своем проекте, необходимо добавить в файл pom.xml следующие зависимости:

  <dependencies>
  	<dependency>
  		<groupId>org.cloudfoundry</groupId>
  		<artifactId>cloudfoundry-client-lib</artifactId>
  		<version>1.0.2</version>
  	</dependency>
  </dependencies>

Можно также загрузить исходный код библиотеки с сайта Github.

Шаг 2. Создание и администрирование приложений в Bluemix

Теперь рассмотрим способы создания и администрирования приложений в Bluemix с помощью клиентской библиотеки Cloud Foundry Java.

Вход в Bluemix

Чтобы получить возможность создавать и администрировать свои приложения, нужно войти в Bluemix. Создайте экземпляр класса CloudFoundryClient с учетными данными и URL-адресом для доступа к API Bluemix (например, https://api.ng.bluemix.net). Необходимо также указать организацию и пространство. По умолчанию используется пространство dev, а имя организации совпадает с идентификатором пользователя.

String user = "user@email.com";
String password = "password";
String orgName = user;
String spaceName = "dev";

// login
CloudCredentials credentials = new CloudCredentials(user, password);
URL target = URI.create("https://api.ng.bluemix.net").toURL();
CloudFoundryClient client = new CloudFoundryClient(credentials, target, orgName, spaceName);
client.login();

По окончании процесса создания или администрирования приложений Bluemix нужно выйти из системы:

client.logout();

Создание нового приложения

Класс CloudFoundryClient содержит несколько методов для создания и администрирования приложений в облаке. Чтобы создать новое приложение, вызовите метод createApplication и укажите:

  • имя нового приложения;
  • список URL-адресов, используемых для доступа к приложению, например http://<имя_приложения>.mybluemix.net;
  • объем оперативной памяти, доступной приложению, в мегабайтах (128, 256, 512 и т.д.);
  • список служб, которые будет использовать приложение;
  • объект Staging, где указаны buildpack-пакеты и – при необходимости – команда запуска приложения.

Для поиска buildpack-пакетов, доступных в Bluemix, используйте команду cf buildpacks. Например, вот некоторые из них: liberty-for-java, sdk-for-nodejs, java_buildpack и ruby_buildpack.

Приведенный ниже код демонстрирует, как создать приложение NodeJS:

String appName = "my-node-app";
String baseUrl = "http://" + appName + ".mybluemix.net/";
List<String> uris = Arrays.asList(baseUrl);

Integer memory  = 128;
List<String> serviceNames = null;

String command = "node app.js";
String buildpack = "sdk-for-nodejs";

// Создание нового приложения
client.createApplication(appName, new Staging(command, buildpack), memory, uris, serviceNames);

После создания приложения передайте исходный или двоичный код в Bluemix:

// Загрузка zip-файла
File appFile = new File("nodeApp.zip");
client.uploadApplication(appName, appFile);

Наконец, можно запустить приложение:

// Запуск приложения
client.startApplication(appName);

Управление приложением

Класс CloudFoundryClient можно использовать для выполнения ряда других операций в Bluemix, в том числе для удаления приложения, останова приложения, создания службы и привязки службы к приложению. Например, следующий код показывает, как создать и администрировать в Bluemix веб-приложение Java, использующее службу базы данных SQL:

// Создание службы БД
CloudService service = new CloudService();
service.setLabel("sqldb");
service.setName("mydb");
service.setPlan("sqldb_small");
client.createService(service);

// Создание нового приложения
String appName = "my-java-web-app";
String baseUrl = "http://" + appName + ".mybluemix.net/";
List<String> uris = Arrays.asList(baseUrl);
List<String> serviceNames =  Arrays.asList("mydb");
client.createApplication(appName, new Staging(null, "liberty-for-java"),
				512, uris, serviceNames);

// Загрузка war-файла
File warFile = new File("webApp.war");
client.uploadApplication(appName, warFile);

// Запуск приложения
client.startApplication(appName);

// Проверка состояния приложения
Assert.assertEquals("STARTED", client.getApplication(appName).getState().toString());

// Останов приложения
client.stopApplication(appName);
Assert.assertEquals("STOPPED", client.getApplication(appName).getState().toString());

// Редактирование приложения
File warFile2 = new File("webApp2.war");
client.uploadApplication(appName, warFile2);

// Привязка к приложению других служб
client.bindService(appName, "otherService");
client.startApplication(appName);

// Удаление приложения
client.deleteApplication(appName);

// Удаление службы
client.deleteService("mydb");

Услуги и планы, предлагаемые в Bluemix, можно получить с помощью команды cf marketplace.

Шаг 3. Сделай сам

Основываясь на примерах из этого руководства, я создала оболочку библиотеки Cloud Foundry Java для Bluemix. Эта оболочка облегчает процесс развертывания новых приложений в Bluemix. Вы можете попробовать ее, загрузив исходный код и выполнив класс JUnit-тестов BluemixClientTest. В этом классе имеется два теста, которые показывают, как развернуть приложения NodeJS и Java (WAR).

Заключение

Это руководство демонстрирует способы создания и администрирования приложений в Bluemix с помощью клиентской библиотеки Сloud Foundry Java. Помимо описанных здесь операций, с помощью этой библиотеки можно выполнять несколько других: увеличение объема памяти, доступной приложению, изменение количества экземпляров и получение файлов журналов событий приложения.

Все операции, которые можно выполнить посредством CF CLI, можно выполнить и с помощью Java-библиотеки, что позволяет использовать ее для автоматизации процесса развертывания и администрирования приложений в Bluemix.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Технология Java
ArticleID=1014859
ArticleTitle=Создание и администрирование облачных приложений с помощью Java
publish-date=09112015