Служба поддержки: Управление настройкой, конфигурацией и развертыванием WebSphere-приложений с помощью WebSphere Automation Framework для WebSphere

Источник: IBM

В каждой колонке "Службы поддержки" обсуждаются ресурсы, инструменты и другие элементы технической поддержки IBM для продуктов WebSphere, а также новые методы и идеи, способствующие накоплению опыта в области поддержки продуктов IBM.

Управление существующей средой с помощью Rational Automation Framework для WebSphere

Данная статья относится к системе IBM Rational Automation Framework для WebSphere версии V7.1.1.4. В более ранних версиях некоторые из описанных здесь функций недоступны.

IBM Rational Automation Framework для WebSphere (далее ― Rational Automation Framework) представляет собой решение для управления установкой, настройкой и развертыванием приложений на базе IBM WebSphere. Управляемая данными, система Rational Rational Automation Framework обеспечивает точность и согласованность, а также повышенное быстродействие благодаря параллельному выполнению операций - в дополнение к тому выигрышу в производительности, который достигается за счет автоматизации.

Система обеспечивает свыше 500 действий ― отдельных элементов, используемых для автоматизации решений на базе продуктов WebSphere. Система Rational Automation Framework построена на проверенной платформе автоматизации корпоративного уровня IBM Rational Build Forge и в настоящее время поддерживает WebSphere Application Server V6.0, 6.1 и 7.0, WebSphere Portal V6.0 и 6.1, а также IBM HTTP Server V6.0, 6.1 и 7.0. Кроме того, группа разработчиков Rational Automation Framework выпустила код инкубатора для IBM WebSphere Virtual Enterprise и комплекс IBM WebSphere Business Process Management, в который входят IBM WebSphere Process Server, IBM WebSphere Enterprise Service Bus, IBM WebSphere Business Monitor и IBM WebSphere Service Registry and Repository.

Rational Automation Framework для WebSphere и Rational Build Forge позволяют управлять ячейками IBM WebSphere. Rational Automation Framework предоставляет два способа взять под контроль ячейку среды.

  • Первый заключается в использовании нового мастера ячеек для определения топологии разрабатываемого продукта WebSphere. После запуска мастера для новой ячейки создается план автоматизации, определяющий процессы установки компонентов продукта WebSphere, создания и согласования профилей, установки HTTP-сервера IBM, установки плагинов и т.д.
  • Другой вариант ― импортирование существующей ячейки продукта WebSphere в Rational Automation Framework. При использовании мастера для существующей ячейки достаточно указать минимальные сведения о ней, такие как имя хоста одного из узлов, учетные данные операционной системы и пользователя продукта WebSphere и местонахождение профиля. Rational Automation Framework определит топологию ячейки, а затем построит ее представление в Rational Automation Framework и составит план автоматизации для импортирования данных конфигурации из ячейки (рис. 1).

Рисунок 1. Пример применения мастера Rational Automation Framework для существующей ячейки
Рисунок 1.  Пример применения мастера Rational Automation Framework для существующей ячейки

После импортирования топологии ячейки в Rational Automation Framework создается план автоматизации, который выполняет действие was_common_configure_all для всех подходящих областей. При этом будет импортирована почти вся конфигурация существующей ячейки. Примером описанной здесь среды служит среда WebSphere Application Server Network Deployment, и план автоматизации будет импортировать все действия для областей ячейки, кластера, узла и сервера (рис. 2).

Рисунок 2. План автоматизации импортирования конфигурации ячейки
Рисунок 2.  План автоматизация импортирования ячейки 's configuration

Сбор информации о конфигурации

Rational Automation Framework поддерживает несколько режимов работы. Эти режимы различны для разных действий, но многие действия поддерживают режим Import. Так как действия Rational Automation Framework предназначены для управления определенной частью конфигурации, можно использовать действие для точного определения того, какую именно информацию нужно собрать.

Например, можно выполнить действие was_common_configure_jdbc_providers в режиме Import для области ячейки (cell scope), чтобы импортировать в Rational Automation Framework только те источники данных, которые определены для данной области ячейки. Эти данные будут сохранены в нормированном, не зависящем от версии XML-формате на сервере Rational Automation Framework. Затем эти документы можно взять под контроль версий. В отличие от сервера приложений, где ресурсы нескольких типов хранятся в одном и том же файле XML, Rational Automation Framework хранит каждый тип ресурсов в своем собственном XML-файле. Например, все источники данных, поставщики JDBC и источники данных was40 хранятся в файле jdbc.xml. Кроме того, для каждой области, для которой выполнялась соответствующая команда Import, существует файл jdbc.xml.

Предположим, что определена среда TEST_PROMOTE. Можно выполнить следующую команду:

rafw_home\bin\rafw.bat -env TEST_PROMOTE -cell qa -cluster cluster1 -import was_common_configure_jdbc_providers

После завершения этой команды файл rafw_home/user/environments/TEST_PROMOTE/cells/qa/clusters/cluster1/jdbc.xml будет содержать определения всех поставщиков JDBC, определенных для области cluster1 (листинг 1).

Листинг 1. Пример результата выполнения режима Import в области с одним определенным поставщиком JDBC

<?xml version="1.0"?>
<jdbc>
<RAFW_JDBCProviders>
    <JDBCProvider
        classpath="${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar;${UNIVERSAL_JDBC_DRIVER_
PATH}/db2jcc_license_cu.jar;${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar"
        description="XA DB2 Universal JDBC Driver-compliant Provider. Datasources 
created under this provider support the use of XA to perform 2-phase commit processing. 
Use of driver type 2 on WebSphere Application Server for Z/OS is not supported for 
datasources created under this provider."
        implementationClassName="com.ibm.db2.jcc.DB2XADataSource"
        name="DB2 Universal JDBC Driver Provider (XA)"
        nativepath="${DB2UNIVERSAL_JDBC_DRIVER_NATIVEPATH}"
        providerType="DB2 Universal JDBC Driver Provider (XA)"
        xa="true"
    >
    </JDBCProvider>

</RAFW_JDBCProviders>

В данном случае в области cluster1 существует только один поставщик JDBC.

Использование для ячейки хранилища конфигураций Rational Automation Framework

После сбора данных о конфигурации в Rational Automation Framework их можно воспроизвести с помощью того же действия в режиме Execute. Режим Execute сначала удаляет все элементы конфигурации данного типа, а затем воссоздает их на основе информации, хранящейся в хранилище конфигурации Rational Automation Framework. Обратите внимание, что каждый из существующих источников данных, удаленных из конфигурации WebSphere Application Server, создается на основе модели из хранилища конфигурации Rational Automation Framework.

Добавление ресурсов в конфигурацию

Режим Augment Rational Automation Framework позволяет добавлять элементы конфигурации в ячейку WebSphere Application Server. Режим Augment ― исключительно аддитивный режим, который не изменяет существующих элементов конфигурации. Сначала выполняется проверка, не существует ли указанный элемент конфигурации; если да, то выдается предупредительное сообщение, и этот элемент пропускается. Определения для ресурсов, которые будут добавлены, содержатся в файле с именем <type> _augment.xml; например, jdbc_augment.xml для ресурсов, относящихся к JDBC. На рисунке 3 показаны предупредительные сообщения для существующих ресурсов, а также новые ресурсы, добавленные в конфигурацию WebSphere Application Server.

Рисунок 3. Маркировка существующих элементов действия, которые будут пропущены, и добавление новых ресурсов в режиме Augment
Рисунок 3.  Маркировка существующих элементов действия, которые будут пропущены, и добавление новых ресурсов в режиме Augment

Сравнение хранилища Rational Automation Framework с рабочей ячейкой

"Дрейфом конфигурации" называется ситуация, которая может возникнуть, если с течением времени в среде продукта WebSphere происходят изменения. Хотя большинство пользователей старается сохранять соответствие своей отладочной и производственной среды, со временем неизбежно происходят и такие изменения, которые остаются незамеченными. Общим источником таких скрытых изменений являются попытки решения проблем в рабочей среде. Когда критически важное приложение останавливается в два часа ночи, вполне вероятно, что не все изменения, внесенные при попытках вернуть приложение в строй, будут документально оформлены или отменены, если они не помогли. В краткосрочной перспективе изменения в этих приложениях могут показаться безобидными, но при внедрении нового приложения в рабочей среде оно начинает вести себя не так, как вело в отладочной. Или могут возникнуть различия в поведении центров обработки данных на восточном и западном побережье. На первый взгляд изменения, внесенные в "пылу битвы", могут показаться безобидными, но когда возникают проблемы, приходится искать иголку в стоге сена.

Режим Compare в Rational Automation Framework сравнивает конфигурацию из хранилища Rational Automation Framework с соответствующей конфигурацией в рабочей ячейке и помечает различия. С помощью платформы автоматизации Rational Build Forge можно запланировать такие сравнения и регулярно проводить их в часы невысокой нагрузки. Если изменения выявлены своевременно, намного легче принять обоснованное решение о целесообразности принятия или отклонения этих изменений, чем вспоминать, почему шесть месяцев назад было внесено то или иное изменение.

На рисунке 4 представлены результаты сравнения, где конфигурация Rational Automation Framework содержит ресурс источника данных, не существующий в ячейке продукта WebSphere.

Рисунок 4. Маркировка отсутствующего объекта в рабочей ячейке в режиме сравнения
Рисунок 4.  Маркировка отсутствующего объекта в рабочей ячейке в режиме сравнения

На рисунке 5 приведен пример сравнения, где помечено изменение в параметрах настройки соединений атрибута connection pool источника данных.

Рисунок 5. Изменение в атрибуте источника данных
Рисунок 5.  Изменение в атрибуте источника данных

Когда в режиме Compare Rational Automation Framework зафиксировано различие, его можно "застолбить" и внести новое значение в хранилище Rational Automation Framework. Для этого выполняется соответствующее действие Rational Automation Framework в режим импортирования. Если вы решите не сохранять изменения, то можете восстановить конфигурацию, хранящуюся в Rational Automation Framework, выполнив соответствующее действие в режим исполнения. Конфигурация будет восстановлена в соответствии со значениями, хранящимися в Rational Automation Framework.

Развертывание корпоративных приложений

Rational Automation Framework использует файл свойств, содержащий описание вариантов развертывания корпоративного приложения и местоположение файла .ear, который будет развернут. Для развертывания файлов EAR используется действие was_common_deploy_install_app -a <app name> . Файл свойств приложения может присутствовать в одном из двух форматов:

  • Первый формат ― это единичный ключ OPTIONS, который содержит все варианты развертывания wsadmin. Эту строку параметров можно быстро создать с помощью большинства версий WebSphere Application Server, просто воспользовавшись консолью администратора для развертывания приложения и выбрав ссылку View Administration scripting command for last action.
  • Другая возможность создания этих файлов свойств заключается в создании каждого параметра в wsadmin в качестве отдельного ключа в этом файле. Такой подход позволяет администраторам создать шаблон файла, который они могут передать разработчикам. В этом случае разработчикам останется только выбрать небольшой набор параметров. В листинге 2 показан сегмент одного из этих файлов. В этом примере разработчики должны будут решить, следует ли использовать параметр preCompileJSPs, а то, на какие серверы отображаются модули, решают администраторы. Rational Automation Framework содержит примеры файлов для каждой версии WebSphere Application Server, которая поддерживается средой.

Листинг 2

# Прекомпиляция файлов JavaServer Pages
options.preCompileJSPs=false

# Распространение приложения
options.distributeApp=true

# Параметр MapModulesToServers указывает сервер приложений, 
# где нужно установить модули приложения. 
options.multi.one.MapModulesToServers=["Default Application" default_app.war,
WEB-INF/web.xml WebSphere:cell=mycell,node=mynode,server=server1]
options.multi.two.MapModulesToServers=["Default Application" default_app.war,
WEB-INF/web.xml WebSphere:cell=mycell,node=mynode,server=server2
options.multi.three.MapModulesToServers=["Examples Application" examples.war,
WEB-INF/web.xml WebSphere:cell=mycell,node=mynode,server=server2+WebSphere:cell=mycell,
node=yournode,server=server1]

Развитие ресурсов на протяжении жизненного цикла разработки

В процессе развития приложения и изменения его конфигурации на протяжении жизненного цикла разработки особое внимание следует уделять перемещению связанных с ним ресурсов от одного этапа к следующему; например, перемещению источников данных, требуемых новому приложению, из общей среды тестирования в отладочную среду. Хотя желательно сохранить почти все данные неизменными (например, базу данных и имена JNDI), существуют другие значения, которые должны изменяться от среды к среде. Нехорошо, если источники данных указывают на базу данных рабочего сервера.

Эту конкретную задачу решает режим Promote Rational Automation Framework. Режим Promote действует как операция pull и "перетягивает" конфигурацию из одной среды Rational Automation Framework в другую. На практике это означает возможность перенести конфигурацию из общей тестовой среды в отладочную. Однако поддерживается и двухстороннее перемещение. Это полезно, когда обнаружена проблема в рабочей среде, и нужно перенести ту же конфигурацию в тестовую среду, чтобы поэкспериментировать и решить проблему. Кроме того, при переносе можно изменять область. Например, если разработчик работает в среде с одним автономным сервером и создает свои источники данных в области сервера, то при перемещении в общую кластерную тестовую среду Network Deployment источники данных можно перенести в область кластера. Для управления известными различиями между средами Rational Automation Framework пропускает перемещаемые данные через фильтр. Фильтр понимает два типа выражений:

  • Первый - это простая текстовая замена. Для текстовой замены в обеих областях ― исходной и области назначения ― должен присутствовать файл promote.properties. Оба файла должны содержать одинаковые ключи. Для приведенного выше примера перемещения из автономного сервера в кластер Network Deployment ключи в каждом файле будут следующими.
    • Автономная среда в области сервера: myKey=ABC
    • Среда Network Deployment в области кластера: myKey=XYZ
    При выполнении действия в режиме переноса система найдет соответствующие ключи и заменит все включения "ABC" на "XYZ". Это мощный подход, но он не обеспечивает детального управления.
  • Другой тип фильтра основан на выражениях XPath. Во многом напоминая реляционные базы данных SQL, Xpath позволяет перемещаться в разные места XML-документа. Что касается ключей Xpath, то достаточно указать ключ и значение в файле promote.properties целевой среды. Нужны два ключа, один с суффиксом .xpath, содержащий выражение Xpath, и один с суффиксом .value, который представляет собой новое значение. В примере, показанном в листинге 3, выражение Xpath указывает, что для всех элементов JavaProcessDef нужно найти атрибут maximumHeapSize элемента JavaVirtualMachine. Когда атрибут найден, устанавливается значение 512. В терминах WebSphere Application Server для каждой JVM сервера устанавливается значение MaximumHeapSize 512 MБ. Разработчик мог выполнять тестирование на своем локальном компьютере при максимальном размере "кучи" 2 ГБ, но в среде с общим сервером, на котором размещены многочисленные виртуальные машины, такая конфигурация нереалистична.

    Листинг 3

    MyMaxHeapSetting.xpath=//JavaProcessDef/JavaVirtualMachine/@maximumHeapSize
    MyMaxHeapSetting.value=512

    Другим примером может служить замена источника данных widgetDB на указатель рабочего сервера базы данных с использованием порта 5001.

    Листинг 4

    dbname.xpath=//DataSource[@name='widgetDB']/J2EEResourcePropertySet/
    	J2EEResourceProperty[@name='serverName']/@value
    dbname.value=production.db.server.com
    dbport.xpath=//DataSource[@name='widgetDB']/J2EEResourcePropertySet/
    	J2EEResourceProperty[@name='portNumber']/@value
    dbport.value=50001

Заключение

IBM Rational Automation Framework для WebSphere ― это проверенная на практике система для управления настройкой, конфигурацией и развертыванием приложений IBM WebSphere. Система Rational Automation Framework опирается на базовую корпоративную платформу автоматизации IBM Rational Build Forge, и ее можно применять для создания повторяемой, точной и быстрой инфраструктуры автоматизации, согласованной с конкретной средой WebSphere. Rational Automation Framework обеспечивает более 500 действий и более 30 библиотек автоматизации (число которых продолжает расти), предоставляя самые широкие возможности для управления средой WebSphere Application Server. Базовая платформа автоматизации и сама Rational Automation Framework предоставляет много возможностей для расширения тем, кто уже использует сценарии WebSphere Application Application.


Страница сайта http://185.71.96.61
Оригинал находится по адресу http://185.71.96.61/home.asp?artId=31647