Capítulo 2. Preparação para a Migração

2.1. Visão Geral da Preparação

In JBoss EAP 7, an effort was made to provide backward compatibility for JBoss EAP 6 applications. However, if your application uses features that were deprecated or functionality that was removed from JBoss EAP 7, you might need to make changes to your application code.

In addition, a number of things have changed in this release that might impact deployment of JBoss EAP 7 applications. It is recommended that you do some research and planning before you attempt to migrate your application.

Depois que você se familiarizar com as alterações dos recursos, com os materiais de desenvolvimento e as ferramentas que podem auxiliar os seus eforços de migração, você pode começar a avaliar os seus aplicativos e a configuração do seu servidor para determinar as alterações necessárias para a execução do JBoss EAP 7.

2.2. Revise os Recursos do Java EE 7

O Java EE 7 inclui diversas melhorias para facilitar o desenvolvimento e a execução dos aplicativos com muitos recursos em nuvens públicas e privadas. Ele incorpora novos recursos e os padrões mais recentes, como HTML5, WebSocket, JSON, Batch e Concurrency Utilities. As atualizações incluem JPA 2.1, JAX-RS 2.0, Servlet 3.1, Expression Language 3.0, JMS 2.0. JSF 2.2, EJB 3.2, CDI 1.2 e Bean Validation 1.1.

Você pode encontrar mais informações sobre o Java EE 7, incluindo tutoriais, no site do Oracle: Java EE at a Glance

2.3. Revise O Que Há de Novo no JBoss EAP 7

O JBoss EAP 7 inclui algumas melhorias e upgrades importantes com relação ao último lançamento.

Java EE 7
O JBoss EAP 7 é uma implementação certificada do Java EE 7, satisfazendo os perfis Web e Completo. Ele também inclui suporte para as iterações mais recentes do CDI 1.2 e Web Sockets 1.1.
Undertow
O Undertow é um servidor web eficaz, flexível e leve que faz parte do JBoss EAP 7, substituindo o JBoss Web. Escrito em Java, ele foi designado para máxima escalabilidade e produtividade e fornece suporte às tecnologias da web mais recentes, como o novo padrão HTTP/2.
Apache ActiveMQ Artemis
O Apache ActiveMQ Artemis é o novo provedor de mensagens interno do JBoss EAP 7. Baseado na doação de código do HornetQ, este subprojeto de Apache fornece um desempenho excelente baseado em uma arquitetura não bloqueadora comprovada.
IronJacamar 1.2
O IronJacamar mais recente fornece um suporte estável e com muitos recursos ao JCA e DataSources.
JBossWS 5
The fifth generation of JBossWS is a major leap forward, bringing new features and performance improvements to JBoss EAP 7 web services.
RESTEasy 3
O JBoss EAP 7 inclui a última geração do RESTEasy. Ela vai além das APIs EE REST Java padrão (JAX-RS 2.0), fornecendo várias extensões úteis, como JSON Web Encryption, Jackson, YAML, JSON-P e Jettison.
OpenJDK ORB
O JBoss EAP 7 substituiu a implementação do JacORB IIOP com uma ramificação downstream do OpenJDK ORB, gerando melhor interoperabilidade para o JVM ORB e o Java EE RI.
Clusterização Repleta de Recursos
O suporte de clusterização foi altamente refatorado no JBoss EAP 7 e inclui várias APIs públicas para o acesso de aplicativos.
Redução de Porta
Ao utilizar o upgrade do HTTP, o JBoss EAP 7 mudou praticamente todos os protocolos para serem multiplexados via duas portas HTTP apenas: uma porta de gerenciamento (9990) e uma porta do aplicativo (8080).
Registro em Log Avançado
Agora a API de gerenciamento fornece suporte para a habilidade de listar e visualizar os arquivos de log disponíveis em um servidor, ou até mesmo definir formatadores personalizados além do formatador padrão. A configuração do registro em log da implantação também foi amplamente melhorada.

For a complete list of new features, see New Features and Enhancements in the JBoss EAP 7 Release Notes.

2.4. Verifique a lista de recursos preteridos e sem suporte

Before you migrate your application, be aware that some features that were available in previous releases of JBoss EAP might be deprecated or no longer supported.

O suporte para algumas tecnologias foi removido devido ao alto custo de manutenção, pouco interesse da comunidade e soluções alternativas muito melhores. O que segue é um breve resumo de alguns dos recursos sem suporte.

EJB Entity Beans
EJB entity beans não são mais suportados. Caso seu aplicativo utilizar EJB entity beans, você deve migrar o código para usar JPA, que oferece uma API muito mais eficiente e flexível.
JAX-RPC
Como JAX-WS offerece uma solução muito mais precisa e completa, o código escrito para JAX-RPC deve ser migrado para utilizar JAX-WS.
JSR-88
A especificação de API de implantação de aplicativos Java EE (JSR-88), que definia um contrato para habilitar ferramentas de múltiplos fornecedores para configurar e implantar aplicativos em qualquer produto de plataforma Java EE, não foi amplamente adotada. Você deve utilizar outra opção do JBoss EAP com suporte para implantação de aplicativos, como o console de gerenciamento, a CLI de gerenciamento, o escâner de implantação ou Maven.
Adaptador de recursos genéricos JMS
A possibilidade de configurar um adaptador de recurso JMS genérico para conectar a um provedor JMS não é mais suportada no JBoss EAP 7.

For a comprehensive list of deprecated and unsupported features, see Unsupported and Deprecated Functionality in the JBoss EAP 7 Release Notes.

2.5. Verifique a documentação de introdução do JBoss EAP

Be sure to review the JBoss EAP Getting Started Guide. It contains the following important information:

  • Como baixar e instalar o JBoss EAP 7
  • Como baixar e instalar o Red Hat JBoss Developer Studio
  • Como configurar o Maven para seu ambiente de desenvolvimento, gerenciar dependências de projetos e configurar seus projetos para utilizar artefatos da Estrutura de Produtos (BOM) do JBoss EAP
  • Como baixar e executar os aplicativos de exemplo de início rápido que são enviados com o produto.

2.6. Análise e Planejamento de Migração

Each application and server configuration is unique and you must thoroughly understand the components and architecture of the existing application and server platform before you attempt the migration. Your migration plan should include a detailed roadmap for testing and roll out to production that takes into account the following information.

Identifica as pessoas responsáveis pela migração
Identifica as partes interessadas, gerentes de projeto, desenvolvedores, administradores e outros que serão responsáveis pela migração.
Verifica a configuração da plataforma do servidor de aplicativos e hardware

Analisa o servidor de aplicativos existente e configurações de plataforma para determinar como eles são impactados pelas alterações de recursos no JBoss EAP 7. A análise deve incluir os seguintes itens:

  • Sistemas operacionais e versões
  • Banco de dados utilizados pelos aplicativos
  • Servidores da Web
  • Arquitetura de segurança
  • Número e tipo de processadores
  • Quantidade de memória
  • Quantidade de armazenamento no disco físico
  • Migração de banco de dados ou dados de mensagem
  • Other components that might be impacted by the migration
Verifique o ambiente de produção atual

Você deve planejar a criação do ambiente de produção o mais semelhante quanto possível para testar e preparar o processo de migração.

  • Take into account any clustering configurations. See Upgrading a Cluster in the JBoss EAP Patching and Upgrading Guide for more information about how to migrate clusters.
  • Caso você esteja atualmente executando em um domínio gerenciado amplo, considere uma abordagem gradual de migração.
  • Determine se você precisa migrar algum banco de dados ou dados de mensagens
Examine e entenda os aplicativos existentes

Examine minuciosamente o aplicativo JBoss EAP 6 existente. Esteja totalmente familiarizado com sua arquitetura, funções, recursos e componentes, incluindo:

  • A versão JVM
  • Integração com outros componentes middleware de servidores dos aplicativos da Red Hat
  • Integração com software proprietário de terceiros
  • Utilização de recursos preteridos que precisarão ser substituídos
  • Configuração de aplicativos incluindo descritor de implementação, JNDI, persistência, configuração JDBC e pooling, tópicos JMS e filas, e registro em log.

Identificar quaisquer incompatibilidades de código ou configuração que necessitarão modificações durante a migração para JBoss EAP 7.

Crie um plano teste detalhado
  • O plano deve incluir teste de regressão e requisitos de critérios de aceitação.
  • Deve também incluir teste de desempenho.
  • Estabeleça um ambiente de teste tão semelhante quanto possível do ambiente de produção para testar a migração antes do lançamento para produção.
  • Tenha certeza de que criou um backup e um plano de backup!
Verifique os recursos disponíveis para o processo de migração
  • Avalie as competências da equipe de desenvolvimento e planeje treinamento ou auxílio de consultoria suplementar.
  • Esteja ciente de que serão necessários hardwares suplementares e outros recursos para preparar e testar durante o processo de migração até que a tarefa esteja completa.
  • Determine se qualquer treinamento formal será necessário. Caso afirmativo, adicione ao cronograma.
Execute o plano
Reúna os recursos necessários e implemente o plano de migração.
Importante

Antes de fazer quaisquer modificações em seus aplicativos, tenha certeza de que criou uma cópia de backup.

2.7. Faça um backup dos dados importantes e verifique o estado do servidor

Antes de migrar seu aplicativo, você precisa estar ciente dos possíveis problemas:

  • The migration might remove temporary folders. Any deployments stored in the data/content/ directory must be backed up prior to the migration and restored after it completes. Otherwise, the server will fail to start due to the missing content.
  • Antes da migração, finalize quaisquer transações abertas e exclua o diretório de transação data/tx-object-store/.
  • Os dados de temporizadores persistentes em data/timer-service-data devem ser checados para determinar caso sejam compatíveis. Antes da migração, cheque os arquivos deployment-* naquele diretório para determinar quais temporizadores ainda estão em uso.

Certifique-se também de fazer o backup das configurações do servidor atual e aplicativos antes de começar.

2.8. Migrando uma instalação RPM

Importante

Não é fornecido suporte para mais de uma instância de RPM instalada de JBoss EAP em um único Servidor Red Hat Enterprise Linux. Como resultado, nós recomendamos que você migre sua instalação do JBoss EAP para uma nova máquina quando migrar para JBoss EAP 7.

Quando migrar uma instalação RPM de JBoss EAP a partir do JBoss EAP 6 para JBoss EAP 7, certifique-se que JBoss EAP 7 esteja instalado em uma máquina que não tem uma instalação RPM de JBoss EAP existente.

To install JBoss EAP 7 using RPMs, see the JBoss EAP Installation Guide.

The migration advice in this guide also applies to migrating RPM installations of JBoss EAP, but you might need to alter some steps (such as how to start JBoss EAP) to suit an RPM installation compared to a ZIP or installer installation.

2.9. Migrar o JBoss EAP para ser executado como um serviço

If you run JBoss EAP 6 as a service, be sure to review Configuring JBoss EAP to Run as a Service in the JBoss EAP Installation Guide for updated configuration instructions for JBoss EAP 7.