Contentorização e migração de aplicativos web java para Azure Kubernetes Service

Neste artigo, você aprenderá a contentorizar aplicações web java (em execução em Apache Tomcat) e migrar para Azure Kubernetes Service (AKS) usando a ferramenta Azure Migrate: App Containerization. O processo de contentorização não requer acesso à sua base de código e proporciona uma forma fácil de contentorizar as aplicações existentes. A ferramenta funciona utilizando o estado de funcionamento das aplicações num servidor para determinar os componentes da aplicação e ajuda-o a embalá-los numa imagem de recipiente. A aplicação contentorizada pode então ser implantada no Azure Kubernetes Service (AKS).

A ferramenta Azure Migrate: App Containerization suporta atualmente -

  • A contentorização de Java Aplicações Web em Apache Tomcat (nos servidores Linux) e a sua implantação em contentores Linux em AKS.
  • A Aplicações Web de Java em Apache Tomcat (nos servidores Linux) e a sua colocação em contentores Linux em Serviço de Aplicações. Saiba mais
  • A contentorização de ASP.NET aplicações e a sua implantação em contentores windows em AKS. Saiba mais
  • A ASP.NET aplicações e a sua implantação em contentores do Windows em Serviço de Aplicações. Saiba mais

A ferramenta Azure Migrate: App Containerization ajuda-o a -

  • Descubra a sua aplicação: A ferramenta conecta-se remotamente aos servidores de aplicação que executam a sua aplicação web Java (em execução em Apache Tomcat) e descobre os componentes da aplicação. A ferramenta cria um Dockerfile que pode ser usado para criar uma imagem de recipiente para a aplicação.
  • Construa a imagem do recipiente: Pode inspecionar e personalizar ainda mais o Dockerfile de acordo com os requisitos de aplicação e usá-lo para construir a imagem do seu recipiente de aplicação. A imagem do recipiente de aplicação é empurrada para um Azure Container Registry especifica.
  • Implementar para Azure Kubernetes Service: A ferramenta gera então os ficheiros YAML de definição de recursos de Kubernetes necessários para implantar a aplicação contentorizada no seu cluster Azure Kubernetes Service. Pode personalizar os ficheiros YAML e usá-los para implementar a aplicação em AKS.

Nota

A ferramenta Azure Migrate: App Containerization ajuda-o a descobrir tipos específicos de aplicações (aplicações web ASP.NET e Java em Apache Tomcat) e os seus componentes num servidor de aplicações. Para descobrir servidores e o inventário de apps, funções e funcionalidades em execução em máquinas no local, utilize a capacidade de descoberta e avaliação do Azure Migrate: Discovery e assessment. Saiba mais

Embora todas as aplicações não beneficiem de uma mudança direta para contentores sem rearquitecção significativa, alguns dos benefícios de mover aplicações existentes para contentores sem reescrever incluem:

  • Melhor utilização das infraestruturas: Com contentores, várias aplicações podem partilhar recursos e ser hospedados na mesma infraestrutura. Isto pode ajudá-lo a consolidar a infraestrutura e a melhorar a utilização.
  • Gestão simplificada: Ao hospedar as suas aplicações numa plataforma moderna gerida como a AKS e Serviço de Aplicações, pode simplificar as suas práticas de gestão. Você pode conseguir isso aposentando-se ou reduzindo os processos de manutenção e gestão de infraestruturas que você tradicionalmente realizaria com infraestruturas próprias.
  • Portabilidade da aplicação: Com o aumento da adoção e normalização dos formatos e plataformas de especificação de contentores, a portabilidade da aplicação deixou de ser uma preocupação.
  • Adotar uma gestão moderna com DevOps: Ajuda-o a adotar e a uniformizar práticas modernas para gestão e segurança e transição para DevOps.

Neste tutorial, irá aprender a:

  • Crie uma conta Azure.
  • Instale a ferramenta Azure Migrate: App Containerization.
  • Descubra a sua aplicação web Java.
  • Construa a imagem do recipiente.
  • Desloque a aplicação contentorizada na AKS.

Nota

Os tutoriais mostram-lhe o caminho de implantação mais simples para um cenário para que possa configurar rapidamente uma prova de conceito. Os tutoriais utilizam opções predefinidas sempre que possível e não mostram todas as definições e caminhos possíveis.

Pré-requisitos

Antes de começar este tutorial, tem de:

Requisito Detalhes
Identificar uma máquina para instalar a ferramenta Uma máquina Windows para instalar e executar a ferramenta Azure Migrate: App Containerization. A máquina Windows pode ser um sistema operativo de servidor (Windows Server 2016 ou posterior) ou cliente (Windows 10), o que significa que a ferramenta também pode funcionar no seu ambiente de trabalho.

A máquina Windows que executa a ferramenta deve ter conectividade de rede para os servidores/máquinas virtuais que hospedam as aplicações web java para serem contentorizadas.

Certifique-se de que o espaço de 6-GB está disponível na máquina Windows que executa a ferramenta Azure Migrate: App Containerization para armazenar artefactos de aplicações.

A máquina virtual do Windows deve ter acesso à Internet, diretamente ou através de um proxy.
Servidores de aplicações - Ativar a ligação Secure Shell (SSH) na porta 22 do(s) servidor(s) que executa as aplicações Java a ser contentorizada.
Aplicação Web Java A ferramenta suporta atualmente

- Aplicações em execução no Tomcat 8 ou posteriormente.
- Servidores de aplicações em Ubuntu Linux 16.04/18.04/20.04, Debian 7/8, CentOS 6/7, Red Hat Enterprise Linux 5/6/7.
- Aplicações que utilizem a versão Java 7 ou posterior.

A ferramenta atualmente não suporta

- Servidores de aplicações que executam múltiplas instâncias Tomcat

Preparar uma conta de utilizador Azure

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Uma vez configurada a sua subscrição, necessitará de uma conta de utilizador Azure com:

  • Permissões do proprietário na assinatura Azure
  • Permissões para registar aplicações do Azure Ative Directory

Se acabou de criar uma conta gratuita do Azure, é o proprietário da sua subscrição. Se não for o proprietário da subscrição, trabalhe com o proprietário para atribuir as permissões da seguinte forma:

  1. No portal do Azure, procure por "subscrições", e em Serviços, selecione Subscrições.

    Caixa de pesquisa para procurar a subscrição do Azure.

  2. Na página Subscrições , selecione a subscrição na qual pretende criar um projeto Azure Migrate.

  3. Selecione Controlo de acesso (IAM) .

  4. Selecione Adicionar>A atribuição de funções para abrir a página de atribuição de funções Add .

  5. Atribua o seguinte papel. Para obter os passos detalhados, veja o artigo Atribuir funções do Azure com o portal do Azure.

    Definição Valor
    Função Proprietário
    Atribuir acesso a Utilizador
    Membros azmigrateuser (neste exemplo)

    Adicione a página de atribuição de funções em portal do Azure.

  6. A sua conta Azure também precisa de permissões para registar aplicações do Azure Ative Directory.

  7. Em portal do Azure, navegue para asDefinições de Utilizadorde Utilizadores>do Diretório> Ativo Azure.

  8. Nas definições do Utilizador, verifique se Azure AD utilizadores podem registar aplicações (definidas para Sim por predefinição).

    Verifique nas Definições do Utilizador que os utilizadores podem registar aplicações ative directory.

  9. Caso as definições de "Registos de aplicações" sejam definidas como "Não", solicite ao arrendatário/administrador global que atribua a autorização necessária. Em alternativa, o administrador inquilino/global pode atribuir o papel de Desenvolvedor de Aplicações a uma conta para permitir o registo da App Azure Ative Directory App. Saiba mais.

Descarregue e instale Azure Migrate: Ferramenta de contentorização de aplicativos

  1. Descarregue o instalador Azure Migrate: App Containerization numa máquina Windows.

  2. Lançar PowerShell no modo de administrador e alterar o diretório PowerShell para a pasta que contém o instalador.

  3. Executar o script de instalação usando o comando

    .\AppContainerizationInstaller.ps1
    

Lançar a ferramenta de contentorização de aplicativos

  1. Abra um browser em qualquer máquina que possa ligar à máquina do Windows que executa a ferramenta de Contentorização de Aplicações e abra o URL da ferramenta: https:// nome de máquina ou endereço IP: 44369.

    Em alternativa, pode abrir a aplicação a partir do ambiente de trabalho selecionando o atalho da aplicação.

  2. Se vir um aviso indicando que a sua ligação não é privada, clique em Advanced e escolha seguir para o site. Este aviso aparece à medida que a interface web utiliza um certificado TLS/SSL auto-assinado.

  3. No ecrã de inscrição, utilize a conta de administrador local na máquina para iniciar scontabilidade.

  4. Selecione aplicativos web Java no Tomcat como o tipo de aplicação que deseja contentorizar.

  5. Para especificar o serviço Target Azure, selecione Recipientes em Azure Kubernetes Service. Carga padrão para a ferramenta de contentorização de aplicativos.

Requisitos completos da ferramenta

  1. Aceite os termos da licença e leia as informações de terceiros.
  2. Na aplicação > web da ferramenta Configurar pré-requisitos, faça os seguintes passos:
    • Conectividade: A ferramenta verifica se a máquina do Windows tem acesso à Internet. Se a máquina utilizar um representante:
      • Clique em Configurar o representante para especificar o endereço de procuração (no endereço IP do formulário ou FQDN) e na porta de audição.
      • Especifique as credenciais se o proxy precisar de autenticação.
      • Apenas é suportado o proxy HTTP.
      • Se tiver adicionado detalhes de procuração ou desativado o proxy e/ou autenticação, clique em Guardar para desencadear novamente a verificação de conectividade.
    • Instale atualizações: A ferramenta verificará automaticamente as atualizações mais recentes e instalá-las-á. Também pode instalar manualmente a versão mais recente da ferramenta a partir daqui.
    • Ativar secure shell (SSH): A ferramenta irá informá-lo para garantir que a Secure Shell (SSH) está ativada nos servidores de aplicações que executam as aplicações web java para serem contentorizadas.

Iniciar sessão no Azure

Clique em iniciar sessão para iniciar sessão na sua conta Azure.

  1. Vai precisar de um código de dispositivo para autenticar com o Azure. Clicar no sinal de sing in abrirá um modal com o código do dispositivo.

  2. Clique em Iniciar súmice de código & para copiar o código do dispositivo e abrir um sinal de Azure em solicitação num novo separador de navegador. Se não aparecer, certifique-se de ter desativado o bloqueador pop-up no navegador.

    Código do dispositivo de exibição modal.

  3. No novo separador, cole o código do dispositivo e inscreva-se completamente utilizando as credenciais da sua conta Azure. Pode fechar o separador do navegador depois de o sindutor estar completo e voltar à interface web da ferramenta de Contentorização de Aplicações.

  4. Selecione o inquilino Azure que pretende usar.

  5. Especifique a subscrição Azure que pretende utilizar.

Descubra aplicações web java

A ferramenta de ajuda de contentores de aplicações conecta-se remotamente aos servidores de aplicações usando as credenciais fornecidas e tentativas de descobrir aplicações web Java (em execução em Apache Tomcat) hospedadas nos servidores de aplicações.

  1. Especifique o endereço IP/FQDN e as credenciais do servidor que executa a aplicação web Java que deve ser usada para ligar remotamente ao servidor para a descoberta da aplicação.

    • As credenciais fornecidas devem ser para uma conta raiz (Linux) no servidor de aplicações.
    • Para contas de domínio (o utilizador deve ser um administrador no servidor de aplicações), prefixe o nome de utilizador com o nome de domínio no domínio de formato <\username>.
    • Pode executar a descoberta de aplicações para até cinco servidores de cada vez.
  2. Clique em Validar para verificar se o servidor de aplicação está acessível a partir da máquina que executa a ferramenta e que as credenciais são válidas. Após a validação bem sucedida, a coluna de estado mostrará o estado como Mapeado.

    Screenshot para o servidor IP e credenciais.

  3. Clique em Continuar a iniciar a descoberta da aplicação nos servidores de aplicações selecionados.

  4. Após a conclusão com sucesso da descoberta da aplicação, pode selecionar a lista de aplicações para contentorizar.

    Screenshot para aplicação web java descoberta.

  5. Utilize a caixa de verificação para selecionar as aplicações para o contentor.

  6. Especificar o nome do recipiente: Especificar o nome do recipiente-alvo para cada aplicação selecionada. O nome do recipiente deve ser especificado como <nome:tag> onde a etiqueta é utilizada para a imagem do recipiente. Por exemplo, pode especificar o nome do recipiente-alvo como appname:v1.

Para parâmetror configurações de aplicações

Parametrizar a configuração torna-a disponível como parâmetro de tempo de implantação. Isto permite-lhe configurar esta definição enquanto implementa a aplicação em vez de a ter codificada de forma dura para um valor específico na imagem do recipiente. Por exemplo, esta opção é útil para parâmetros como cadeias de ligação de base de dados.

  1. Clique nas configurações da aplicação para rever as configurações detetadas.

  2. Selecione a caixa de verificação para parametrizar as configurações detetadas da aplicação.

  3. Clique em Aplicar depois de selecionar as configurações para parametrizar.

    Screenshot para a configuração da aplicação ASP.NET aplicação.

Externalizar as dependências do sistema de ficheiros

Pode adicionar outras pastas que a sua aplicação utiliza. Especificar se devem fazer parte da imagem do recipiente ou devem ser externalizados através de volumes persistentes na partilha de ficheiros Azure. A utilização de volumes persistentes funciona muito bem para aplicações imponentes que armazenam o estado fora do contentor ou têm outros conteúdos estáticos armazenados no sistema de ficheiros. Saiba mais

  1. Clique em Editar em Pastas de Aplicação para rever as pastas de aplicação detetadas. As pastas de aplicação detetadas foram identificadas como artefactos obrigatórios necessários pela aplicação e serão copiadas para a imagem do contentor.

  2. Clique em Adicionar pastas e especifique os caminhos das pastas a adicionar.

  3. Para adicionar várias pastas ao mesmo volume, forneça vírgula (,) valores separados.

  4. Selecione o Volume Persistente como opção de armazenamento se quiser que as pastas sejam armazenadas fora do recipiente num Volume Persistente.

  5. Clique em Guardar depois de rever as pastas de aplicação. Screenshot para seleção de armazenamento de volumes de aplicativos.

  6. Clique Em Continuar a avançar para a fase de construção da imagem do recipiente.

Criar imagem de contentor

  1. Selecione Azure Container Registry: Use o dropdown para selecionar uma Azure Container Registry que será usada para construir e armazenar as imagens do contentor para as aplicações. Pode utilizar um Azure Container Registry existente ou optar por criar um novo utilizando a nova opção de registo.

    Screenshot para a seleção de aplicativoS ACR.

  2. Reveja o Dockerfile: O Dockerfile necessário para construir as imagens de contentores para cada aplicação selecionada é gerado no início do passo de construção. Clique em Rever para rever o Dockerfile. Também pode adicionar quaisquer personalizações necessárias ao Dockerfile na etapa de revisão e guardar as alterações antes de iniciar o processo de construção.

  3. Configurar insights de aplicação: Pode permitir a monitorização das suas aplicações Java em execução no Serviço de Aplicações sem instrumentar o seu código. A ferramenta instalará o agente autónomo Java como parte da imagem do recipiente. Uma vez configurado durante a implementação, o agente Java recolherá automaticamente uma infinidade de pedidos, dependências, registos e métricas para a sua aplicação que podem ser usadas para monitorização com Insights de Aplicação. Esta opção é ativada por padrão para todas as aplicações Java.

  4. Processo de construção do gatilho: Selecione as aplicações para construir imagens e clique em Construir. Clicar na construção iniciará a construção da imagem do recipiente para cada aplicação. A ferramenta continua a monitorizar continuamente o estado de construção e permitir-lhe-á avançar para o próximo passo após a conclusão com sucesso da construção.

  5. Estado de construção de faixas: Também pode monitorizar o progresso do passo de construção clicando na ligação Build in Progress sob a coluna status. A ligação leva alguns minutos para estar ativo depois de ter desencadeado o processo de construção.

  6. Uma vez concluída a construção, clique em Continuar a especificar as definições de implementação.

    Screenshot para a conclusão da imagem do recipiente de aplicações.

Implementar a aplicação contentorizada em AKS

Uma vez construída a imagem do recipiente, o próximo passo é colocar a aplicação como recipiente em Azure Kubernetes Service (AKS).

  1. Selecione o cluster Azure Kubernetes Service: Especifique o cluster AKS para o qual a aplicação deve ser implantada.

    • O cluster AKS selecionado deve ter uma piscina de nó linux.
    • O cluster deve ser configurado para permitir a retirada de imagens do Azure Container Registry que foi selecionado para armazenar as imagens.
      • Executar o seguinte comando em Azure CLI para ligar o cluster AKS ao ACR.
        az aks update -n <cluster-name> -g <cluster-resource-group> --attach-acr <acr-name>
        
    • Se não tiver um cluster AKS ou quiser criar um novo cluster AKS para implementar a aplicação, pode optar por criar a partir da ferramenta clicando em Criar um novo cluster AKS.
      • O cluster AKS criado usando a ferramenta será criado com uma piscina de nó Linux. O cluster será configurado para permitir que ele retire imagens do Azure Container Registry que foi criado anteriormente (se foi escolhida nova opção de registo).
    • Clique em Continuar depois de selecionar o cluster AKS.
  2. Especifique a loja secreta e o espaço de trabalho de monitorização: Se optou por parametrizar as configurações da aplicação, especifique a loja secreta a ser utilizada para a aplicação. Pode escolher Azure Key Vault ou Kubernetes Secrets para gerir os segredos da sua aplicação.

    • Se selecionou os segredos de Kubernetes para gerir segredos, clique em Continuar.
    • Se quiser usar um Key Vault Azure para gerir os segredos da sua aplicação, especifique o Key Vault Azure que gostaria de usar.
      • Se não tiver um Azure Key Vault ou quiser criar um novo Key Vault, pode optar por criar a partir da ferramenta clicando em Criar novos.
      • A ferramenta atribuirá automaticamente as permissões necessárias para gerir segredos através do Key Vault.
    • Monitorando o espaço de trabalho: Se tiver selecionado para ativar a monitorização com o Application Insights, especifique o recurso Application Insights que pretende utilizar. Esta opção não será visível se tiver desativado a integração de monitorização.
      • Se não tiver um recurso de Insights de Aplicação ou quiser criar um novo recurso, pode optar por criar a partir da ferramenta clicando em Criar novos.
  3. Especifique a partilha de ficheiros Azure: Se tiver adicionado mais pastas e selecionado a opção Volume Persistente, especifique a partilha de ficheiros Azure que deve ser utilizada pela Azure Migrate: Ferramenta de contentorização de aplicações durante o processo de implantação. A ferramenta criará novos diretórios nesta partilha de ficheiros Azure para copiar sobre as pastas de aplicação configuradas para armazenamento de Volume Persistente. Uma vez concluída a implementação da aplicação, a ferramenta limpará a parte do ficheiro Azure eliminando os diretórios que tinha criado.

    • Se não tiver uma partilha de ficheiros Azure ou quiser criar uma nova partilha de ficheiros Azure, pode optar por criar a partir da ferramenta clicando em Criar uma nova Conta de Armazenamento e partilha de ficheiros.
  4. Configuração da implementação da aplicação: Uma vez concluídas as etapas acima, terá de especificar a configuração de implementação para a aplicação. Clique em Configurar para personalizar a implementação para a aplicação. No passo de configuração pode fornecer as seguintes personalizações:

    • Cadeia de prefixo: Especifique uma cadeia de prefixo para usar no nome de todos os recursos criados para a aplicação contentorizada no cluster AKS.
    • Conjuntos de réplicas: Especifique o número de instâncias de aplicação (pods) que devem ser executados dentro dos contentores.
    • Tipo de balançador de carga: Selecione External se a aplicação contentorizada deve ser acessível a partir de redes públicas.
    • Configuração da aplicação: Para quaisquer configurações de aplicação que foram parametrizadas, forneça os valores a utilizar para a implementação atual.
    • Armazenamento: Para quaisquer pastas de aplicação configuradas para armazenamento de volume persistente, especifique se o volume deve ser partilhado em instâncias de aplicação ou deve ser inicializado individualmente com cada instância no recipiente. Por predefinição, todas as pastas de aplicação em Volumes Persistentes são configuradas como partilhadas.
    • Clique em Aplicar para guardar a configuração de implementação.
    • Clique Continuar a implementar a aplicação.

    Screenshot para configuração de aplicação de implementação.

  5. Implementar a aplicação: Uma vez guardada a configuração de implementação da aplicação, a ferramenta gerará a implementação de Kubernetes YAML para a aplicação.

    • Clique em Rever para rever e personalizar a implementação de Kubernetes YAML para as aplicações.

    • Selecione a aplicação para implementar.

    • Clique em Implementar para iniciar implementações para as aplicações selecionadas

      Screenshot para configuração de implementação de aplicativos.

    • Uma vez implementada a aplicação, pode clicar na coluna de estado de Implementação para rastrear os recursos que foram implantados para a aplicação.

Descarregar artefactos gerados

Todos os artefactos utilizados para construir e implantar a aplicação em AKS, incluindo os ficheiros de especificações DE Dockerfile e Kubernetes YAML, são armazenados na máquina que executa a ferramenta. Os artefactos estão localizados em C:\ProgramData\Microsoft Azure Migrate App Containerization.

Uma única pasta é criada para cada servidor de aplicações. Pode visualizar e baixar todos os artefactos intermédios utilizados no processo de contentorização navegando para esta pasta. A pasta, correspondente ao servidor de aplicações, será limpa no início de cada execução da ferramenta para um determinado servidor.

Resolver problemas

Para resolver problemas com a ferramenta, pode consultar os ficheiros de registo da máquina Windows que executa a ferramenta de Contentorização de Aplicações. Os ficheiros de registo de ferramentas estão localizados na pasta C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

Passos seguintes

  • Contentorizando aplicativos web java em Apache Tomcat (em servidores Linux) e implantando-as em recipientes Linux em Serviço de Aplicações. Saiba mais
  • A contentorização ASP.NET aplicações web e a sua implantação em contentores windows em AKS. Saiba mais
  • A contentorização de ASP.NET aplicações web e a sua implantação em contentores do Windows em Serviço de Aplicações do Azure. Saiba mais