Migrar aplicativos do WebSphere para contêineres com o Migrate to Containers

Last reviewed 2021-12-22 UTC

Este documento é destinado a proprietários de aplicativos e arquitetos de nuvem que querem migrar aplicativos Java em execução no IBM WebSphere Application Server (WAS) para contêineres em execução no Google Kubernetes Engine (GKE) ou GKE Enterprise. Ele guiará você pelo processo para migrar aplicativos tradicionais WAS para contêineres de um ambiente de origem local, em um ambiente de hospedagem particular ou em outro provedor de nuvem. Ele também destaca os benefícios de usar a opção Migrate to Containers para automatizar a migração.

Você precisa ter conhecimento prévio sobre o WebSphere antes de tentar migrar as VMs do WebSphere para contêineres com o Migrate to Containers.

Este documento também contém pontos importantes que você precisa considerar ao planejar uma migração de aplicativos WAS para contêineres. Ele faz parte de uma série sobre como migrar para o Google Cloud. Se você tiver interesse em uma visão geral da série, consulte Migração para o Google Cloud: como escolher seu caminho de migração.

Leia este documento se você planeja migrar aplicativos tradicionais do WAS que executam um WAS compatível em um sistema operacional compatível, como o Linux, de um ambiente de origem compatível a um ambiente do GKE ou do GKE Enterprise com o Migrate to Containers. Esses ambientes de origem podem incluir o seguinte:

O Migrate to Containers automatiza o uso do Kit de ferramentas de migração da IBM para binários de aplicativos para descobrir, inspecionar e migrar todos os aplicativos tradicionais do WAS nas máquinas virtuais tradicionais do WAS. Em seguida, ele divide esses aplicativos WAS tradicionais em contêineres tradicionais do WebSphere.

O Migrate to Containers descobre, inspeciona, migra e divide todos os aplicativos tradicionais do WAS em contêineres individuais do WebSphere.

A migração de aplicativos tradicionais do WAS usando o Migrate to Containers requer uma pequena ocupação (de 1 GB de RAM e 2 GB de tamanho da imagem) e custos reduzidos de licenciamento (até 70% de desconto em uma assinatura de implantação de rede do WAS).

Ao migrar aplicativos tradicionais do WAS com o Migrate to Containers, você se beneficia de vários aspectos de um ambiente conteinerizado. Há os custos de licenciamento reduzidos discutidos anteriormente. Há também a capacidade de modernizar mais a infraestrutura moderna em frameworks de nuvem integrados, criando WAS Liberty ou contêineres Open Liberty para seus aplicativos.

O WAS Liberty é um ambiente de execução de produção leve para o desenvolvimento e a implantação rápidos de aplicativos baseados na nuvem e na nuvem. Ele é baseado no projeto de código aberto Open Liberty. As empresas usam o WAS Liberty e o Open Liberty para criar Java microsserviços baseados na nuvem.

A migração para o GKE Enterprise ou para o GKE descarrega a funcionalidade do gerenciador de implantação de rede WAS para os seguintes produtos:

O diagrama a seguir mostra como o GKE ou o GKE Enterprise gerencia a funcionalidade centralizada (alta disponibilidade, posicionamento da carga de trabalho e configuração centralizada, por exemplo), que era gerenciada anteriormente pela implantação de rede WAS. A configuração específica do aplicativo é gerenciada no momento da criação da imagem do Docker. O uso de uma configuração baseada em imagens do Docker permite a repetibilidade e a automação por meio de processos de CI/CD.

A migração de funções do gerenciador de implantação de rede WAS é transferida para o Kubernetes, Anthos Service Mesh, Config Sync e Google Cloud Operations Os ambientes WAS Network Deployment e WAS Base podem migrar para contêineres do WAS Liberty ou Open Liberty.

A migração de aplicativos tradicionais do WAS para contêineres com o Migrate to Containers é um dos passos possíveis na jornada de modernização da carga de trabalho. A migração ajuda a transformar os aplicativos para que eles sejam executados em um ambiente de nuvem e evitar as regravações caras necessárias para modernizar aplicativos tradicionais de WAS.

Os candidatos ideais de migração são aplicativos executados na implantação de rede compatível do WebSphere, no WebSphere Base ou em versões do Java compatíveis em que a modernização por meio de uma regravação completa é cara demais em termos de recursos ou que não é possível em todos. Para saber mais sobre os candidatos ideais para a migração, consulte Como migrar VMs para contêineres com o Migrate to Containers.

Projetar a migração para o Google Cloud

Para migrar os aplicativos tradicionais do WAS do ambiente de origem para contêineres em execução no Google Cloud, siga o framework descrito na Série de migração para o Google Cloud.

No diagrama a seguir, veja o caminho da sua jornada de migração.

Caminho de migração com quatro fases.

O framework ilustrado no diagrama anterior tem quatro fases:

  1. Avaliação: nesta fase, você avalia o ambiente de origem, avalia os aplicativos que você quer migrar para o Google Cloud e define quais aplicativos tradicionais WAS são adequados para migração.
  2. Planejamento: nessa fase, você cria a infraestrutura básica para o Migrate to Containers, como provisionar a hierarquia de recursos e configurar o acesso à rede.
  3. Implantação: nessa fase, você migra os aplicativos tradicionais do WAS do ambiente de origem para o GKE ou o GKE Enterprise com o Migrate to Containers.
  4. Otimizar: nessa fase, você começa a aproveitar as tecnologias e os recursos de nuvem.

Avaliar o ambiente e os aplicativos de origem

Na fase de avaliação, você reúne informações sobre o ambiente de origem e os aplicativos que você quer migrar. Isso ajuda a dimensionar os recursos necessários, tanto para a migração como para o ambiente de destino.

Faça o seguinte na fase de avaliação:

  1. Crie um inventário abrangente dos seus aplicativos.
  2. Catalogue seus apps de acordo com as propriedades e dependências deles.
  3. Treine e instrua suas equipes no Google Cloud.
  4. Crie um experimento e uma prova de conceito no Google Cloud.
  5. Calcule o custo total de propriedade (TCO) do ambiente de destino.
  6. Escolha os aplicativos que você quer migrar primeiro.

As seções a seguir dependem da Migração para o Google Cloud: como avaliar e descobrir suas cargas de trabalho. No entanto, eles fornecem informações específicas para avaliar os aplicativos tradicionais do WAS que você quer migrar para contêineres com o Migrate to Containers.

Criar seus inventários

Para definir o escopo da migração, você precisa entender o ambiente WAS tradicional. Para entender seu ambiente, colete informações sobre seus aplicativos e as respectivas dependências.

Como criar um inventário dos aplicativos descreve como criar um inventário das cargas de trabalho no ambiente tradicional do WAS e nas dependências. Siga essas orientações e crie seus inventários. Quando terminar esse trabalho, continue lendo este documento.

Agora que você criou um inventário das suas cargas de trabalho e as dependências delas, você refina o inventário. Avalie os aspectos e recursos que são de interesse da sua organização ao migrar os aplicativos tradicionais do WAS com o Migrate to Containers.

Antes de avaliar o ambiente do WAS para a migração, conclua o trabalho de avaliação em Como migrar VMs para contêineres com o Migrate to Containers e Migração para o Google Cloud: como avaliar e descobrir suas cargas de trabalho. Quando terminar esse trabalho, conclua o inventário das suas cargas de trabalho.

Para concluir o inventário das suas cargas de trabalho, considere o seguinte:

  • Sistemas operacionais em execução nas VMs WAS: colete informações sobre os sistemas operacionais e as licenças deles em execução nas VMs WAS e verifique se o sistema operacional é um sistema operacional Linux de 64 bits listado em Sistemas operacionais compatíveis e versões do Kubernetes.
  • Versões do WAS que executam seus aplicativos: colete informações sobre as versões do WAS que executam seus aplicativos e garanta que sejam compatíveis com o Migrate to Containers. O Migrate to Containers é compatível com a migração de aplicativos tradicionais do WAS (WebSphere Application Server 8.5.5.x tradicional e WebSphere Application Server versões 9.0.5.x tradicionais) para os ambientes bases WAS e Implantação da rede WAS.

  • Aplicativos implantados no seu WAS: avalie quais aplicativos são implantados em cada WAS. Em seguida, mapeie as dependências entre seus aplicativos e entre seus aplicativos e os serviços externos. Em seguida, reúna informações sobre as origens de configuração dos aplicativos. Por exemplo, você está usando:

    • Variáveis de ambiente
    • Caminhos de instalação WAS não padrão
    • Registros de usuário LDAP
    • Mapeamentos de papéis de segurança
    • Modificações para aplicar uma classe ao pedido do carregador
  • Pontuação adequada do Migrate to Containers: avalie se os aplicativos tradicionais do WAS são adequados para migração com o Migrate to Containers. O Migrate to Containers fornece uma ferramenta de avaliação de adequação que pode ser executada nos aplicativos tradicionais do WAS para calcular uma pontuação de adequação. O Migrate to Containers tem um conjunto mínimo de requisitos para migrar aplicativos tradicionais do WAS com êxito. Ele também tem algumas limitações na automação da migração de aplicativos tradicionais do WAS. É possível resolver essas limitações configurando manualmente os aplicativos ao migrá-los.

  • Autenticação: o WAS fornece vários mecanismos de autenticação, como o Simple WebSphere Authentication Mechanism (SWAM), autenticação leve de terceiros (LTPA) e Kerberos. Só é possível configurar uma implementação de registro de usuário como o registro de usuário ativo do domínio de segurança WAS. O Migrate to Containers não migra automaticamente os detalhes de autenticação. Isso significa que a configuração da autenticação normalmente requer certa configuração manual durante a migração.

  • Acesso a dados (JDBC): a arquitetura do conector J2EE define um adaptador de recursos padrão que conecta o WAS aos sistemas de informações empresariais. O adaptador oferece conectividade entre o sistema de informações empresariais, o servidor de aplicativos e os aplicativos. O Migrate to Containers migra automaticamente a configuração JDBC para o contêiner WAS modernizado. Verifique se você ativou a conectividade entre os aplicativos migrados e os armazenamentos de dados atuais.

  • Mensagens (JMS): o WAS é compatível com a comunicação assíncrona por meio da interface de programação do Java Messaging Service (JMS). O Migrate to Containers migra automaticamente as informações de configuração do JMS. No entanto, é necessário algum trabalho de migração manual para configurações específicas, como SSL.

  • E-mail: com o WAS, é possível enviar e-mails por meio da API JavaMail. O Migrate to Containers não migra automaticamente os arquivos de configuração do JavaMail. Configure manualmente esses arquivos durante a fase de migração.

Concluir a avaliação

Depois de criar os inventários relacionados ao ambiente e às cargas de trabalho baseadas em WAS, conclua o restante das atividades da fase de avaliação documentadas em Migração para o Google Cloud: como avaliar e descobrir suas cargas de trabalho. Quando terminar esse trabalho, continue lendo este documento.

Planeje e crie sua base

Depois de seguir as orientações em Como planejar e criar sua base ao migrar VMs, conclua a base do WAS:

  1. Confirme o nome do bucket do Cloud Storage
  2. Faça upload do arquivo binaryAppScanner.jar disponível como parte do Kit de ferramentas de migração do servidor de aplicativos do IBM WebSphere para seguir as etapas a seguir:

    1. Faça o download do arquivo do instalador binaryAppScannerInstaller.jar. Você precisa aceitar o contrato de licença como parte do download.
    2. Execute o seguinte comando para extrair o arquivo binárioAppScanner.jar e aceitar o contrato de licença:

      java -jar binaryAppScannerInstaller.jar --acceptLicense --verbose
      
    3. Especifique o diretório de destino para a extração, por exemplo, /tmp. O instalador cria um diretório chamado /wamt abaixo do diretório de destino.

    4. Navegue até o diretório /wamt, por exemplo:

      cd /tmp/wamt
      
    5. Faça o upload do arquivo binaryAppScanner.jar para a raiz de um bucket do Cloud Storage:

      gsutil cp binaryAppScanner.jar gs://BUCKET_NAME
      

      Sendo BUCKET_NAME o nome do bucket do Cloud Storage.

Configurar o Migrate to Containers descreve como provisionar e configurar o Migrate to Containers e as dependências dele. Siga estas instruções para configurar o Migrate to Containers.

Quando terminar esse trabalho, continue lendo este documento.

Migre seus aplicativos WAS tradicionais para contêineres

Para saber mais sobre a fase de implantação da migração, siga as orientações em Como migrar VMs para contêineres.

Gerar e analisar o plano de migração

Crie um plano de migração do Migrate to Containers para seus aplicativos tradicionais do WAS:

  1. Configurar os ambientes de origem como origens de migração do Migrate to Containers: para migrar aplicativos tradicionais do WAS, o Migrate to Containers precisa de informações sobre os ambientes de origem em que as VMs são executadas. Você coletou essas informações executando as tarefas descritas na seção Criar seus inventários neste documento. Para mais informações sobre como configurar ambientes de origem, consulte Como adicionar uma origem de migração.
  2. Criar planos de migração: para especificar quais aplicativos WAS tradicionais você quer migrar de um ambiente de origem para um ambiente de destino compatível, crie um plano de migração. Por exemplo, configure onde você quer armazenar seus dados permanentes.

    Para mais informações sobre como criar e monitorar planos de migração, consulte Como criar uma migração.

    Para criar a migração, use a linha de comando. Não é possível usar o Console do Google Cloud. O comando completo é o seguinte:

    migctl migration create my-migration
      --source my-was-src
      --vm-id PROJECT_ID
      --intent Image
      --os-type Linux
      --app-type websphere-traditional
    

    Em que PROJECT_ID é o ID atribuído ao projeto de migração e Image é o valor da sinalização de intent. Use "Imagem" devido à natureza sem estado da carga de trabalho.

  3. Revise e personalize planos de migração: após gerar planos de migração para cada uma das VMs que você quer migrar, revise e personalize cada plano de migração para garantir que ele atenda aos seus requisitos. Para mais informações sobre como personalizar planos de migração, consulte Como personalizar um plano de migração.

Gerar artefatos de migração e descritores de implantação

Para gerar os artefatos WAS de destino para seus aplicativos, o Migrate to Containers extrai os aplicativos em execução nas VMs configuradas nos planos de migração. Em seguida, ele cria vários artefatos e os coloca em um bucket do Cloud Storage. O Migrate to Containers também gera os descritores de implantação, que podem ser personalizados e usados para implantar instâncias das imagens de contêiner no ambiente de destino.

Para cada aplicativo migrado, o Migrate to Containers cria uma pasta que contém o contexto do Docker, os binários do aplicativo, um script do build e um script de configuração do WAS.

É possível monitorar o progresso dos artefatos de contêiner criados e migrados. Para mais informações sobre como monitorar uma migração, consulte Como monitorar cargas de trabalho migradas.

Verificar e validar os recursos e descritores gerados

Depois de gerar artefatos de contêiner e descritores de implantação com o Migrate to Containers, revise e atualize esses artefatos e descritores para garantir que eles atendam aos seus requisitos. Por exemplo, considere os seguintes aspectos:

  • Descritores de imagens de contêiner: analise os descritores de imagem de contêiner gerados com o Migrate to Containers e verifique se eles são adequados para a carga de trabalho de contêiner. Se você precisar atualizar os descritores de imagem do contêiner, consulte Como criar uma imagem de aplicativo. É possível adicionar propriedades e instalar o iFixes.
  • Geração de registros no nível do aplicativo: o Migrate to Containers grava automaticamente os registros WAS no formato JSON. Para alterar para a geração de registros básica, consulte Configuração da geração de registros.

Para mais informações sobre como revisar artefatos de contêiner e descritores de implantação, consulte Como analisar arquivos de implantação gerados.

Implantar e validar as cargas de trabalho conteinerizadas no GKE ou no GKE Enterprise

Quando os descritores de implantação das suas cargas de trabalho estiverem prontos, faça o seguinte:

  1. Crie uma imagem de contêiner de aplicativo: crie uma imagem de contêiner de aplicativo para sua carga de trabalho migrada na pasta de artefatos do aplicativo que você quer criar:

    bash ./build.sh
    
  2. Implantar os aplicativos migrados no ambiente de destino: implante os aplicativos migrados:

    kubectl apply -f deployment_spec.yaml
    
  3. Monitore as cargas de trabalho migradas: depois de implantar o contêiner de aplicativos tradicional WAS, você poderá informações sobre o desempenho delas no ambiente de destino. Para mais informações, consulte Como monitorar cargas de trabalho migradas.

  4. Integre as cargas de trabalho migradas: depois que as cargas de trabalho implantadas no ambiente de destino funcionarem, integre os processos de geração e implantação de artefatos de contêiner às cargas de trabalho com os processos de implantação e pipelines. Se você ainda não tem um processo de implantação automatizado e está implantando manualmente suas cargas de trabalho, é recomendável migrar de implantações manuais para implantações automatizadas.

Desinstalar o Migrate to Containers

Depois de concluir a migração das cargas de trabalho com o Migrate to Containers, é recomendável que você:

  1. Verifique se você tem todas as referências aos artefatos que o Migrate to Containers gerou durante a migração.
  2. Desinstale o Migrate to Containers.

Quando terminar o trabalho descrito nesta seção, retorne a este documento.

Otimizar o ambiente após a migração

Para concluir a migração, consulte as diretrizes em Como otimizar o ambiente após a migração.

Execute estas otimizações específicas do WAS para seus aplicativos tradicionais de WAS migrados:

  • Externalize sua configuração: quando você cria um contêiner WAS tradicional, pode haver alterações de configuração entre ambientes. Para evitar a recriação do contêiner para cada ambiente, recomenda-se externalizar a configuração do WAS em propriedades e usar ConfigMaps para definir essas propriedades na inicialização do contêiner.
  • Proteção dos dados confidenciais: senhas e outros dados confidenciais precisam ser colocados nas chaves secretas do Kubernetes. Use secrets do Kubernetes para substituir os marcadores de configuração na inicialização do contêiner.

A seguir