Partilhar via


Migrar aplicativos JBoss EAP para JBoss EAP em VMs do Azure

Este guia descreve o que você deve saber quando deseja migrar um aplicativo JBoss EAP existente para ser executado no JBoss EAP em VMs do Azure.

Pré-migração

Para garantir uma migração bem-sucedida, antes de começar, conclua as etapas de avaliação e inventário descritas nas seções a seguir.

Definir o que quer dizer com "migração concluída"

Este guia e as ofertas correspondentes do Azure Marketplace são um ponto de partida para acelerar a migração de suas cargas de trabalho do JBoss EAP para o Azure. É importante definir o âmbito do seu esforço de migração. Por exemplo, está a fazer uma migração estritamente "lift-and-shift" da sua infraestrutura existente para Máquinas Virtuais do Microsoft Azure? Em caso afirmativo, poderá sentir-se tentado a fazer alguma migração "lift-and-improve" à medida que migra.

Contudo, é melhor manter-se o mais próximo possível de uma migração "lift-and-shift" pura, tendo em conta as mudanças necessárias conforme detalhado neste guia. Defina o que quer dizer com "migração concluída" para ficar ciente do momento em que atingiu este marco. Quando tiver atingido a "migração concluída", você poderá tirar um instantâneo de suas máquinas virtuais conforme descrito em Criar um instantâneo de um disco rígido virtual. É mais seguro fazer as melhorias depois de verificar que é possível restaurar com êxito a partir do instantâneo. Dessa forma, você pode prosseguir sem medo de perder o progresso de migração alcançado até agora.

Determine se as ofertas pré-criadas do Azure Marketplace são um bom ponto de partida

A Red Hat e a Microsoft fizeram uma parceria para trazer um conjunto de modelos de solução do Azure para o Azure Marketplace para fornecer um ponto de partida sólido para migrar para o Azure. Você pode ver a lista de ofertas na seção JBoss EAP on Azure Virtual Machines do Red Hat JBoss EAP on Azure.

Para ter uma ideia da oferta pré-criada do Azure Marketplace, consulte Guia de início rápido: implantar um cluster EAP JBoss em máquinas virtuais (VMs) do Azure.

Se nenhuma das ofertas existentes for um bom ponto de partida, terá de reproduzir manualmente a implementação utilizando os recursos disponíveis nas Máquinas Virtuais do Azure. Para obter mais informações, consulte O que é IaaS?

Determinar se a versão do JBoss EAP é compatível

Sua versão existente do JBoss EAP deve ser compatível com a versão nas ofertas de infraestrutura como serviço (IaaS). As páginas do portal do Azure para as ofertas mostram quais versões do JBoss EAP estão disponíveis. Para obter mais informações, consulte a oferta JBoss EAP Cluster on VMs no portal do Azure. Se sua versão existente do JBoss EAP não for compatível com as versões disponíveis na oferta, você precisará reproduzir a implantação manualmente usando recursos de IaaS do Azure. Para obter mais informações, consulte O que é IaaS?

Certifique-se de que tem as licenças necessárias

Ao usar as ofertas pré-criadas do Azure Marketplace, você deve ter licenças atuais da Red Hat para todos os seus servidores JBoss EAP. Ao movê-los para o Azure, você pode escolher entre as seguintes opções de implantação para atender às suas necessidades:

  • Implante em máquinas virtuais pré-pagas do Red Hat Enterprise Linux. Esta opção é conhecida como PAYG.
  • Mova suas assinaturas do Red Hat JBoss EAP e do Red Hat Enterprise Linux para o Azure por meio do programa Red Hat Cloud Access . Esta opção é conhecida como BYOS.

Em ambas as opções, para portabilidade de licença, é solicitado o ID do Pool da Red Hat. Certifique-se de que tem este ID à mão antes de experimentar as ofertas.

As ofertas pré-criadas do Azure Marketplace incluem suporte para o Red Hat Satellite para gerenciamento de licenças. Para obter uma visão geral sobre o Red Hat Satellite, consulte Red Hat Satellite.

Nota

Se você não tiver um direito EAP, poderá se inscrever para uma assinatura de desenvolvedor gratuita por meio da Red Hat Developer Subscription for Individuals. Guarde os detalhes da conta para utilizar como o nome de utilizador e a palavra-passe RHSM nas ofertas pré-criadas do Azure Marketplace.

As etapas para descobrir sua ID de Pool são explicadas na seção Pré-requisitos em Guia de início rápido: implantar um cluster EAP JBoss em máquinas virtuais (VMs) do Azure.

Fazer o inventário da capacidade do servidor

Documente o hardware (memória, CPU, disco) do(s) servidor(es) de produção atual e as contagens médias e de pico de solicitações e a utilização de recursos. Independentemente do caminho de migração que escolher, vai precisar destas informações. É útil, por exemplo, para ajudar a orientar a seleção do tamanho das VMs em seu pool de nós, a quantidade de memória a ser usada pelo contêiner e quantas CPUs compartilham as necessidades do contêiner.

É possível redimensionar pools de nós no AKS. Para saber como, consulte Redimensionar pools de nós no Serviço Kubernetes do Azure (AKS).

Inventariar todos os segredos

Verifique todas as propriedades e arquivos de configuração no servidor ou servidores de produção para quaisquer segredos e senhas. Certifique-se de verificar o arquivo jboss-web.xml em seus WARs. Também poderá encontrar ficheiros de configuração com palavras-passe ou credenciais dentro da aplicação.

Considere armazenar esses segredos no Azure Key Vault. Para obter mais informações, veja Conceitos básicos do Azure Key Vault.

Inventariar todos os certificados

Documente todos os certificados utilizados para os pontos finais SSL públicos. Pode ver todos os certificados no servidor ou servidores de produção com o comando seguinte:

keytool -list -v -keystore <path to keystore>

Verificar se a versão de Java suportada funciona corretamente

O JBoss EAP em VMs do Azure requer uma versão suportada do Java. Para obter orientação sobre qual versão do JDK usar, consulte Configurações suportadas na documentação da Red Hat.

Nota

Esta validação é particularmente importante se o seu servidor atual estiver a ser executado num JDK não suportado (como Oracle JDK ou IBM OpenJ9).

Para obter a sua versão atual do Java, inicie sessão no servidor de produção e execute o comando seguinte:

java -version

Inventariar os recursos externos

Os recursos externos, como origens de dados, mediadores de mensagens JMS, entre outros, são injetados através de Java Naming and Directory Interface (JNDI). Alguns desses recursos podem precisar de migração ou reconfiguração.

Na aplicação

Inspecione os arquivos WEB-INF/jboss-web.xml e/ou WEB-INF/web.xml . Procure elementos <Resource> dentro do elemento <Context>.

Origens de Dados

Origens de dados e recursos JNDI com o atributo type definido como javax.sql.DataSource. Documente a seguinte informação de cada origem de dados:

  • Qual é o nome da origem de dados?
  • Qual é a configuração do conjunto de ligações?
  • Onde posso obter o ficheiro JAR do controlador JDBC?

Para obter mais informações, veja Acerca das Origens de Dados do JBoss EAP na documentação do JBoss EAP.

Todos os outros recursos externos

Não é exequível documentar todas as dependências externas possíveis neste guia. Cabe à sua equipa verificar que pode satisfazer todas as dependências externas da sua aplicação após a migração.

Determinar se e como é que o sistema de ficheiros é utilizado

Qualquer uso do sistema de arquivos no servidor de aplicativos requer reconfiguração ou, em casos raros, alterações na arquitetura. Os módulos EAP do JBoss ou o código do aplicativo podem usar o sistema de arquivos. Poderá identificar alguns ou todos os cenários descritos nas secções seguintes.

Conteúdo estático só de leitura

Se a sua aplicação servir conteúdo estático atualmente, precisa de uma localização alternativa para o mesmo. Pode considerar mover o conteúdo estático para o Armazenamento de Blobs do Azure e adicionar a CDN do Azure para obter transferências super-rápidas a nível global. Para obter mais informações, consulte Hospedagem de site estático no Armazenamento do Azure e Guia de início rápido: integrar uma conta de armazenamento do Azure com a CDN do Azure.

Conteúdo estático publicado dinamicamente

Se a sua aplicação permitir conteúdo estático carregado/produzido pela mesma, mas que é imutável após a criação, pode utilizar o Armazenamento de Blobs do Azure e a CDN do Azure conforme descrito acima, com uma função das Funções do Azure que lide com os carregamentos e as atualizações da CDN. Disponibilizamos uma implementação de exemplo que pode utilizar, em Uploading and CDN-preloading static content with Azure Functions (Carregamento e pré-carregamento da CDN de conteúdo estático com as Funções do Azure).

Determinar se é necessária uma ligação ao local

Se a sua aplicação precisar de aceder a um dos seus serviços no local, tem de aprovisionar um dos serviços de conectividade do Azure. Para obter mais informações, veja Ligar uma rede no local ao Azure. Em alternativa, tem de refatorizar a aplicação para utilizar as APIs publicamente disponíveis que os seus recursos no local expõem.

Determinar se os Tópicos ou Filas do Java Message Service (JMS) estão a ser utilizados

Se a sua aplicação utilizar Filas ou Tópicos do JMS, tem de os migrar para um servidor JMS alojado externamente. O Azure Service Bus e o Advanced Message Queuing Protocol (AMQP) podem ser uma excelente estratégia de migração para quem utiliza o JMS. Para obter mais informações, consulte Usar o Java Message Service 1.1 com o Azure Service Bus Standard e AMQP 1.0.

Se tiverem sido configurados arquivos persistentes do JMS, tem de capturar a respetiva configuração e aplicá-la após a migração.

Determinar se há conectores JCA em utilização

Se seu aplicativo usa conectores JCA, valide se você pode usar o conector JCA no JBoss EAP. Se você puder usar o conector JCA no JBoss EAP, para que ele esteja disponível, você deve adicionar os JARs ao classpath do servidor e colocar os arquivos de configuração necessários no local correto nos diretórios do servidor JBoss EAP.

Determinar se o JAAS está a ser utilizado

Se a sua aplicação utilizar o JAAS, tem de capturar a forma como este é configurado. Se estiver usando um banco de dados, você poderá convertê-lo em um domínio JAAS no JBoss EAP. Se for uma implementação personalizada, você precisará validar que ela pode ser usada no JBoss EAP.

Determinar se a sua aplicação é composta por vários WARs

Se a sua aplicação for composta por vários WARs, deve tratar cada um desses WARs como aplicações separadas e seguir este guia para cada qual individualmente.

Determinar se a sua aplicação está empacotada como EAR

Se a sua aplicação estiver empacotada como ficheiro EAR, certifique-se de que examina o ficheiro application.xml e captura a configuração.

Nota

Se você quiser ser capaz de dimensionar cada um de seus aplicativos Web independentemente para melhor uso de seus recursos de VM do Azure, você deve dividir o EAR em aplicativos Web separados.

Identificar todos os processos e daemons externos em execução nos servidores de produção

Se tiver processos em execução fora do servidor de aplicações, como daemons de monitorização, terá de eliminar ou migrá-los para outro local.

Migração

Selecione uma oferta JBoss EAP em Máquinas Virtuais do Azure

As ofertas descritas nas seções a seguir estão disponíveis para o JBoss EAP em Máquinas Virtuais do Azure.

Durante a implantação de uma oferta, você é solicitado a escolher o tamanho da máquina virtual para os nós do servidor JBoss EAP. Quando escolher o tamanho das VMs, é importante considerar todos os aspetos do tamanho (memória, processador, disco, etc.). Para obter mais informações, consulte Tamanhos para serviços de nuvem (clássico).

JBoss EAP em Conjuntos de Dimensionamento de Máquina Virtual do Azure

Os Conjuntos de Dimensionamento de Máquinas Virtuais fornecem grupos de máquinas virtuais com balanceamento de carga e altamente escaláveis para cargas de trabalho de qualquer tamanho. Para obter mais informações, consulte O que são conjuntos de dimensionamento de máquina virtual?

JBoss EAP em máquinas virtuais clusterizadas

Se preferir, um cluster tradicional de VMs usando o mecanismo de clustering JBoss EAP é adequado para um aumento e mudança de implantações que já estão usando esse recurso. Para obter mais informações, consulte Clustering in Web Applications na documentação do JBoss EAP. A oferta pré-criada do Azure Marketplace inclui suporte para o modo de domínio. Para obter uma visão geral dos domínios EAP e do modo de domínio, consulte Gerenciamento de domínio.

Servidor único JBoss EAP

Se você só precisa de um único servidor, talvez para teste e avaliação, ou para cargas de trabalho leves, há uma oferta que implanta um servidor único JBoss EAP em uma única VM.

Red Hat Migration Toolkit for Apps

O Red Hat Migration Toolkit for Applications é uma extensão gratuita para o Visual Studio Code. Esta extensão analisa o código e a configuração do aplicativo para fornecer recomendações de migração local para a nuvem. Para obter mais informações, consulte Visão geral do Migration Toolkit for Applications.

O conteúdo deste guia ajuda você a abordar os outros componentes da jornada de migração, como escolher o tamanho correto da VM e externalizar o estado da sessão.

Pós-migração

Após alcançar os objetivos de migração que definiu no passo de pré-migração, realize alguns testes de aceitação ponto a ponto para verificar se tudo está a funcionar conforme o esperado. Para obter informações sobre alguns possíveis aprimoramentos pós-migração, consulte os seguintes artigos: