View a markdown version of this page

Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2 com o Auto Scaling - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Migre do IBM WebSphere Application Server para o Apache Tomcat na Amazon EC2 com o Auto Scaling

Kevin Yung e Afroz Khan, Amazon Web Services

Resumo

Esse padrão fornece orientação para migrar um aplicativo Java do IBM WebSphere Application Server para o Apache Tomcat em uma EC2 instância do Amazon Elastic Compute Cloud (Amazon) com o Amazon Auto EC2 Scaling ativado. 

Ao usar esse padrão, você pode conseguir:

  • Uma redução nos custos de licenciamento da IBM

  • Alta disponibilidade usando implantação Multi-AZ

  • Melhor resiliência de aplicativos com o Amazon EC2 Auto Scaling

Pré-requisitos e limitações

Pré-requisitos

  • Aplicações Java (versão 7.x ou 8.x) devem ser desenvolvidas em pilhas LAMP.

  • O estado de destino é hospedar aplicativos Java em hosts Linux. Esse padrão foi implementado com sucesso em um ambiente Red Hat Enterprise Linux (RHEL) 7. Outras distribuições Linux podem seguir esse padrão, mas a configuração da distribuição Apache Tomcat deve ser referenciada.

  • Você deve entender as dependências do aplicativo Java.

  • Você deve ter acesso ao código-fonte do aplicativo Java para fazer alterações.

Limitações e mudanças na redefinição da plataforma

  • Você deve compreender os componentes do arquivamento corporativo (EAR) e verificar se todas as bibliotecas estão empacotadas nos arquivos WAR do componente web. Você precisa configurar o plug-in WAR do Apache Maven e produzir artefatos de arquivo WAR.

  • Ao usar o Apache Tomcat 8, há um conflito conhecido entre o servlet-api.jar e os arquivos JAR integrados do pacote do aplicativo. Para resolver esse problema, exclua o servlet-api.jar do pacote do aplicativo.

  • Você deve configurar WEB-INF/Resources localizados no classpath da configuração do Apache Tomcat. Por padrão, as bibliotecas JAR não são carregadas no diretório. Como alternativa, você pode implantar todos os recursos abaixo src/main/resources.

  • Verifique se há raízes de contexto de codificação rígida no aplicativo Java e atualize a nova raiz de contexto do Apache Tomcat.

  • Para definir as opções de runtime da JVM, você pode criar o arquivo de configuração setenv.sh na pasta bin do Apache Tomcat; por exemplo, JAVA_OPTS, JAVA_HOME etc.  

  • A autenticação é configurada no nível do contêiner e configurada como uma região nas configurações do Apache Tomcat. A autenticação é estabelecida para qualquer um dos três domínios a seguir: 

    • O JDBC Database Realm pesquisa usuários em um banco de dados relacional acessado pelo driver JDBC.

    • DataSource O Database Realm pesquisa usuários em um banco de dados que é acessado pelo JNDI.

    • O JNDI Directory Realm pesquisa usuários no diretório Lightweight Directory Access Protocol (LDAP) que é acessado pelo provedor JNDI. As pesquisas exigem: 

      • Detalhes da conexão LDAP: base de pesquisa de usuário, filtro de pesquisa, base de perfil, filtro de perfil 

      • A principal região do diretório JNDI: conecta-se ao LDAP, autentica usuários e recupera todos os grupos dos quais um usuário é membro

  • Autorização: no caso de um contêiner com uma autorização baseada em funções que verifica as restrições de autorização em web.xml, os recursos da Web devem ser definidos e comparados às funções definidas nas restrições. Se o LDAP não tiver mapeamento de função de grupo, você deverá definir o atributo < security-role-ref > em web.xml para obter o mapeamento de função de grupo. Para ver um exemplo de um documento de configuração, consulte a documentação da Oracle

  • Conexão de banco de dados: crie uma definição de recurso no Apache Tomcat com um URL de endpoint do Amazon Relational Database Service (Amazon RDS) e detalhes de conexão. Atualize o código do aplicativo para fazer referência a DataSource usando a pesquisa JNDI. Uma conexão de banco de dados existente definida em não WebSphere funcionaria, pois usa os nomes WebSphere JNDI. Você pode adicionar uma <resource-ref>entrada em web.xml com o nome JNDI e a definição do DataSource tipo. Para ver um exemplo de documento de configuração, consulte a documentação do Apache Tomcat.

  • Registro: por padrão, o Apache Tomcat faz o registro de logs no console ou em um arquivo de log. Você pode ativar o rastreamento em nível de domínio atualizando logging.properties (consulte Registro em log no Tomcat). Se você estiver usando o Apache Log4j para anexar registros em log a um arquivo, você deve baixar o tomcat-juli e adicioná-lo ao classpath.

  • Gerenciamento de sessão: se você estiver mantendo o IBM WebSEAL para Application Load Balancer e gerenciamento de sessões, nenhuma alteração será necessária. Se você estiver usando um Application Load Balancer ou Network Load Balancer na AWS para substituir o componente IBM WebSEAL, deverá configurar o gerenciamento de sessões usando uma instância da ElastiCache Amazon com um cluster Memcached e configurar o Apache Tomcat para usar o gerenciamento de sessões de código aberto. 

  • Se você estiver usando o proxy de encaminhamento IBM WebSEAL, deverá configurar um novo Network Load Balancer na AWS. Use o IPs fornecido pelo Network Load Balancer para configurações de junção do WebSEAL.

  • Configuração SSL: recomendamos que você use o Secure Sockets Layer (SSL) para comunicações. end-to-end Para definir uma configuração de servidor SSL no Apache Tomcat, siga as instruções na documentação do Apache Tomcat

Arquitetura

Pilha de tecnologia de origem

  • Servidor WebSphere de aplicativos IBM

Pilha de tecnologias de destino

Arquitetura de destino

Ferramentas

Épicos

TarefaDescriptionHabilidades necessárias
Criar uma nuvem privada virtual (VPC).
Crie sub-redes.
Crie tabelas de roteamento, se necessário.
Crie listas de controle de acesso à rede (ACLs).
Configure o AWS Direct Connect ou uma conexão VPN corporativa.
TarefaDescriptionHabilidades necessárias
Refatore a configuração do Maven de compilação do aplicativo para gerar os artefatos WAR.
Refatore as fontes de dados de dependência do aplicativo no Apache Tomcat.
Refatore os códigos-fonte do aplicativo para usar nomes JNDI no Apache Tomcat.
Implante os artefatos WAR no Apache Tomcat.
Validações e testes completos do aplicativo.
TarefaDescriptionHabilidades necessárias
Configure o firewall corporativo para permitir a conexão com os serviços de dependência.
Configure o firewall corporativo para permitir que o usuário final acesse o Elastic Load Balancing na AWS.
TarefaDescriptionHabilidades necessárias
Crie e implante o aplicativo em uma EC2 instância.
Crie um cluster Amazon ElastiCache for Memcached para gerenciamento de sessões.
Crie uma instância do Multi-AZ do Amazon RDS para o banco de dados de backend.
Crie certificados SSL e importe-os para o AWS Certificate Manager (ACM).
Instale certificados SSL em balanceadores de carga.
Instale certificados SSL para servidores Apache Tomcat.
Validações e testes completos do aplicativo.
TarefaDescriptionHabilidades necessárias
Encerre a infraestrutura existente.
Restaure o banco de dados da produção para o Amazon RDS.
Substitua o aplicativo fazendo alterações no DNS.

Referências

Tutoriais e vídeos