Создание и настройка образов виртуальных приложений

Как добавлять новые компоненты и возможности с помощью инструментария IBM Workload Plug-in Development Kit

Образы виртуальных приложений типа "платформа как сервис" представляют собой сочетание ориентированных на приложения моделей развертывания, виртуальных приложений (которые состоят из отдельных компонентов и политик), используемых ими инфраструктуры и ПО промежуточного уровня, а также зависящих от рабочей нагрузки расширений, или "плагинов", которые определяют компоненты, связи и политики, используемые для описания и развертывания образов виртуальных приложений типа тех, что используются в облаке IBM® SmartCloud Enterprise и в системах IBM PureSystem™. В этой статье объясняется, как приступить к работе с инструментарием IBM Workload Plug-in Development Kit и двигаться по пути создания и настройки образов виртуальных приложений. Некоторые основные операции инструментария демонстрируются в сопутствующей статье Применение IBM Workload Plug-in Development Kit.

Тед Кирби, старший программист, IBM

Author photoТед Кирби занимается разработкой плагинов для шаблонов IBM Workload Deployer для веб-приложений в подразделении IBM в исследовательском центре Research Triangle Park, штат Северная Каролина. Он принимает участие в проекте Apache Geronimo и был разработчиком WebSphere Application Server Community Edition. Ранее он занимался популяризацией WebSphere для экстремальной обработки транзакций, а также улучшением и поддержкой сайтов электронной торговли и разработкой распределенных операционных систем, включая операционную систему для компьютера Deep Blue.



Линь Сунь, Advisory Software Engineer, IBM

Линь Сунь (Lin Sun) – инженер-консультант по разработке ПО, работает на IBM в Research Triangle Park, Северная Каролина, в группе разработки WebSphere Application Server Community Edition. Она получила степень магистра по информатике в Университете Северной Каролины в Чэпел Хилл (Chapel Hill).



28.08.2012

Система IBM PureApplication™ поддерживает проблемно-ориентированные модели развертывания виртуальных приложений. Виртуальные приложения описываются в терминах артефактов приложения (компонентов и связей между ними), а также требуемых характеристик качества обслуживания (политик). Во время развертывания определяется платформа (инфраструктура и ПО промежуточного уровня), необходимая для размещения виртуального приложения.

Такой подход "платформа как сервис" реализуется путем комбинирования системы PureApplication System с контентом, зависящим от рабочей нагрузки. Система PureApplication обеспечивает общую инфраструктуру и механизм расширения для проектирования, развертывания и администрирования виртуальных приложений. Контент, зависящий от рабочей нагрузки, добавляется в качестве плагинов. Эти плагины определяют компоненты, связи и политики для описания образов виртуальных приложений, а также ПО промежуточного уровня и автоматизации, необходимое для реализации образов в процессе развертывания.

Разработчики создают плагины, которые "разместители" затем используют для описания и развертывания образов. Эта статья посвящена тому, как создавать плагины с помощью инструментария IBM Workload Plug-in Development Kit.

Что такое плагин?

Плагин ― это основной механизм создания и установки расширений PureApplication System в процессе поддержки рабочих нагрузок и приложений заказчиков. Плагин является основным компонентом виртуальных приложений. Обычно он реализует определенные возможности. Например, плагин WebSphere® Application Server (WAS) обеспечивает возможность размещения приложений WAR/EAR/EBA на сервере WebSphere Application Server, а плагин WAS/DB ― связь WAR/EAR/EBA с базой данных.

Плагины ― это основные составляющие виртуального приложения, а также базовой реализации, которая позволяет развертывать приложения в облаке.


Virtual Application Builder

В состав PureApplication System входит инструмент для создания виртуальных приложений Virtual Application Builder (VAB).

  • Виртуальные приложения строятся из компонентов.
  • К компонентам могут применяться политики.
  • Компоненты могут подключаться посредством связей.
  • Компоненты, связи и политики могут иметь атрибуты, такие как имена пользователей, пароли, имена баз данных или архивные файлы, такие как файл WAR, которым пользователь присваивает значения в процессе создания виртуального приложения.

В PureApplication System готовое виртуальное приложение сохраняется в виде модели приложения JSONObject. Затем модель приложения может быть развернута.

При построении виртуального приложения сначала открывают Virtual Application Builder и выбирают типовой образ (pattern type). Образы поведения ― это группы плагинов. Типовой образ определяет выбранные опции и возможности пользователя при работе в Virtual Application Builder. Пользователь строит виртуальное приложение из набора компонентов, связей и политик, которые предоставляют плагины, содержащиеся в выбранном типовом образе.

Плагин, который обеспечивает компонент или связь, полностью определяет их семантику и функционирование. Он отвечает за реализацию своего воплощения при развертывании виртуального приложения и в продолжение всего его жизненного цикла. Например, плагин должен обеспечить надлежащие сценарии жизненного цикла для управления виртуальным приложением с помощью различных событий жизненного цикла.

Пользователь имеет дело главным образом с компонентами, связями и политиками, но у плагина есть и другие аспекты. IBM Workload Plug-in Development Kit позволяет создавать свои собственные плагины. Затем эти плагины можно импортировать в PureApplication System и использовать для добавления новых возможностей.

В PureApplication System пользователи могут взаимодействовать с действующими виртуальными приложениями с помощью операций, доступных на консоли виртуального приложения. Плагины добавляют эти операции и способы их реализации.


Что такое типовой образ?

Типовые образы – это контейнеры с ресурсами, ориентированными на конкретное решение и топологию, необходимые для виртуальных приложений различных типов; это наборы плагинов, таких как Web-приложения (IBM Workload Deployer Pattern для Web-приложений) или базы данных (IBM Workload Deployer Pattern для DB2 Workgroup Edition).

Администратор облачной системы PureApplication может импортировать как типовые образы, так и отдельные плагины. Плагины могут предоставлять администратору облака PureApplication те или иные возможности по настройке параметров глобальной конфигурации.


Проектирование проблемно-ориентированных плагинов

Плагины должны проектироваться с учетом их использования для конкретного приложения. Это означает, что компоненты, связи и политики должны отражать артефакты и свойства приложения, а не инфраструктуры или промежуточного ПО. Например, артефактами приложений могут быть WAR-файлы и экземпляры базы данных. Чтобы связать WAR-файлы с экземплярами базы данных, требуется связь.

В число возможных расширений входит поддержка упругого масштабирования Web-приложения. Масштабирование - это качество обслуживания, которое можно смоделировать как объект политики в отношении компонента WAR-файла. (Добавление политики масштабирования может привести к дополнительным процессам в ходе развертывания, таким как прокси, репликация буфера сеанса и т.д., но плагин управляет всеми деталями в соответствии с намерениями разместителя).

При проектировании следует также учитывать вопросы управления приложением. Например, разместителям может потребоваться возможность замены WAR-файла во время работы приложения.

Разработчик плагина может принять решение о создании нового типового образа для выделения тех или иных возможностей пользователя. Альтернативой служит добавление плагинов к существующему типовому образу, такому как Web Application Pattern Type, чтобы предоставить разместителям доступ к комбинации из новых и уже существующих плагинов.

Соответствием между типовыми образами и плагинами управляет плагин. Типовой образ представляет собой именованную коллекцию; каждый плагин может указывать на свою связь с одним или несколькими типовыми образами. Такой подход самоуправления позволяет другим разработчикам расширять любые типовые образы.

Плагины могут расширять PureApplication System в различных местах, включая процессы проектирования (компоненты, связи и политики), развертывание (двоичные файлы и сценарии автоматизации), логику преобразования и управление.

Плагин объявляет свои связи с типовыми образами в объекте patterntypes. Он может установить связь с одним основным и одним или более дополнительными типовыми образами. Под основной связью подразумевается лицензированная связь; для упрощения обмена могут быть также указаны дополнительные связи. Если указана основная связь, то плагин остается недоступным до тех пор, пока не задействован основной типовой образ.

Объект packages предоставляет абстрактный уровень для отдельных компонентов, обеспечиваемых плагином. Компоненты (parts) ― это группы файлов, устанавливаемых на виртуальные машины по мере необходимости, причем к определенной целевой машине (операционной системы, архитектуры) могут относиться определенные компоненты. Преимущество для преобразователей – используемых для преобразования компонентов, связей или политик модели приложения в часть документа топологии, который можно применять для развертывания по образцу – заключается в том, что преобразователь просто добавляет пакеты в ВМ-шаблоны. Впоследствии PureApplication System разлагает пакеты на компоненты в соответствии с целевой машиной. Такая логика преобразования не зависит от специфики машины.


Что может PDK?

PDK - это инструмент, который помогает разработчиками плагинов PureApplication System создавать свои собственные плагины и типовые образы для Workload Deployer. PDK содержит среду для сборки плагинов и типовых образов, образцы и инструментарий для создания новых проектов по разработке плагинов. Дополнительные сведения приведены в Руководстве по разработке плагинов (EN).

Плагины и типовые образы строятся и упаковываются с помощью Apache Ant. PDK содержит для этой цели XML-файлы сборки Ant. Эти файлы сборки можно запускать из командной строки или среды Eclipse (могут работать и другие среды разработки, но PDK поддерживает только командную строку и Eclipse).

При использовании PDK предъявляются следующие требования:

  • Java™ SE6, 32-разр.;
  • Apache Ant, 1.7+;
  • Eclipse V3.6.2, 32-разр. Рекомендуется использовать версию Java Enterprise Edition (JEE).

Среда Eclipse не обязательна, но при ее использовании выбирайте указанную выше версию. При использовании среды Eclipse можно применять входящий в нее пакет Ant, не устанавливая Ant отдельно. Пакет Ant находится в каталоге установки Eclipse: eclipse/plugins/org.apache.ant_1.*.


Установка PDK

На первом шаге PDK загружается в рабочую станцию. Его можно загрузить из PureApplication System, когда после входа в систему появляется экран приветствия, или из вики PDK. PDK представляет собой ZIP-файл. После его загрузки и распаковки откройте командную строку из каталога, в который распакован ZIP-файл, и запустите Ant.

PDK – это лицензируемый продукт. После запуска Ant появится экран с текстом лицензионного соглашения. Чтобы продолжить, нужно принять условия лицензии и распаковать содержимое PDK.

Пример patterntype.hello

Типовой образ hello позволяет развернуть простое виртуальное приложение hello. Типовые образы могут содержать компоненты, связи и политики, которые будут использоваться в Virtual Application Builder для создания виртуальных приложений.

В типовом образе hello два компонента и одна связь:

  • HCenter: этот компонент выполняет развертывание виртуальной машины, содержащей промежуточное ПО простого центра управления сообщениями HelloCenter. HelloCenter открывает порт 4000, принимает запросы от клиентов и возвращает приветственные сообщения;
  • Hello: этот компонент использует ВМ, содержащую клиентский компонент HelloCenter. Клиент направляет в HelloCenter запрос с идентификатором отправителя сообщения и пытается получить ответное приветственное сообщение, чтобы вывести его на консоль.
  • HClink: устанавливает связь между компонентами Hello и HCenter. Передает Hello-клиенту IP-адрес сервера HCenter, что позволяет клиенту обращаться с запросами к серверу. У этой связи есть также атрибут с именем получателя приветственного сообщения.

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

Создание плагинов и типовых образов с помощью PDK

Для создания плагинов или типовых образов с помощью PDK введите из командной строки:

cd iwd-pdk-workspace/plugin.depends
ant                                 /*Эта команда создает все плагины в рабочей области.*/
cd ../patterntype.hello
ant -f build.patterntype.xml        /*Эта команда создает типовой образ hello, пример, 
                                      включенный в PDK ― см. описание ниже.
                                      Каталог export содержит собранный типовой образ, 
                                      готовый для установки в IWD.*/

Обратите внимание, что эти сценарии сборки Ant можно запускать из Eclipse (или своей IDE) ― щелкните правой кнопкой мыши на файле build.xml и выберите Run As > Ant build.

Собранный типовой образ hello можно импортировать в PureApplication System, построить виртуальное приложение из его компонентов и развернуть это виртуальное приложение.


Содержание и детали PDK

Оставшаяся часть статьи посвящена подробному описанию содержания PDK, включая образец приложения.

Каталог/проект plugin.depends

Каталог/проект plugin.depends содержит библиотеки плагинов Workload Deployer для разработки, инструменты сборки плагинов и образов и библиотеку сборки Ant, в том числе:

  • папку lib со всеми файлами архивов Java (JAR), необходимыми для разработки плагинов;
  • папку lib-build со всеми библиотеками, необходимыми для сценария сборки плагинов;
  • файл build/build.plugins.xml, основной встроенный файл сценария сборки одного плагина. Файл сценария сборки каждого плагина импортирует этот файл сценария сборки и при необходимости добавляет дополнительные действия;
  • общий сценарий сборки типовых образов build/build.patterntypes.xml. Файл сценария сборки каждого типового образа импортирует этот файл сценария сборки и при необходимости добавляет дополнительные действия;
  • файл create.plugin.project.xml, который представляет собой сценарий Ant, используемый для создания проектов по разработке плагинов в рабочей области.

Для создания проектов по разработке плагинов можно использовать файл create.plugin.project.xml из каталога plugin.depends. Этот файл создает шаблон, или проект по разработке плагина на базе Java. У него два обязательных параметра: project-name и plugin-name. С помощью этих двух параметров создается шаблон-проект. Третий параметр, java.classname, необязательный. Если указано действительное имя класса, создается проект плагина Java. Имя класса может быть сокращенным, например, MyPlugin, или полным именем пакета, например, com.acme.iwd.plugin.MyPlugin. И важно не помещать на конце .java, поскольку это расширение уже подразумевается.

  • Ant-сценарий create.plugin.project.xml использует plugin-project-template для создания проектов по разработке плагинов.

Примеры типовых образов и плагинов

В пакет ZIP PDK включены четыре проекта в виде плагинов. Эти плагины демонстрируют, как разработать модель приложения, конфигурацию, шаблон виртуальной машины и сценарии плагина на языке Python.

Проект разработки плагина HCenter
plugin.com.ibm.sample.hellocenter

Этот плагин содержит компонент HelloCenter, который представляет собой развернутую виртуальную машину с функцией сервера HelloCenter. По этому плагину можно научиться писать сценарии для таких этапов жизненного цикла, как установка, настройка, пуск и останов промежуточного ПО, подобного HelloCenter. Можно использовать следующие сценарии на языке Python:

  • install.py: загружает артефакты из хранилища и устанавливает промежуточное ПО. Если нужно загрузить с сервера хранения данных и расширить установочный файл TGZ, используйте вместо этого функцию downloadx;
  • configure.py: загружает артефакты, переданные плагином, настраивает промежуточное ПО и открывает межсетевой экран, чтобы принимать запросы клиентов. Экспортируйте его IP-адрес;
  • start.py: Запускает сервер HelloCenter и изменяет состояние роли на Running;
  • stop.py: останавливает сервер HelloCenter.

Можно также получить доступ к модулю maestro и использовать логгер для регистрации своих сообщений. Более подробные сведения о модуле maestro и расширенной журналах регистрации сообщений, таких как maestro.trace_call, приведены в PDK плагинов.

Проект разработки плагина Hello
plugin.com.ibm.sample.hello

Этот плагин обеспечивает компонент, который представляет собой развернутую машину, обращающуюся к HelloCenter, так что он должен работать вместе с плагином HClink. Этот плагин содержит следующие сценарии:

  • configure.py: регистрирует сведения об отправителе;
  • start.py: изменяет состояние роли на Running.

Проект разработки плагина HClink
plugin.com.ibm.sample.hclink

Этот плагин связывает Hello и HelloCenter и устанавливается вместе с плагином Hello на той же виртуальной машине. Он содержит следующий сценарий:

  • changed.py: этот сценарий запускается только после того, как роли плагинов Hello и HelloCenter переходят в состояние Running. Сценарий проверяет, существует ли зависимая роль HelloCenter, и считывает из HelloCenter передаваемые параметры, которые экспортируются в сценарий HelloCenter configure.py. Сценарий change.py использует IP-адрес HelloCenter для доступа к HelloCenter и распечатывает ответные сообщения. Этот сценарий демонстрирует также способ локализации сообщений.

Плагины Hello, HelloCenter и HClink показывают:

  • как передавать параметры между двумя плагинами;
  • как обеспечить совместную работу двух или более плагинов.

В плагинах содержится пример модели и конфигурации приложения, шаблон виртуальной машины и конфигурация шаблона виртуальной машины.

Вы можете создавать свои артефакты не с нуля, а на основе этих образцов моделей приложения, конфигураций, образов виртуальных машин и конфигураций виртуальных машин. За более подробной информацией обращайтесь к PDK.

Проект разработки типового образа patterntype.hello
patterntype.hello

В проекте разработки типового образа patterntype.hello:

  • файл patterntype.json содержит пример настройки типового образа;
  • файл build.patterntype.xml используется для сборки типового образа в пакет. Внимание! Перед запуском этого сценария необходимо запустить build.xml в проекте plugin.depends, чтобы собрать все плагины в рабочей области;
  • папка licenses содержит все документы лицензионных соглашений на всех поддерживаемых языках;
  • папка locales хранит все переводы файла message.json на все поддерживаемые языки.

Заключение

Мы надеемся, что эта статья стала хорошим экскурсом по IBM Workload Plug-in Development Kit. Но это еще не все! В сопутствующей статье Применение IBM Workload Plug-in Development Kit рассматриваются четыре базовые задачи, позволяющие приобрести практический опыт работы с PDK.

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, WebSphere, Information Management
ArticleID=832229
ArticleTitle=Создание и настройка образов виртуальных приложений
publish-date=08282012