Compartilhar via


Conteinerização e migração de aplicativo ASP.NET para o Serviço de Kubernetes do Azure

Neste artigo, você aprenderá a containerizar aplicativos ASP.NET e migrá-los para o Serviço de Kubernetes do Azure (AKS) usando a ferramenta Azure Migrate: Ferramenta de Contêinerização de Aplicativo. O processo de conteinerização não exige acesso à sua base de código e oferece uma forma fácil de conteinerizar aplicativos existentes. A ferramenta funciona com o uso do estado de execução dos aplicativos em um servidor a fim de determinar os componentes do aplicativo e ajuda você a empacotá-los em uma imagem de contêiner. O aplicativo em contêineres pode, então, ser implantado no AKS (Serviço de Kubernetes do Azure).

A ferramenta Conteinerização de Aplicativo das Migrações para Azure atualmente dá suporte a:

  • Como conteinerizar aplicativos ASP.NET e implantá-los em contêineres do Windows no Serviço de Kubernetes do Azure.
  • Como conteinerizar aplicativos ASP.NET e implantá-los em contêineres do Windows no Serviço de Aplicativo do Azure. Saiba mais.
  • Como conteinerizar aplicativos Web Java no Apache Tomcat (em servidores Linux) e implantá-los em contêineres do Linux no AKS. Saiba mais.
  • Como conteinerizar aplicativos Web Java no Apache Tomcat (em servidores Linux) e implantá-los em contêineres do Linux no Serviço de Aplicativo. Saiba mais.

A ferramenta Migrações para Azure: Conteinerização de Aplicativo ajuda você a:

  • Descubra seu aplicativo: a ferramenta se conecta remotamente aos servidores de aplicativos que executam seu aplicativo ASP.NET e descobre os componentes do aplicativo. A ferramenta cria um Dockerfile que pode ser usado a fim de criar uma imagem de contêiner para o aplicativo.
  • Crie a imagem de contêiner: você pode inspecionar e personalizar ainda mais o Dockerfile de acordo com seus requisitos de aplicativo e usá-lo para criar sua imagem de contêiner de aplicativo. A imagem de contêiner do aplicativo é enviada por push para o Registro de Contêiner do Azure que você especificar.
  • Implantar no Serviço de Kubernetes do Azure: a ferramenta gera os arquivos YAML de definição de recurso do Kubernetes necessários para implantar o aplicativo em contêineres no cluster do Serviço de Kubernetes do Azure. Você pode personalizar os arquivos YAML e usá-los para implantar o aplicativo no AKS.

Observação

A ferramenta Migrações para Azure: Conteinerização de Aplicativo ajuda a descobrir tipos de aplicativos específicos (aplicativos Web ASP.NET e Java no Apache Tomcat) e seus componentes em um servidor de aplicativos. Para descobrir servidores e o inventário de aplicativos, funções e recursos em execução em computadores locais, use o recurso Migrações para Azure: Descoberta e a capacidade de avaliação. Saiba Mais

Embora nem todos os aplicativos se beneficiem de uma mudança direta para contêineres sem uma rearquitetura significativa, alguns dos benefícios de mover aplicativos existentes para contêineres sem reprogramação incluem:

  • Melhor utilização da infraestrutura – com contêineres, vários aplicativos podem compartilhar recursos e ser hospedados na mesma infraestrutura. Isso pode ajudar você a consolidar a infraestrutura e a melhorar a utilização.
  • Gerenciamento simplificado – ao hospedar seus aplicativos em uma plataforma gerenciada moderna, como o AKS e o Serviço de Aplicativo, você pode simplificar suas práticas de gerenciamento. Você pode conseguir isso desativando ou reduzindo os processos de manutenção e gerenciamento de infraestrutura que eram tradicionalmente executados com a infraestrutura própria.
  • Portabilidade do aplicativo – Com maior adoção e padronização de formatos e plataformas de especificação de contêiner, a portabilidade do aplicativo não é mais uma preocupação.
  • Adotar o gerenciamento moderno com o DevOps – ajuda você a adotar e padronizar práticas modernas de gerenciamento e segurança e transição para o DevOps.

Neste tutorial, você aprenderá como:

  • Configurar uma conta do Azure.
  • Instale a ferramenta Migrações para Azure: Conteinerização de Aplicativo.
  • Descubra seu aplicativo ASP.NET.
  • Compile a imagem de contêiner.
  • Implantar o aplicativo conteinerizado no AKS.

Observação

Os tutoriais mostram o caminho de implantação mais simples para um cenário para que você possa configurar rapidamente uma prova de conceito. Os tutoriais usam opções padrão quando possível e não mostram todas as configurações e todos os caminhos possíveis.

Pré-requisitos

Antes de iniciar este tutorial, você deverá:

Requisito Detalhes
Identificar um computador para instalar a ferramenta Um computador Windows para instalar e executar a ferramenta Migrações para Azure: Conteinerização de Aplicativo. O computador Windows pode ser um sistema operacional de servidor (Windows Server 2016 ou posterior) ou de cliente (Windows 10), o que significa que a ferramenta também pode ser executada na área de trabalho.

O computador Windows que executa a ferramenta deve ter conectividade de rede com os servidores/as máquinas virtuais que hospedam os aplicativos ASP.NET que serão conteinerizados.

Verifique se o espaço de 6 GB está disponível no computador Windows que executa a ferramenta Migrações para Azure: Conteinerização de Aplicativo para o armazenamento de artefatos do aplicativo.

O computador Windows deve ter acesso à Internet, diretamente ou por meio de um proxy.

Instale a ferramenta Implantação da Web da Microsoft no computador que executa a ferramenta auxiliar de Conteinerização de aplicativo e o servidor de aplicativos, se ainda não estiver instalado. Você pode baixar a ferramenta daqui.
Servidores de aplicativos Habilite a comunicação remota do PowerShell nos servidores de aplicativos: entre no servidor de aplicativos e siga estas instruções para ativar a comunicação remota do PowerShell.

Verifique se o PowerShell 5.1 está instalado no servidor de aplicativos. Siga as instruções em Instalar e Configurar o WMF 5.1 para baixar e instalar o PowerShell 5.1 no servidor de aplicativos.

Instale a ferramenta Implantação da Web da Microsoft no computador que executa a ferramenta auxiliar de Conteinerização de aplicativo e o servidor de aplicativos, se ainda não estiver instalado. Você pode baixar a ferramenta daqui.
aplicativo ASP.NET A ferramenta atualmente dá suporte a:
- Aplicativos ASP.NET que usam o Microsoft .NET Framework 3.5 ou posterior.
- Servidores de aplicativos que executam o Windows Server 2012 R2 ou posterior (os servidores de aplicativos devem estar executando o PowerShell versão 5.1).
-Aplicativos em execução no IIS (Serviços de Informações da Internet) 7.5 ou versão posterior.

A ferramenta atualmente não dá suporte a:
- Aplicativos que exigem autenticação do Windows (atualmente, a ferramenta conteinerização de aplicativo não dá suporte à gMSA).
- Aplicativos que dependem de outros serviços do Windows hospedados fora do IIS.

Preparar uma conta de usuário do Azure

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

Quando sua assinatura estiver configurada, você precisará de uma conta de usuário do Azure com:

  • Permissões de proprietário na assinatura do Azure.
  • Permissões para registrar aplicativos do Microsoft Entra.

Se você acaba de criar uma conta gratuita do Azure, você é o proprietário da assinatura. Se você não for o proprietário da assinatura, trabalhe com o proprietário para atribuir as permissões da seguinte maneira:

  1. No portal do Azure, pesquise por "assinaturas" e, em Serviços, selecione Assinaturas.

    Captura de tela da caixa de pesquisa para pesquisar a assinatura do Azure.

  2. Na página Assinaturas , selecione a assinatura na qual você deseja criar um projeto de Migrações para Azure.

  3. Selecione controle de acesso (IAM).

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

  5. Atribua a função a seguir. Para obter etapas detalhadas, consulte Atribuir funções do Azure usando o portal do Azure.

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

    Captura de tela da página adicionar atribuição de função no portal do Azure.

  6. Sua conta do Azure também precisa de permissões para registrar aplicativos do Microsoft Entra.

  7. No portal do Azure, navegue até Microsoft Entra ID>Usuários>Configurações do Usuário.

  8. Nas configurações de usuário, verifique se os usuários do Microsoft Entra podem registrar aplicativos (definidos como Sim por padrão).

    Captura de tela da verificação nas Configurações do Usuário se os usuários puderem registrar aplicativos do Active Directory.

    Importante

    A Microsoft recomenda que você use funções com o menor número de permissões. Isso ajuda a melhorar a segurança da sua organização. Administrador Global é uma função altamente privilegiada que deve ser limitada a cenários de emergência quando não for possível usar uma função existente.

  9. Caso as configurações de 'Registros de aplicativo' estejam definidas como 'Não', solicite ao administrador global/de locatários a atribuição da permissão necessária. Como alternativa, o administrador global/locatário pode atribuir a função de Desenvolvedor de Aplicativos a uma conta para permitir o registro do Aplicativo Microsoft Entra. Saiba mais.

Baixar e instalar a ferramenta Migrações para Azure: Conteinerização de Aplicativo

  1. Baixe o instalador do Azure Migrate: Containerização de Aplicativo em um computador Windows.

  2. Inicie o PowerShell no modo de administrador e altere o diretório do PowerShell para a pasta que contém o instalador.

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

    .\AppContainerizationInstaller.ps1
    

Observação

Para o Windows Server 2022, edite a linha 135 e remova PowerShell-ISE da lista de recursos, pois ele não tem mais suporte.

Iniciar a ferramenta Conteinerização de Aplicativo

  1. Abra um navegador em qualquer computador que possa se conectar ao computador Windows que esteja executando a ferramenta de Containerização de Aplicativos e abra a URL da ferramenta: https://nome da máquina ou endereço IP: 44369.

    Como alternativa, você pode abrir o aplicativo na área de trabalho selecionando o atalho do aplicativo.

  2. Se você vir um aviso informando que sua conexão não é privada, selecione Avançado e escolha prosseguir para o site. Esse aviso é exibido porque a interface Web usa um certificado TLS/SSL autoassinado.

  3. Na tela Entrar , use a conta de administrador local no computador para entrar.

  4. Selecione ASP.NET aplicativos Web como o tipo de aplicativo que você deseja colocar em contêiner.

  5. Para especificar o serviço de destino do Azure, selecione Contêineres no Serviço de Kubernetes do Azure.

    Captura de tela do carregamento padrão da ferramenta de containerização de apps.

Pré-requisitos da ferramenta completa

  1. Aceite os termos de licença e leia as informações de terceiros.
  2. No aplicativo Web da ferramenta >Configurar pré-requisitos, siga estas etapas:
    • Conectividade: a ferramenta verifica se o computador Windows tem acesso à Internet. Se o computador usar um proxy:
      • Selecione Configurar proxy para especificar o endereço proxy (no endereço IP do formulário ou FQDN) e a porta de escuta.
      • Especifique as credenciais caso o proxy exija autenticação.
      • Há suporte apenas para o proxy HTTP.
      • Se você adicionou detalhes de proxy ou desabilitou o proxy e/ou a autenticação, selecione Salvar para disparar a verificação de conectividade novamente.
    • Instalar atualizações: a ferramenta verificará automaticamente se há atualizações mais recentes e as instalará. Você também pode instalar manualmente a versão mais recente da ferramenta a partir daqui.
    • Instalar a ferramenta Microsoft Web Deploy: A ferramenta verificará se a ferramenta Microsoft Web Deploy está instalada na máquina Windows que executa a ferramenta Azure Migrate: App Containerization.
    • Habilitar a comunicação remota do PowerShell: a ferramenta informará você para garantir que a comunicação remota do PowerShell esteja habilitada nos servidores de aplicativos que executam os aplicativos ASP.NET a serem conteinerizados.

Entrar no Azure

  1. Selecione Entrar para entrar em sua conta do Azure.

  2. Será necessário um código do dispositivo para a autenticação com o Azure. Ao clicar em Entrar, será aberta uma janela modal com o código do dispositivo.

  3. Selecione Copiar código e entre para copiar o código do dispositivo e abra um prompt de entrada do Azure em uma nova guia do navegador. Se ele não aparecer, verifique se você desabilitou o bloqueador pop-up no navegador.

    Captura de tela do modal mostrando o código do dispositivo.

  4. Na nova guia, cole o código do dispositivo e conclua a entrada usando suas credenciais de conta do Azure. É possível fechar a guia do navegador depois de concluir a entrada e voltar para a tela da ferramenta de conteinerização de aplicativo.

  5. Selecione o locatário do Azure que você deseja usar.

  6. Especifique a assinatura do Azure que você deseja usar.

Descobrir aplicativos ASP.NET

A ferramenta auxiliar Conteinerização de Aplicativo conecta-se remotamente aos servidores de aplicativos usando as credenciais fornecidas e tenta descobrir aplicativos ASP.NET hospedados nos servidores de aplicativos.

  1. Especifique o endereço IP/FQDN e as credenciais do servidor que executa o aplicativo ASP.NET que deve ser usado para se conectar remotamente ao servidor para descoberta de aplicativos.

    • As credenciais fornecidas precisam ser de um administrador local (Windows) no servidor de aplicativos.
    • Para contas de domínio (o usuário deve ser um administrador no servidor de aplicativos), prefixe o nome de usuário com o nome de domínio no formato <domínio\nome de usuário>.
    • Você pode executar a descoberta de aplicativos em até cinco servidores de cada vez.
  2. Selecione Validar para verificar se o servidor de aplicativos está acessível no computador que executa a ferramenta e se as credenciais são válidas. Após a validação bem-sucedida, a coluna de status mostrará o status como Mapeado.

    Captura de tela do IP do servidor e das credenciais.

  3. Selecione Continuar para iniciar a descoberta de aplicativos nos servidores de aplicativos selecionados.

  4. Após a conclusão bem-sucedida da descoberta de aplicativos, você pode selecionar a lista de aplicativos a serem conteinerizados.

    Captura de tela do aplicativo ASP.NET descoberto.

  5. Use a caixa de seleção para marcar os aplicativos que serão conteinerizados.

  6. Especifique o nome do contêiner: especifique um nome para o contêiner de destino para cada aplicativo selecionado. O nome do contêiner deve ser especificado como <name:tag>, onde a tag é usada para a imagem do contêiner. Por exemplo, você pode especificar o nome do contêiner de destino como appname:v1.

Parametrizar as configurações do aplicativo

A parametrização da configuração torna-a disponível como um parâmetro de tempo de implantação. Isso permite que você defina essa configuração enquanto implanta o aplicativo em vez de tê-lo embutido como um valor específico em código na imagem de contêiner. Por exemplo, essa opção é útil para parâmetros como cadeias de conexão de banco de dados.

  1. Selecione as configurações do aplicativo para examinar as configurações detectadas.

  2. Marque a caixa de seleção para parametrizar as configurações do aplicativo detectado.

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

    Captura de tela da parametrização de configuração do aplicativo ASP.NET.

Externalizar dependências do sistema de arquivos

Você pode adicionar outras pastas usadas pelo seu aplicativo. Especifique se elas devem fazer parte da imagem de contêiner ou se serão externalizadas por meio de volumes persistentes no compartilhamento de arquivos do Azure. O uso de volumes persistentes funciona muito bem com aplicativos com estado que armazenam o estado fora do contêiner ou têm outro conteúdo estático armazenado no sistema de arquivos. Saiba mais.

  1. Selecione Editar em Pastas de Aplicativo para examinar as pastas de aplicativo detectadas. As pastas do aplicativo detectadas foram identificadas como artefatos obrigatórios exigidos pelo aplicativo e serão copiadas na imagem de contêiner.

  2. Selecione Adicionar pastas e especifique os caminhos de pasta a serem adicionados.

  3. Para adicionar várias pastas ao mesmo volume, informe valores separados por vírgulas (,).

  4. Selecione Volume Persistente como a opção de armazenamento se desejar que as pastas sejam armazenadas fora do contêiner em um Volume Persistente.

  5. Selecione Salvar depois de examinar as pastas do aplicativo. Captura de tela da escolha do armazenamento de volumes do aplicativo.

  6. Selecione Continuar para prosseguir para a fase de build da imagem do contêiner.

Criar imagem de contêiner

Importante

Se você estiver usando o AKS 1.23+, edite os scripts conforme mostrado abaixo antes de criar a imagem do Docker para garantir uma migração perfeita.

Alterar o script abaixo

# Run entrypoint script.
COPY ./Entryscript.ps1 c:/Entryscript.ps1
ENTRYPOINT powershell c:/Entryscript.ps1

para

# Run entrypoint script.
COPY ["./Entryscript.ps1", "c:/Entryscript.ps1"]
ENTRYPOINT ["powershell", "c:/Entryscript.ps1"]

Para compilar uma imagem de contêiner, siga estas etapas:

  1. Selecionar o Registro de Contêiner do Azure: use o menu suspenso para selecionar o Registro de Contêiner do Azure que será usado para criar e armazenar as imagens de contêiner dos aplicativos. Você pode usar um Registro de Contêiner do Azure existente ou optar por criar outro usando a opção Criar registro.

    Captura de tela da escolha do ACR para o aplicativo.

  2. Examine o Dockerfile: o Dockerfile necessário para criar as imagens de contêiner para cada aplicativo selecionado é gerado no início da etapa de build. Selecione Revisar para revisar o Dockerfile. Você também pode adicionar todas as personalizações necessárias ao Dockerfile na etapa de revisão e salvar as alterações antes de iniciar o processo de compilação.

  3. Disparar o processo de build: selecione os aplicativos para os quais deseja criar imagens e selecione Build. Selecionar compilar iniciará a compilação da imagem de contêiner para cada aplicativo. A ferramenta continua monitorando o status da compilação continuamente e permite que você prossiga para a próxima etapa após a conclusão bem-sucedida da compilação.

  4. Acompanhar o status do build: você também pode monitorar o progresso da etapa de build selecionando o link Compilar em Andamento na coluna de status. O link leva alguns minutos para ficar ativo depois que o processo de compilação é disparado.

  5. Depois que o build for concluído, selecione Continuar para especificar as configurações de implantação.

    Captura de tela para conclusão da compilação da imagem do contêiner do aplicativo.

Implantar o aplicativo conteinerizado no AKS

Depois que a imagem de contêiner for criada, a próxima etapa é implantar o aplicativo como um contêiner no AKS (Serviço de Kubernetes do Azure).

  1. Selecione o Cluster de Serviço de Kubernetes do Azure: especifique o cluster do AKS no qual o aplicativo deve ser implantado.

    • O cluster AKS selecionado precisa ter um pool de nós do Windows.
    • O cluster precisa ser configurado para permitir o pull de imagens do Registro de Contêiner do Azure que foi selecionado para armazenar as imagens.
      • Execute o comando a seguir na CLI do Azure para anexar o cluster AKS ao ACR.
        az aks update -n <cluster-name> -g <cluster-resource-group> --attach-acr <acr-name>
        
    • Se você não tiver um cluster do AKS ou quiser criar um cluster do AKS para o qual implantar o aplicativo, poderá optar por criar por meio da ferramenta selecionando Criar novo cluster do AKS.
      • O cluster AKS criado usando a ferramenta será criado com um pool de nós do Windows. O cluster será configurado para permitir o pull de imagens do Registro de Contêiner do Azure que foi criado anteriormente (se a opção Criar registro tiver sido escolhida).
    • Selecione Continuar depois de selecionar o cluster do AKS.
  2. Especifique o repositório de segredos: se você optou por parametrizar as configurações do aplicativo, especifique o repositório secreto a ser usado para o aplicativo. É possível escolher as configurações de aplicativo do Azure Key Vault ou do Serviço de Aplicativo para gerenciar os segredos do aplicativo. Saiba Mais

    • Se você tiver selecionado as configurações de aplicativo do Serviço de Aplicativo para gerenciar segredos, selecione Continuar.
    • Para usar um Azure Key Vault para gerenciar os segredos do aplicativo, especifique o Azure Key Vault desejado.
      • Se você não tiver um Azure Key Vault ou quiser criar um novo Key Vault, poderá optar por criar na ferramenta selecionando Criar novo Azure Key Vault.
      • A ferramenta atribuirá automaticamente as permissões necessárias para o gerenciamento de segredos por meio do Key Vault.
  3. Especifique o compartilhamento de arquivos do Azure: se você tiver adicionado mais pastas e selecionado a opção Volume Persistente, especifique o compartilhamento de arquivos do Azure que deve ser usado pelas Migrações para Azure: ferramenta de Contêinerização de Aplicativo durante o processo de implantação. A ferramenta criará novos diretórios nesse compartilhamento de arquivo do Azure para copiar as pastas de aplicativo que estão configuradas para o armazenamento de Volume Persistente. Depois que a implantação do aplicativo for concluída, a ferramenta limpará o compartilhamento de arquivo do Azure com a exclusão dos diretórios que ela criou.

    • Se você não tiver um compartilhamento de arquivos do Azure ou quiser criar um novo compartilhamento de arquivos do Azure, poderá optar por criar na ferramenta selecionando Criar nova Conta de Armazenamento e compartilhamento de arquivos.
  4. Configuração de implantação de aplicativo: depois de concluir as etapas acima, você precisará especificar a configuração de implantação para o aplicativo. Selecione Configurar para personalizar a implantação do aplicativo. Na etapa de configuração, você pode oferecer as seguintes personalizações:

    • Cadeia de caracteres de prefixo: especifique uma cadeia de caracteres de prefixo a ser usada no nome de todos os recursos criados para o aplicativo em contêineres no cluster do AKS.
    • Certificado SSL: se o aplicativo exigir uma associação de site https, especifique o arquivo PFX que contém o certificado a ser usado para a associação. O arquivo PFX não deve ser protegido por senha e o site original não deve ter várias associações.
    • Conjuntos de Réplicas: Especifique a quantidade de instâncias de aplicações (pods) que devem ser executadas dentro dos contêineres.
    • Tipo de balanceador de carga: selecione Externo se o aplicativo em contêineres deve ser acessível em redes públicas.
    • Configuração do aplicativo: para todas as configurações de aplicativo que foram parametrizadas, forneça os valores a serem usados para a implantação atual.
    • Armazenamento: para todas as pastas de aplicativo que foram configuradas para armazenamento de volume persistente, especifique se o volume deve ser compartilhado entre instâncias de aplicativo ou deve ser inicializado individualmente com cada instância no contêiner. Por padrão, todas as pastas de aplicativo em Volumes Persistentes são configuradas como compartilhadas.
    • Selecione Aplicar para salvar a configuração de implantação.
    • Selecione Continuar para implantar o aplicativo.

    Captura de tela da configuração do aplicativo de implantação.

  5. Implantar o aplicativo: depois que a configuração de implantação do aplicativo for salva, a ferramenta gerará o YAML de implantação do Kubernetes para o aplicativo.

    • Selecione Examinar para examinar e personalizar o YAML de implantação do Kubernetes para os aplicativos.

    • Selecione o aplicativo a ser implantado.

    • Selecione Implantar para iniciar implantações para os aplicativos selecionados

      Captura de tela da configuração de implantação do aplicativo.

    • Depois que o aplicativo for implantado, você poderá selecionar a coluna de status de implantação para acompanhar os recursos que foram implantados para o aplicativo.

Baixar artefatos gerados

Todos os artefatos usados para criar e implantar o aplicativo no AKS, incluindo os arquivos de especificação YAML do Dockerfile e do Kubernetes, são armazenados no computador que executa a ferramenta. Os artefatos estão localizados em C:\ProgramData\Microsoft Azure Migrate App Containerization.

Uma única pasta é criada para cada servidor de aplicativos. Você poderá exibir e baixar todos os artefatos intermediários usados no processo de conteinerização ao navegar até essa pasta. A pasta, correspondente ao servidor de aplicativos, será limpa no início de cada execução da ferramenta em um servidor específico.

Solucionar problemas

Para solucionar problemas com a ferramenta, você poderá examinar os arquivos de log no computador com Windows que executa a ferramenta Conteinerização de Aplicativo. Os arquivos de log de ferramentas estão localizados na pasta C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs .

Próximas etapas

  • Como conteinerizar aplicativos Web ASP.NET e implantá-los em contêineres do Windows no Serviço de Aplicativo. Saiba mais.
  • Como conteinerizar aplicativos Web Java no Apache Tomcat (em servidores Linux) e implantá-los em contêineres do Linux no AKS. Saiba mais.
  • Como conteinerizar aplicativos Web Java no Apache Tomcat (em servidores Linux) e implantá-los em contêineres do Linux no Serviço de Aplicativo. Saiba mais.