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.
Las prácticas de patrón de aplicación virtual descritas en este artículo incluyen:
- 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).
- 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.
- 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
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:
- En el Virtual Application Builder, añada la política JVM en Enterprise Application.
- 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
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:
- 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.
- 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
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:
- En la Workload Console, seleccione Cloud > System Plug-ins > IBM Transactional Database Pattern > oltp y haga clic enConfigure.
- Seleccione Both en Environment y haga clic en OK.
Figura 4. Configurando adecuadamente el plug-in OLTP
Ahora veremos algunas prácticas VSP.
Las prácticas de patrón de sistema virtual descritas en este artículo incluyen:
- 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.
- 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.
- Cambiar la configuración de zona horaria de la VM para un VSP. En caso de que usted no desee el UTC.
- Expandir el tamaño del sistema de archivos DB2 para un VSP. Para cuando es necesario un sistema de archivos más grande.
- 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.
- 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:
- 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).
- Haga clic en el enlace WebSphere. Inicie sesión con la UID: virtuser y con la contraseña que usted haya establecido.
- 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.
- Haga clic en el botón New en la sección Preferences y siga del Paso 1 al Paso 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
- Copie el script en la pantalla: Administrative Scripting Commands (como
AdminTask,AdminConfig).
Figura 6. Copie el script en la pantalla
- 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.
- 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).
- Haga clic en el enlace WebSphere. Inicie sesión con la UID: virtuser y la contraseña que usted haya establecido.
- Después de invocar la Integrated Solutions Console, seleccione Applications > New Application > New Enterprise Application en el menú izquierdo.
- Ingrese la ruta hacia la nueva aplicación (donde usted puso el archivo EAR).
- Seleccione Fast Path o Detailed. Si selecciona Fast Path, siga del Paso 1 al Paso 3.
- 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.
- Copie el script en la pantalla: Administrative Scripting Commands (como
AdminTask,AdminConfig). - 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.
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:
-
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
- Si usted usa una herramienta de comando
deployeren 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
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:
- Descargue y guarde los paquetes de script (si los hay y también los add-ons) para el patrón en cuestión.
- 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
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:
- 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 .
- 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 comandodeployer. - 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
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
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.
- En la Workload Console, seleccione Catalog > Add-Ons.
- Seleccione Default add disk en el panel izquierdo y seleccione el botón Clone con el ícono.
- Para crear un nuevo add-on, ingrese un nombre apropiado.
- Seleccione el que acaba de crear en el panel izquierdo.
- En el panel derecho, cambie el valor de Environment: DISK_SIZE_GB = 10 por el tamaño de disco que es necesario.
- 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
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:
- Realice copia de seguridad desde la DB existente con:
db2 backup db DB_name to backup_file_name compress
- 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 :
- Adquiera el archivo DDL de la DB existente:
db2look -d DB_name -a -e -l -x -f -td % -o DDL_file_name
- Adquiera los datos de la DB existente:
db2move DB_name export -sn schema_name
- 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
- Cree un script como el de la Figura 13.
Figura 13. Usando db2move
- 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.
- Incluya los controladores DB2 comprobados (db2jars.zip) en el paquete de script para la instalación de controladores DB2.
- 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
- 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]]')
- Código de muestra para la creación de origen de datos no XA:
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.
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
-
Consulte las imágenes de producto disponibles para IBM SmartCloud Enterprise.
Comentar
-
Únase al grupo de computación en nube de developerWorks.
-
Lea todos los excelentes blogs sobre la nube en developerWorks.
-
Únase al comunidad developerWorks, una red profesional y un conjunto unificado de herramientas comunitarias para conectarse, compartir y colaborar.
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 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.