Desenvolva padrões para IBM PureApplication System

Melhores práticas e dicas para desenvolver padrões de aplicativos e sistemas virtuais

Durante o processo de implementar e validar aplicativos de negócios reais de ISVs no IBM® PureApplication™ System, os autores reuniram algumas melhores práticas, dicas e instruções para desenvolver padrões de aplicativos virtuais (VAPs) e padrões de sistemas virtuais (VSPs). Neste artigo, os autores compartilham alguns desses segredos com desenvolvedores de padrão virtual para auxiliá-los em seu processo de desenvolvimento de padrões.

Yuki Miyata, IDR Technology Executive, IBM

Yuki Miyata é technology executive de Relações de ISV e Desenvolvedores no Japão, especializado em soluções e plataformas com produtos WebSphere e PureApplication System. Possui mais de 12 anos de experiência em suporte técnico do WebSphere, incluindo projetos beta do WebSphere e projetos relacionados à nuvem. Desde o ano passado, tem como projeto estabelecer soluções de ISVs no IBM PureApplication System.



Kohsuke Sakamoto, IDR Technology Executive, IBM

Kohsuke Sakamoto é information technology specialist em Relações de ISV e Desenvolvedores na IBM Japão. Seu trabalho inclui suporte técnico para ISVs no setor de assistência médica, incluindo muitas plataformas e produtos, de banco de dados a servidores de aplicativos e virtualização. Ultimamente concentra seu trabalho no estabelecimento de aplicativos de ISVs no IBM PureApplication System.



Hideki Gohara, IDR Technology Executive, IBM

Hideki Gohara é information technology specialist em Relações de ISV e Desenvolvedores na IBM Japão. Ele auxilia os ISVs em aspectos técnicos, cobrindo muitas plataformas de servidor, S.O. e produtos de virtualização. Sua especialidade é migrar aplicativos de ISVs para IBM PureSystems.



26/Jul/2012

O IBM PureApplication System suporta dois tipos de padrões virtuais: padrões de aplicativos virtuais e padrões de sistemas virtuais.

  • O padrão de aplicativo virtual (VAP) é um padrão de virtualização no nível de carga de trabalho que inclui tudo, até conhecimento de plataforma de aplicativo.
  • O padrão de sistema virtual (VSP) é o padrão de virtualização de nível de topologia que inclui apenas até o conhecimento de middleware.

Este artigo descreve algumas melhores práticas para cada um dos tipos de desenvolvimento de padrão, descobertas ao implementar esses padrões com objetivos reais.

Práticas de VAP

As práticas de padrão de aplicativo virtual descritas neste artigo incluem:

  1. Alteração do modo e política do carregador de classes. Permite que desenvolvedores de aplicativos criem facilmente VAPs para aplicativos que precisam de alteração no modo e política de seu carregador de classe. (As políticas do carregador de classes controlam o isolamento de um aplicativo.)
  2. Realização de operações put/get com um servidor FTP. Permite que os desenvolvedores desenvolvam VAPs para aplicativos que precisam acessar servidores FTP externos. Essa dica pode ser aplicada a outros servidores, como servidores externos de HTTP, RSS etc.
  3. Resolução de problemas que impedem a implementação de um VAP DB/DBaaS e resultam em um erro de OLTP. Permite que os desenvolvedores de padrão entendam (e evitem) o erro de OLTP ausente.

Alterar modo e política do carregador de classes

No IBM WebSphere® Application Server (WAS), é possível alterar o carregador de classes para alterar a ordem em que as classes são carregadas.

Figura 1. Carregador de classes no WAS
Carregador de classes no WAS

Por exemplo, para carregar a sua classe primeiro, configure o modo do carregador de classes como PARENT_LAST. Geralmente, no WebSphere Application Server, o modo do carregador de classes é definido por meio do console de administração do WebSphere Application Server após instalar o EAR.

No entanto, em um VAP, não é possível alterar as configurações da VM implementada. Em vez disso, a política da JVM no Virtual Application Builder suporta as configurações relacionadas ao carregador de classes.

Para configurar a política JVM:

  1. No Virtual Application Builder, inclua a política de JVM em Enterprise Application.
  2. Selecione PARENT_FIRST ou PARENT_LAST em Class Loader Order e selecione MULTIPLE ou SINGLE em WAR Class Loader Policy.
    Figura 2. Alterando a política de JVM para alterar o carregador de classes
    Alterando a política de JVM para alterar o carregador de classes

Realizar operações put/get com um servidor FTP

Para que o aplicativo de padrão de aplicativo virtual conecte-se a um servidor FTP e realize put/get de arquivos, é necessário definir destinos gerais no Virtual Application Builder:

  1. No Virtual Application Builder, defina Generic Targets nas portas 20 e 21 e associe-os a partir do componente Enterprise Application.
  2. Insira o nome do servidor FTP, endereço IP e número da porta para cada Generic Target.
    Figura 3. Para realizar put/get em um servidor FTP
    Para realizar put/get em um servidor FTP

Nota: Para fixar as portas para conexão ao servidor FTP, é necessário usar o modo ativo em vez do modo passivo no aplicativo.

Não consegue implementar um VAP DB devido a um erro de OLTP?

Você pode não conseguir implementar um VAP de um aplicativo da web que inclui um banco de dados ou padrão DBaaS. Você recebe um erro do plug-in do sistema OLTP semelhante a este:

! 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".

Isso pode acontecer porque a configuração do plug-in do sistema não está correta. Para corrigir o erro:

  1. Em Workload Console, selecione Cloud > System Plug-ins > IBM Transactional Database Pattern > oltp e clique em Configure.
  2. Selecione Both em Environment e clique em OK.
    Figura 4. Configurando o plug-in OLTP corretamente
    Configurando o plug-in OLTP corretamente

Agora veremos algumas práticas de VSP.


Práticas de VSP

As práticas de padrão de sistema virtual descritas neste artigo são:

  1. Criação de scripts wsadmin para implementação eficiente de VSP: Crie um script de criação de origem de dados e um script de instalação de EAR. É difícil criar um script de wsadmin sem assistência ou instruções. Com essa dica, desenvolvedores de padrão podem criar facilmente os scripts a serem usados pra um VSP.
  2. Importação e exportação de VSP. Mostra aos desenvolvedores de padrão como usar a interface da linha de comando, uma maneira ótima de restaurar os pacotes de scripts e complementos manualmente e de copiar o padrão de migração. Também apresenta o conceito de ambiente de DBCS (conjunto de caracteres de byte duplo), que pode enganar um desenvolvedor.
  3. Alteração da configuração de fuso horário da VM para um VSP. Caso você não queira o UTC padrão.
  4. Expansão do tamanho do sistema de arquivos DB2 para um VSP. Para quando for necessário um sistema de arquivos maior.
  5. Transferindo tabelas ou dados de um DB existente para um VSP. Para quando o DB está configurado por entrada manual ou ferramenta dedicada e os dados são necessários em outro DB.
  6. Drivers DB2 que foram testados com aplicativos. Obviamente um driver que já funciona com o aplicativo em questão é o melhor para ser incluído em um pacote de VSP.

Implemente VSPs com scripts wsadmin

Ao implementar um padrão de sistema virtual, use um arquivo de script Jython (*.jy) com wsadmin. É possível criar um script Jython facilmente com a função de assistência de comando do console de administrador do WebSphere Application Server.

Criando um script de criação de origem de dados
Para desenvolver um script de origem de dados:

  1. Quando uma máquina virtual cria uma instância, os seguintes links são gerados automaticamente: VNC e WebSphere. (Abra a seção Virtual machines na instância de sistema virtual)
  2. Clique no link WebSphere. Faça login com o UID virtuser e a senha que você definiu.
  3. Esse exemplo é usado ao configurar uma origem de dados. Após chamar o Integrated Solutions Console, selecione Resources > JDBC > Data sources no menu esquerdo.
  4. Clique no botão New na seção Preferences e siga a etapa 1 à etapa 5.
  5. Após clicar em Finish, na área de janela à direita, clique em Command Assistance > View administrative scripting command for last action.
    Figura 5. Command Assistance
    Command Assistance
  6. Copie o script na tela: Administrative Scripting Commands (como AdminTask, AdminConfig).
    Figura 6. Copie o script na tela
    Copie o script na tela
  7. Faça referência aos scripts copiados na Etapa 6 para atualizar a descrição em um arquivo como o arquivo Jython createDatasource.jy de createDatasource.zip.

Criando um script de instalação EAR
Você acabou de aprender como desenvolver um script que cria uma origem de dados. Agora, vamos criar um script para instalar um arquivo Enterprise Archive.

  1. Quando uma máquina virtual cria uma instância, os seguintes links são gerados automaticamente: VNC e WebSphere. (Abra a seção Virtual machines na instância de sistema virtual.)
  2. Clique no link WebSphere. Faça login com o UID virtuser e a senha que você definiu.
  3. Após chamar o Integrated Solutions Console, selecione Applications > New Application > New Enterprise Application no menu esquerdo.
  4. Insira o caminho para o novo aplicativo (onde o arquivo EAR foi colocado).
  5. Selecione Fast Path ou Detailed. Caso selecione Fast Path, siga a Etapa 1 até a Etapa 3.
  6. Após clicar em Finish, na área de janela à direita, clique em Command Assistance > View administrative scripting command for last action.
  7. Copie o script na tela: Administrative Scripting Commands (como AdminTask, AdminConfig).
  8. Faça referência aos scripts copiados na Etapa 6 para atualizar a descrição em um arquivo como installApp.jy, que se encontra em installApp.zip.

Exportar/importar um VAP

Em um VAP, é possível exportar e importar os módulos com apenas um clique. Em um VSP, no entanto, é necessário restaurar os pacotes de script e complementos manualmente e copiar o padrão de migração para o novo ambiente com um comando deployer.

Para se preparar:

  1. Faça download de uma ferramenta de linha de comandos da tela de boas-vindas do IBM PureApplication System e descompacte o arquivo em <WORKING_DIRECTORY> (aprox. 8MB).
    Figura 7. Faça download da ferramenta de linha de comando
    Faça download da ferramenta de linha de comando
  2. Caso você use uma ferramenta de comando deployer em um ambiente DBCS, mova para <WORKING_DIRECTORY>\deployer.cli\lib\3.1.0.0-20111118232331. O nome do diretório varia dependendo da versão. Edite o arquivo de registro: remova o comentário das duas linhas (Figura 8) e edite o conjunto de código.
    Figura 8. Em um ambiente DBCS
    Em um ambiente DBCS

Em um ambiente DBCS (conjunto de caracteres de byte duplo), todos os caracteres do conjunto (incluindo os caracteres de controle) são codificados em dois bytes, OU apenas os caracteres gráficos que não podem ser representados por um SBCS (byte único) são codificados em dois bytes. Um DBCS suporta idiomas nacionais que contêm um número grande de caracteres ou símbolos exclusivos, como japonês, coreano e chinês.

Para exportar:

  1. Faça download dos pacotes de scripts (e complementos, se houver) do padrão em questão.
  2. Mova para <WORKING_DIRECTORY>\deployer.cli\bin e execute o comando deployer. Um comando de amostra seria algo assim:
    deployer -h host_IP_address -u user_name 
    -p password -f ..\samples\patternToPython.py -f xxx_vsp.py

    .
    Figura 9. Salve os pacotes de scripts e complementos
    Salve os pacotes de scripts e complementos

Selecione o padrão de origem que deseja copiar na tela anterior e exporte o script Python (xxx_vsp.py) (qualquer nome de arquivo que você quiser terminando com .py) para usar mais tarde para um padrão de sistema virtual de destino.

Para importar:

  1. Agora que você fez download dos pacotes de script de origem (assim como dos complementos), crie um pacote de scripts (e complementos) com o mesmo nome do original e faça upload dos arquivos ZIP transferidos por download. Para ter certeza de que os parâmetros estão corretos, clique no botão Refresh.
  2. Importe o arquivo VSP (xxx_vsp.py) que você exportou nas etapas anteriores para um novo ambiente usando o comando deployer. Use um comando semelhante a este:
    deployer -h host_IP_address -u user_name  -p password -f xxx_vsp.py

    Tenha cuidado: se um padrão com o mesmo nome existir, remova-o antes de executar o comando deployer.
  3. Implemente o VSP que você importou na nuvem. Após a implementação, verifique se ele funciona bem como instância.

Alterar a configuração de fuso horário da VM para o VSP

O fuso horário de uma VM implementada está configurado para UTC por padrão. Para alterar, é necessário descrever no script. (Em um VAP, não é possível mudar de UTC para outro fuso).

No lado do DB2, para alterar o fuso horário para JST (Japan Standard Time), descreva o seguinte no script de criação do DB.

Figura 10. Alterando o fuso horário no lado do DB2
Alterando o fuso horário no lado do DB2

Para alterar o fuso horário no lado do WebSphere Application Server, coloque o seguinte no primeiro script executado na VM do WebSphere Application Server:

Figura 11. Alterando o fuso horário no lado do WebSphere Application Server
Alterando o fuso horário no lado do WebSphere Application Server

Expandir o tamanho do sistema de arquivos DB2 para VSPs

Caso seja necessário migrar um grande volume de dados em um ambiente DB2 VSP (nominalmente mais que 20 GB), você descobrirá que um sistema de arquivos de tamanho padrão não é suficiente. É possível incluir um disco usando uma função de complemento e aumentar o tamanho do sistema de arquivos.

  1. No Workload Console, escolha Catalog > Add-Ons.
  2. Selecione Default add disk na área de janela à esquerda e selecione o botão de ícone Clone.
  3. Para criar um complemento, insira um nome apropriado.
  4. Selecione aquele que você criou na área de janela à esquerda.
  5. Na área à direita, altere o valor de Environment: DISK_SIZE_GB = 10 para o tamanho de disco necessário.
  6. É possível fazer download do arquivo defaultadddisk.zip, que está disponível no ícone Download. Ele contém um script chamado adddisk. Edite o script consultando as descrições de amostra na Figura 12. Faça upload do pacote de script modificado.
    Figura 12. Desmontando o sistema de arquivos
    Desmontando o sistema de arquivos

Ao implementar com o script que você acaba de usar, é possível usar o arquivo de sistemas /db2fs com maior tamanho de disco no VSP DB2.

Transferir tabelas/dados de um DB existente em um VSP

Pode ser difícil criar um script para criação de DB e carregamento de dados quando o DB é definido por entrada manual ou uma ferramenta dedicada. Pode ser necessário criar um script para transferir os dados do DB existente.

Para usar db2 backup:

  1. Faça backup do DB existente com:
    db2 backup db DB_name to backup_file_name compress
  2. Crie um script para restaurar dados do arquivo de backup e empacotá-los com o arquivo de backup:
    db2 restore db DB_name from backup_file_name

Nota: Nesse método, o pacote de scripts tende a ser grande, pois contém o arquivo de backup. Além disso, esse método depende da plataforma envolvida, portanto, por exemplo, não há compatibilidade entre sistemas com diferentes configurações de endians, como IA Linux (little endian) e AIX (big endian). Para evitar esses problemas, use o método db2move.

Com o método db2move:

  1. Adquira o arquivo DLL do DB existente:
    db2look -d DB_name -a -e -l -x -f -td % -o DDL_file_name
  2. Adquira os dados do DB existente:
    db2move DB_name export -sn schema_name
  3. Caso existam tabelas, incluindo colunas geradas, exporte-as:
    db2 export to table_name.ixf of ixf messages table_name.msg select * from table_name
  4. Crie um script como na Figure 13.
    Figura 13. Usando db2move
    Usando db2move
  5. Empacote os arquivos adquiridos nas Etapas 1 a 3 e o script para criar um pacote de scripts.

Usar drivers do DB2 testados com aplicativos

Pode ser melhor usar os drivers do DB2 que foram testados com o aplicativo em questão em vez de usar os drivers fornecidos com o PureApplication System. Em VSPs, para substituí-los, é possível empacotar os drivers do DB2 que serão usados.

  1. Inclua os drivers DB2 testados (db2jars.zip) no pacote de scripts para instalação de driver do DB2.
  2. Descreva o processo a seguir no script de instalação de driver do 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. Crie um provedor JDBC definindo os JARs do driver DB2 extraído como caminho de classe no script wsadmin para criação de origem de dados.
    • Código de amostra para criação de origens de dados que não são 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/db2jcc4.jar
        /opt/db2/db2jcc_license_cu.jar /opt/db2/db2jcc_license_cisuz.jar]]')
    • Código de amostra para criação de origem de dados 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/db2jcc4.jar
        /opt/db2/db2jcc_license_cu.jar /opt/db2/db2jcc_license_cisuz.jar]]')

Conclusão

Esperamos que essas boas práticas, que nós descobrimos ao implementar padrões virtuais orientados para a nuvem com objetivos reais, sejam um bom ponto de partida para ajudar você a configurar e implementar padrões em ambientes de nuvem.

Recursos

Aprender

  • Para mais informações sobre o uso de padrões virtuais, visite PureSystems no developerWorks.
  • Nos recursos de desenvolvedor da nuvem, descubra e compartilhe o conhecimento e a experiência dos desenvolvedores de aplicativos e serviços que estão desenvolvendo os seus projetos de implementação de nuvem.
  • Descubra como acessar o IBM SmartCloud Enterprise; o desenvolvimento do SmartCloud é uma ótima forma de praticar o desenvolvimento do IBM PureSystems.

Obter produtos e tecnologias

Discutir

Comentários

developerWorks: Conecte-se

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


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

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

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing, WebSphere, Information Management
ArticleID=827357
ArticleTitle=Desenvolva padrões para IBM PureApplication System
publish-date=07262012