Desarrolle patrones para el IBM PureApplication System

Mejores prácticas y consejos para el desarrollo de aplicaciones virtuales y de patrones de sistema virtual

Durante el proceso de implementar y validar aplicaciones de negocios ISV reales en el IBM® PureApplication™ System, los autores reunieron algunas de las mejores prácticas, consejos y 'cómo hacer' para desarrollar patrones de aplicación virtual (VAPs) y patrones de sistema virtual (VSPs). En este artículo, los autores comparten algunos de sus secretos con los desarrolladores de patrones virtuales, para guiarles durante sus procesos de desarrollo de patrones.

Yuki Miyata, IDR Technology Executive, IBM

Yuki Miyata es ejecutivo de tecnología para ISV y Developer Relations Japón, y se especializa en soluciones y plataformas con productos WebSphere y PureApplication System. Cuenta con más de 12 años de experiencia en soporte técnico para WebSphere, incluyendo proyectos beta WebSphere y proyectos relacionados con la nube. Desde el año pasado ha estado trabajando en la habilitación de soluciones ISV en el IBM PureApplication System.



Kohsuke Sakamoto, IDR Technology Executive, IBM

Kohsuke Sakamoto es especialista en tecnologías de la información para ISV y Developer Relations en IBM Japón. Su trabajo incluye soporte técnico para ISV en la industria del cuidado de la salud, lo cual abarca diferentes plataformas y productos, desde bases de datos y servidores de aplicaciones, hasta virtualización. Actualmente está enfocado en la habilitación de aplicaciones ISVs en IBM PureApplication System.



Hideki Gohara, IDR Technology Executive, IBM

Hideki Gohara es especialista en tecnologías de la información para ISV y Developer Relations en IBM Japón. Brinda asistencia técnica para ISVs, cubriendo muchas plataformas de servidor, OS y productos de virtualización. Se especializa en la migración de aplicaciones ISVs en IBM PureSystems.



08-10-2012

El IBM PureApplication System soporta dos tipos de patrones virtuales: Patrones de aplicación virtual y patrones de sistema virtual.

  • El patrón de aplicación virtual (VAP) es un patrón de virtualización de nivel de carga de trabajo que incluye todo lo requerido para adquirir experiencia en plataforma de aplicaciones.
  • El patrón de sistema virtual (VSP) es el patrón de virtualización a nivel de topología que incluye lo necesario únicamente para adquirir la experiencia hasta el middleware.

Este artículo describe algunas de las mejores prácticas para cada uno de los tipos de desarrollo de patrones, practicas que experimentamos cuando implementamos estos patrones para propósitos del mundo real.

Prácticas VAP

Las prácticas de patrón de aplicación virtual descritas en este artículo incluyen:

  1. Cambio del modo y la política del Class Loader (cargador de clases). Esto permite a los desarrolladores de patrón desarrollar fácilmente VAPS para aplicaciones que necesitan que se cambie el modo y la política de su cargador de clases. (Las políticas de cargador de clases controlan el aislamiento de una aplicación).
  2. Efectuar operaciones put/get con un servidor FTP. Esto permite a los desarrolladores de patrones desarrollar VAPs para aplicaciones que necesiten acceder a servidores FTP externos. Este consejo puede aplicarse a otros servidores como servidores HTTP externos, servidores RSS, etc.
  3. Resolver el problema de por qué usted no puede implementar un VAP DB/DBaaS cuando obtiene un error OLTP. Esto permite a los desarrolladores de patrones entender (y evitar) el error de OLTP faltante.

Cambio del modo y la política del Class Loader

En el IBM WebSphere® Application Server (WAS), es posible cambiar el orden en que se cargan las clases al cambiar el Class Loader.

Figura 1. Class Loader en consola WAS
Class Loader in WAS console

Por ejemplo, si usted desea cargar primero su clase, establezca el modo del Class Loader como PARENT_LAST. Normalmente, en el WebSphere Application Server, el modo del Class Loader se configura mediante la consola de administrador del WebSphere Application Server, después de instalar el EAR.

No obstante, en un VAP a usted no se le permite cambiar ninguna configuración de la VM implementada. En lugar de ello, la política JVM del Virtual Application Builder soporta las configuraciones relacionadas con el Class Loader.

Para configurar la política JVM:

  1. En el Virtual Application Builder, añada la política JVM en Enterprise Application.
  2. Seleccione PARENT_FIRST o PARENT_LAST para Class Loader Order y seleccione MULTIPLE o SINGLE en WAR Class Loader Policy.
    Figura 2. Cambiando el Class Loader cambiando la política JVM
    Changing Class Loader by changing JVM policy

Efectúe operaciones put/get con un servidor FTP

Si usted desea que su aplicación de patrón de aplicación virtual se conecte con un servidor FTP y archivos put/http , es necesario definir objetivos generales en el Virtual Application Builder:

  1. En el Virtual Application Builder, defina los Generic Targets (destinos genéricos) para los puertos 20 y 21 y vincúlelos desde el componente Enterprise Application.
  2. Ingrese el nombre del servidor FTP, la dirección IP y el número de puerto de cada destino genérico.
    Figura 3. Efectuar put/get en un servidor FTP
    To perform put/get on an FTP server

Nota: Para fijar los puertos para conectarse al servidor FTP usted debe utilizar en su aplicación el modo activo en lugar del pasivo.

¿No puede implementar un DB VAP debido a un error OLTP?

Es posible que usted encuentre un problema en el que no pueda implementar un VAP de una aplicación web que pueda incluir una base de datos o un patrón DBaaS. En lugar de ello, usted recibe un error de plug-in de sistema OLTP que puede verse como el siguiente:

! Contact an administrator to configure the "oltp" system plug-in.

! Contact an administrator to configure the "oltp" system plug-in for "IBM Transactional 
  Database Pattern" environment based on your choice for the "Purpose".

Esto puede ocurrir porque el plug-in de sistema no está configurado adecuadamente. Para corregir el error:

  1. En la Workload Console, seleccione Cloud > System Plug-ins > IBM Transactional Database Pattern > oltp y haga clic enConfigure.
  2. Seleccione Both en Environment y haga clic en OK.
    Figura 4. Configurando adecuadamente el plug-in OLTP
    Configuring the OLTP plug-in properly

Ahora veremos algunas prácticas VSP.


Prácticas VSP

Las prácticas de patrón de sistema virtual descritas en este artículo incluyen:

  1. Creación de scripts wsadmin para la implementación eficiente del VSP: Cree un script de creación de origen de datos y cree un script de instalación EAR. Es difícil crear un script wsadmin partiendo de cero y sin ninguna ayuda o instrucciones. Con este consejo, los desarrolladores de patrones pueden crear fácilmente los script wsadmin a ser utilizados para un VSP.
  2. Importar y exportar un VSP. Esto mostrará a los desarrolladores de patrones cómo utilizar la interfaz de línea de comandos, una muy buena forma de restaurar manualmente los paquetes de script y los add-ons, y copiar el patrón de migración. También presenta el concepto del entorno DBCS (conjunto de caracteres de doble byte), el cual puede confundir a los desarrolladores de patrones.
  3. Cambiar la configuración de zona horaria de la VM para un VSP. En caso de que usted no desee el UTC.
  4. Expandir el tamaño del sistema de archivos DB2 para un VSP. Para cuando es necesario un sistema de archivos más grande.
  5. Transferir tablas o datos desde una DB existente hacia un VSP. En caso de que la DB esté configurada para ingreso manual o para una herramienta dedicada y usted necesite los datos en otra DB.
  6. Usar controladores de DB2 que hayan sido probados con su aplicación. Obviamente, un controlador que ya funciona con su aplicación será el mejor para incluir en el paquete VSP.

Implemente VSPs con scripts wsadmin

Cuando esté implementando un patrón de sistema virtual, use un archivo de script Jython (*.jy) con wsadmin. Es posible crear fácilmente un archivo de script Jython utilizando una función de asistencia de comandos desde la consola de administrador del WebSphere Application Server.

Creando un script de creación de origen de datos
Para desarrollar un script de origen de datos:

  1. Cuando una máquina virtual crea una instancia, los siguientes enlaces se generan automáticamente: VNC y WebSphere. (Abra la sección Virtual machines en la instancia del sistema virtual).
  2. Haga clic en el enlace WebSphere. Inicie sesión con la UID: virtuser y con la contraseña que usted haya establecido.
  3. Este ejemplo se utiliza cuando se configura un origen de datos. Después de invocar la Integrated Solutions Console, seleccione Resources > JDBC > Data sources en el menú izquierdo.
  4. Haga clic en el botón New en la sección Preferences y siga del Paso 1 al Paso 5.
  5. Después de hacer clic en Finish, en el panel de la derecha, haga clic en el comando Command Assistance > View administrative scripting, para la última acción.
    Figura 5. Asistencia de comandos
    Command Assistance
  6. Copie el script en la pantalla: Administrative Scripting Commands (como AdminTask, AdminConfig).
    Figura 6. Copie el script en la pantalla
    Copy the script in the screen
  7. Actualice la descripción en un archivo como el archivo Jython createDatasource.jy del createDatasource.zip, referenciándolo hacia los scripts copiados en el Paso 6.

Creando un script de instalación EAR
Usted acaba de aprender cómo desarrollar un script creando un origen de datos. Ahora vamos a crear un script para instalar un archivo Enterprise Archive.

  1. Cuando una máquina virtual crea una instancia, los siguientes enlaces se generan automáticamente: VNC y WebSphere. (Abra la sección Virtual Machines en la instancia de sistema virtual).
  2. Haga clic en el enlace WebSphere. Inicie sesión con la UID: virtuser y la contraseña que usted haya establecido.
  3. Después de invocar la Integrated Solutions Console, seleccione Applications > New Application > New Enterprise Application en el menú izquierdo.
  4. Ingrese la ruta hacia la nueva aplicación (donde usted puso el archivo EAR).
  5. Seleccione Fast Path o Detailed. Si selecciona Fast Path, siga del Paso 1 al Paso 3.
  6. Después de hacer clic en Finish, en el panel de la derecha, haga clic en el comando Command Assistance > View administrative scripting, para la última acción.
  7. Copie el script en la pantalla: Administrative Scripting Commands (como AdminTask, AdminConfig).
  8. Actualice la descripción en un archivo como installApp.jy, que se puede encontrar en el installApp.zip, referenciándolo hacia los scripts copiados en el Paso 6.

Exportar/importar un VAP

En un VAP, es posible exportar e importar los módulos con un solo clic. No obstante, en un VSP habrá necesidad de restaurar manualmente los paquetes de script y los add-ons, y copiar el patrón de migración usando un comando deployer hacia un nuevo entorno.

Para prepararse:

  1. Descargue una herramienta de línea de comandos desde la pantalla de inicio del IBM PureApplication System y descomprímala en el <WORKING_DIRECTORY> (aprox. 8MB).
    Figura 7. Descarga de la herramienta de línea de comandos
    Download the command line tool
  2. Si usted usa una herramienta de comando deployer en un entorno DBCS, entonces muévala a <WORKING_DIRECTORY>\deployer.cli\lib\3.1.0.0-20111118232331. El nombre del directorio es diferente dependiendo de la versión. Edite el archivo de registro; elimine los comentarios de las dos filas (Figura 8) y edite el codeset.
    Figura 8. En un entorno DBCS
    In a DBCS environment

Un entorno DBCS (conjunto de caracteres de doble byte) es aquel en el que el conjunto de caracteres está compuesto por todos los caracteres (incluyendo caracteres de control) codificados en dos bytes Ó simplemente cada caractere que no se puede representar por un S(ingle)BCS acompañante es codificado en dos bytes. Un DBCS soporta idiomas nacionales que contienen un gran número de caracteres o símbolos únicos, como el japonés, el coreano y el chino.

Para exportar:

  1. Descargue y guarde los paquetes de script (si los hay y también los add-ons) para el patrón en cuestión.
  2. Muévalos a <WORKING_DIRECTORY>\deployer.cli\bin y ejecute un comando deployer . Un comando puede ser algo como lo siguiente:
    deployer -h host_IP_address -u user_name 
    -ppassword -f ..\samples\patternToPython.py -f xxx_vsp.py

    .
    Figura 9. Guarde los paquetes de script y los add-ons
    Save script packages and add-ons

Seleccione el patrón fuente correspondiente que desee copiar desde la pantalla anterior y exporte el script Python (xxx_vsp.py) (cualquier nombre de archivo que usted desee que termine en .py) para utilizarlo luego para un patrón de sistema virtual objetivo.

Para importar:

  1. Ahora que usted ha descargado los paquetes de script fuente (y también los add-ons), cree un paquete de script (y add-ons) con el mismo nombre exacto que el original y cargue los archivos ZIP descargados. Asegúrese de que los parámetros estén configurados correctamente haciendo clic en el botón Refresh .
  2. Importe hacia un nuevo entorno el archivo VSP (xxx_vsp.py) que exportó en los pasos anteriores, usando el comando deployer . Use un comando similar a este:
    deployer -h host_IP_address -u user_name -ppassword -f xxx_vsp.py

    Tenga presente: si existe el mismo nombre de patrón, remuévalo antes de ejecutar el comando deployer .
  3. Implemente en la nube el VSP que acaba de importar. Después de la implementación, confirme que se ejecuta bien como una instancia.

Cambie la zona horaria de la VM para el VSP

La zona horaria de una VM implementada se establece como el UTC de forma predeterminada. Si usted desea cambiarlo, será necesario describirlo en el script. (En un VAP usted no tiene permitido cambiar el UTC).

En el lado DB2, si usted desea cambiar la zona horaria por la JST (Hora Estándar de Japón), describa lo siguiente en el script de creación de la DB.

Figura 10. Cambiando la zona horaria en el lado DB2
Changing the time zone on the DB2 side

Para cambiar la zona horaria en el lado del WebSphere Application Server, ponga en el primer script ejecutado en el WebSphere Application Server VM lo siguiente:

Figura 11. Cambiando la zona horaria en el lado del WebSphere Application Server
Changing the time zone on the WebSphere Application Server side

Expandir el tamaño del sistema de archivos DB2 para VSPs

Si en un entorno VSP DB2 es necesaria una migración de datos de gran volumen (nominalmente más de 20GB), usted descubrirá que un sistema de archivos de tamaño predeterminado no es suficiente. Es posible añadir un disco utilizando una función add-on e incrementar el tamaño del sistema de archivos.

  1. En la Workload Console, seleccione Catalog > Add-Ons.
  2. Seleccione Default add disk en el panel izquierdo y seleccione el botón Clone con el ícono.
  3. Para crear un nuevo add-on, ingrese un nombre apropiado.
  4. Seleccione el que acaba de crear en el panel izquierdo.
  5. En el panel derecho, cambie el valor de Environment: DISK_SIZE_GB = 10 por el tamaño de disco que es necesario.
  6. Es posible descargar defaultadddisk.zip del ícono Download; este contiene un script llamado adddisk. Edítelo referenciándolo hacia las descripciones de muestra de la Figura 12. Cargue el paquete de script modificado.
    Figura 12. Desmontando el sistema de archivos
    Unmounting the file system

Cuando usted implementa con el script que acaba de utilizar, es posible usar el sistema de archivos /db2fs con su tamaño de disco aumentado en el DB2 VSP.

Transferir tablas/datos desde una DB existente en un VSP

Si se dificulta crear un script para la creación de una DB y la carga de datos porque la DB está configurada para ingreso manual o para una herramienta dedicada. Es posible que usted necesite crear un script para transferir los datos desde una DB existente.

Para usar db2 backup:

  1. Realice copia de seguridad desde la DB existente con:
    db2 backup db DB_name to backup_file_name compress
  2. Cree un script para restaurar datos desde el archivo de copia de seguridad y empaquételo con el archivo de copia de seguridad:
    db2 restore db DB_name from backup_file_name

Nota: En este método, el paquete de script tiende a tornarse más largo dado que el archivo de copia de seguridad está empaquetado en él. Adicionalmente, este método depende de la plataforma involucrada, así que, por ejemplo, no hay compatibilidad entre los diferentes endians como IA Linux (little endian) y AIX (big endian). Para evitar estos problemas, use el método db2move .

Con el métododb2move :

  1. Adquiera el archivo DDL de la DB existente:
    db2look -d DB_name -a -e -l -x -f -td % -o DDL_file_name
  2. Adquiera los datos de la DB existente:
    db2move DB_name export -sn schema_name
  3. Si existen tablas que incluyan las columnas generadas, expórtelas:
    db2 export to table_name.ixf of ixf messages table_name.msg select * from table_name
  4. Cree un script como el de la Figura 13.
    Figura 13. Usando db2move
    Using db2move
  5. Cree un paquete de script empaquetando el script y los archivos adquiridos entre el Paso 1 y el Paso 3.

Use controladores DB2 que hayan sido comprobados con su aplicación

Es posible que usted desee usar controladores DB2 que hayan sido probados con su aplicación, en lugar de los controladores DB2 suministrados por el PureApplication System. En los VSPs, es posible reemplazarlos empaquetando los controladores DB2 que desee utilizar.

  1. Incluya los controladores DB2 comprobados (db2jars.zip) en el paquete de script para la instalación de controladores DB2.
  2. Describa el siguiente proceso en el script para la instalación de controladores DB2:
    # Copy db2jar.zip and extract the driver files at /opt/db2 directory
    chmod 777 /tmp/script_package_name/db2jars.zip
    mkdir /opt/db2
    chown virtuser:users /opt/db2
    cp /tmp/xxxx_installDB2Drivers/db2jars.zip /opt/db2
    sudo -u virtuser unzip -d /opt/db2 /tmp/xxxx_installDB2Drivers/db2jars.zip
    # Add the DB2 driver path to the environment variable
    echo "export DB2UNIVERSAL_JDBC_DRIVER_PATH=/opt/db2" >> /etc/virtualimage.properties
    source /etc/virtualimage.properties
  3. Cree un proveedor JDBC estableciendo los JARs de controlador DB2 extraídos como ruta de acceso de clase en el script wsadmin para creación de origen de datos.
    • Código de muestra para la creación de origen de datos no XA:
      AdminTask.createJDBCProvider('[-scope Cell=' + cellName + ' -databaseType DB2
       -providerType "DB2 Universal JDBC Driver Provider"
       -implementationType "Connection pool data source"
       -name "DB2 Universal JDBC Driver Provider"
       -description "One-phase commit DB2 JCC provider"
       -classpath [/opt/db2/db2jcc.jar /opt/db2/db2jcc_license_cu.jar]]')
    • Código de muestra para la creación de origen de datos XA:
      AdminTask.createJDBCProvider('[-scope Cell=' + cellName + ' -databaseType DB2
       -providerType "DB2 Universal JDBC Driver Provider"
       -implementationType "XA data source"
       -name "DB2 Universal JDBC Driver Provider (XA)"
       -description "DB2 Universal JDBC Driver Provider (XA)"
       -classpath [/opt/db2/db2jcc.jar /opt/db2/db2jcc_license_cu.jar]]')

En conclusión

Esperamos que estas mejores prácticas que hemos encontrado al implementar patrones orientados a la nube virtual para propósitos de la vida real, sean un buen inicio para ayudarle a configurar e implementar patrones en entornos de nube.

Recursos

Aprender

  • Para más información sobre el uso de patrones virtuales, visite PureSystems en developerWorks.
  • En los recursos para desarrollador de nube de developerWorks, descubra y comparta conocimiento y experiencia de desarrolladores de aplicaciones y servicios que están creando sus proyectos para implementación en la nube.
  • Conozca cómoaccesar a IBM SmartCloud Enterprise. Desarrollar en SmartCloud es una excelente manera de practicar el desarrollo para IBM PureSystems.

Obtener los productos y tecnologías

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Cloud computing, WebSphere, Information mgmt
ArticleID=839617
ArticleTitle=Desarrolle patrones para el IBM PureApplication System
publish-date=10082012