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 Oracle WebLogic para o Apache Tomcat (TomEE) na Amazon ECS
Criado por Anya Epishcheva (AWS) e Harshad Gohil () AWS
Tipo R: redefinir a plataforma | Origem: contêineres | Alvo: Apache Tomcat (TomEE) na Amazon ECS |
Criado por: AWS | Ambiente: PoC ou piloto | Tecnologias: contêineres e microsserviços; migração |
Workload: Oracle | AWSserviços: Amazon ECS |
Resumo
Esse padrão discute as etapas para migrar um SPARC sistema Oracle Solaris local executando Oracle para uma instalação baseada em contêiner Docker executando o Apache TomEE (Apache Tomcat com suporte adicional de contêiner) com o Amazon Elastic
Para obter informações sobre a migração de bancos de dados associados aos aplicativos que você está migrando do Oracle WebLogic para o Tomcat, consulte os padrões de migração de banco de dados neste catálogo.
Práticas recomendadas
As etapas para migrar aplicativos web Java e Java Enterprise Edition (Java EE) variam, dependendo do número de recursos específicos do contêiner usados pelo aplicativo. Os aplicativos baseados em Spring geralmente são mais fáceis de migrar, porque eles têm um pequeno número de dependências no contêiner de implantação. Por outro lado, os aplicativos Java EE que usam Enterprise JavaBeans (EJBs) e recursos gerenciados de contêiner, como pools de threads, Java Authentication and Authorization Service (JAAS) e Container-Managed Persistence (CMP) exigem mais esforço.
Os aplicativos desenvolvidos para o Oracle Application Server frequentemente usam o pacote Oracle Identity Management. Os clientes que migram para servidores de aplicativos de código aberto frequentemente optam por reimplementar o gerenciamento de identidade e acesso usando SAML a federação baseada. Outros usam o Oracle HTTP Server Webgate para casos em que migrar do pacote Oracle Identity Management não é uma opção.
Os aplicativos web Java e Java EE são ótimos candidatos para implantação em AWS serviços baseados em Docker, como AWS Fargate e Amazon. ECS Os clientes frequentemente escolhem uma imagem do Docker com a versão mais recente do servidor de aplicativos de destino (como TomEE) e o Java Development Kit (JDK) pré-instalado. Eles instalam seus aplicativos em cima da imagem base do Docker, a publicam no registro do Amazon Elastic Container Registry (AmazonECR) e a usam para a implantação escalável de seus aplicativos no AWS Fargate ou na Amazon. ECS
Idealmente, a implantação do aplicativo é elástica; ou seja, o número de instâncias do aplicativo aumenta ou diminui, dependendo do tráfego ou da workload. Isso significa que as instâncias do aplicativo precisam ficar on-line ou ser encerradas para ajustar a capacidade à demanda.
Ao mover um aplicativo Java paraAWS, considere torná-lo sem estado. Esse é um princípio arquitetônico fundamental do AWS Well-Architected Framework que permitirá o escalonamento horizontal usando a conteinerização. Por exemplo, a maioria dos aplicativos web baseados em Java armazena localmente as informações da sessão do usuário. Para sobreviver ao encerramento da instância do aplicativo devido ao escalonamento automático no Amazon Elastic Compute Cloud EC2 (Amazon) ou por outros motivos, as informações da sessão do usuário devem ser armazenadas globalmente para que os usuários do aplicativo web possam continuar trabalhando de forma contínua e transparente sem se reconectar ou se reconectar a um aplicativo web. Há várias opções de arquitetura para essa abordagem, incluindo Amazon ElastiCache for Redis ou armazenar o estado da sessão em um banco de dados global. Servidores de aplicativos, como o TomEE, têm plug-ins que permitem o armazenamento e o gerenciamento de sessões via Redis, bancos de dados e outros armazenamentos de dados globais.
Use uma ferramenta comum e centralizada de registro e depuração que seja facilmente integrada ao Amazon e ao X-Ray. CloudWatch AWS A migração oferece uma oportunidade de melhorar os recursos do ciclo de vida do aplicativo. Por exemplo, talvez você queira automatizar o processo de criação para que as alterações sejam feitas com facilidade usando um pipeline de integração contínua e entrega contínua (CI/CD). Isso pode exigir alterações no aplicativo para que ele possa ser implantado sem qualquer tempo de inatividade.
Pré-requisitos e limitações
Pré-requisitos
Uma AWS conta ativa
Código-fonte Java e JDK
Aplicativo de origem criado com Oracle WebLogic
Solução definida para gerenciamento de identidade e acesso (SAMLou Oracle Webgate)
Solução definida para gerenciamento de sessões de aplicativos (migrando like-for-like ou com a Amazon ElastiCache, ou tornando o aplicativo sem estado, se necessário)
Entendendo se a equipe precisa refatorar bibliotecas específicas do J2EE para portabilidade para o Apache toMEE (consulte Status de implementação do Java EE 7
no site do Apache) Imagem TomEE reforçada com base nos seus requisitos de segurança
Imagem do contêiner com destino pré-instalado TomEE
Correção de aplicativos acordada e implementada, se necessário (por exemplo, registro em log de debug de criação, autenticação)
Versões do produto
Oracle WebLogic OC4J, 9i, 10g
Tomcat 7 (com Java 1.6 ou superior)
Arquitetura
Pilha de tecnologia de origem
Aplicativo web criado usando Oracle WebLogic
Aplicativo Web usando Oracle Webgate ou autenticação SAML
Aplicativos Web conectados ao Oracle Database versão 10g e posterior
Pilha de tecnologias de destino
TomEE (Apache Tomcat com suporte adicional a contêineres) em execução na Amazon ECS (consulte também Implantação de aplicativos Web Java e microsserviços Java na
Amazon) ECS Amazon Relational Database Service (RDSAmazon) para Oracle; para versões Oracle suportadas pela Amazon, RDS consulte RDSAmazon
for Oracle
Arquitetura de destino
Ferramentas
Para operar no TomEE, um aplicativo Java deve ser reconstruído em um arquivo .war. Em alguns casos, podem ser necessárias alterações no aplicativo para operar o aplicativo no TomEE; você deve verificar se as opções de configuração e as propriedades do ambiente necessárias estão definidas corretamente.
Além disso, as pesquisas Java Naming and Directory Interface (JNDI) e os namespaces JavaServer Pages (JSP) devem ser definidos corretamente. Considere verificar os nomes dos arquivos usados pelo aplicativo para evitar colisões de nomes com bibliotecas T integradas. Por exemplo, persistence.xml é um nome de arquivo usado pela JPA estrutura Apache Open (que vem junto com o Open EJB in TomEE) para fins de configuração. O arquivo persistence.xml PUI contém declarações de bean do Spring framework.
A versão 7.0.3 e posterior do ToMee (Tomcat 8.5.7 e posterior) retorna uma resposta HTTP 400 (solicitação inválida) para raw (não codificada) com caracteres especiais. URLs A resposta do servidor aparece como uma página em branco para o usuário final. As versões anteriores do TomEE e do Tomcat permitiam o uso de certos caracteres especiais não codificados emURLs; no entanto, isso é considerado inseguro, conforme declarado no site -2016-6816. CVE
Depois de implantar o arquivo.war no TomEE, monitore o log de inicialização no Linux cat em busca de bibliotecas compartilhadas ausentes e extensões específicas do Oracle para adicionar componentes ausentes das bibliotecas Tomcat.
Procedimento geral
Configure o aplicativo no TomEE.
Identifique e reconfigure arquivos e recursos de configuração específicos do servidor de aplicativos, do formato de origem ao de destino.
Identifique e reconfigure JNDI recursos.
Ajuste o EJB namespace e as pesquisas para o formato exigido pelo servidor do aplicativo de destino (se aplicável).
Reconfigure as funções de segurança e os mapeamentos principais específicos do contêiner do JAAS aplicativo (se aplicável).
Empacote o aplicativo e as bibliotecas compartilhadas em um arquivo .war.
Implante o arquivo .war no TomEE usando o contêiner do Docker fornecido.
Monitore o log de início para identificar qualquer biblioteca compartilhada ausente e extensões de descritor de implantação. Se algum for encontrado, volte para a primeira tarefa.
Teste o aplicativo instalado em relação ao RDS banco de dados restaurado da Amazon.
Inicie a arquitetura completa com um balanceador de carga e um ECS cluster da Amazon seguindo as instruções em Implantar contêineres do Docker
. Atualize o URLs para apontar para o balanceador de carga.
Atualize o banco de dados de gerenciamento de configuração (CMDB).
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Executar a descoberta de aplicativos (pegada do estado atual e linha de base de desempenho). | BA, líder de migração | |
Validar versões e mecanismos do banco de dados de origem e de destino. | DBA | |
Validar o design do aplicativo de origem e de destino (gerenciamento de identidade e sessão). | DBA, engenheiro de migração, proprietário do aplicativo | |
Identificar os requisitos de hardware e armazenamento para a instância do servidor de destino. | DBA, SysAdmin | |
Escolha o tipo de instância adequado com base na capacidade, nos atributos de armazenamento e nos atributos de rede. | DBA, SysAdmin | |
Identifique os requisitos de segurança do acesso à rede para os bancos de dados de origem e de destino. | DBA, SysAdmin | |
Identificar a estratégia e as ferramentas de migração de aplicativos. | DBA, Líder de migração | |
Concluir o projeto da migração e o guia de migração do aplicativo. | Líder de desenvolvimento, líder de migração | |
Concluir o runbook de migração do aplicativo. | Líder de construção, líder de substituição, líder de teste, líder de migração |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma nuvem privada virtual (VPC). | SysAdmin | |
Criar grupos de segurança. | SysAdmin | |
Configure e inicie a instância de RDS banco de dados Amazon. | DBA, SysAdmin | |
Configure a ECS implantação da Amazon. | SysAdmin | |
Empacotar seu aplicativo como uma imagem do Docker. | SysAdmin | |
Envie a imagem para o ECR registro da Amazon (ou pule esta etapa e envie-a para o ECS cluster da Amazon). | SysAdmin | |
Configure a definição da tarefa para o aplicativo e as opções ECS de serviços da Amazon. | SysAdmin | |
Configure seu cluster, revise as configurações de segurança e defina as funções de AWS Identity and Access Management (IAM). | SysAdmin | |
Iniciar sua configuração e execute testes de acordo com o runbook de migração do aplicativo. | SysAdmin |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Obtenha a permissão da sua equipe de garantia de segurança para mover os dados de produção para AWS o. | DBA, engenheiro de migração, proprietário do aplicativo | |
Criar e obter acesso aos endpoints para buscar arquivos de backup do banco de dados. | DBA | |
Usar o mecanismo de banco de dados nativo ou ferramentas de terceiros para migrar objetos e dados do banco de dados. | DBA | |
Executar os testes necessários no runbook de migração de aplicativos para confirmar a migração de dados bem-sucedida. | DBA, engenheiro de migração, proprietário do aplicativo |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Criar uma solicitação de alteração (CR) para migração. | Líder de substituição | |
Obter a aprovação de CR para migração. | Líder de substituição | |
Seguir a estratégia de migração de aplicativos no runbook de migração de aplicativos. | DBA, engenheiro de migração, proprietário do aplicativo | |
Atualizar o aplicativo (se necessário). | DBA, engenheiro de migração, proprietário do aplicativo | |
Conclua testes funcionais e não funcionais, de validação de dados e de desempenho. SLA | Líder de teste, proprietário do aplicativo, usuários do aplicativo |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Obter a aprovação do aplicativo ou do proprietário da empresa. | Líder de substituição | |
Fazer um exercício com tópicos de tabela para percorrer todas as etapas do runbook de substituição. | DBA, engenheiro de migração, proprietário do aplicativo | |
Mudar os clientes do aplicativo para a nova infraestrutura. | DBA, engenheiro de migração, proprietário do aplicativo |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Encerre AWS os recursos temporários. | DBA, Engenheiro de migração, SysAdmin | |
Revise e valide os documentos do projeto. | Líder de migração | |
Reunir métricas sobre o tempo de migração, porcentagem de manual versus ferramenta, economia de custos, etc. | Líder de migração | |
Feche o projeto e forneça feedback. | Líder de migração, proprietário do aplicativo |
Recursos relacionados
Referências
Tutoriais e vídeos