Contentorização e migração de aplicações ASP.NET para o Serviço de Aplicações do Azure

Neste artigo, você aprenderá como fazer contêineres ASP.NET aplicativos e migrá-los para o Serviço de Aplicativo do Azure usando a ferramenta Azure Migrate App Containerization. O processo de conteinerização não requer acesso à sua base de código e fornece uma maneira fácil de conteinerizar aplicativos existentes. A ferramenta funciona usando o estado de execução dos aplicativos em um servidor para determinar os componentes do aplicativo. Em seguida, ele ajuda você a empacotá-los em uma imagem de contêiner. Em seguida, você pode implantar o aplicativo em contêiner no Serviço de Aplicativo do Azure.

Atualmente, a ferramenta de Contentorização de Aplicações do Azure Migrate suporta:

A ferramenta de contentorização de aplicações ajuda-o a:

  • Descubra os componentes do seu aplicativo. A ferramenta se conecta remotamente aos servidores de aplicativos que executam seu aplicativo ASP.NET e descobre os componentes do aplicativo. Ele cria um Dockerfile que você pode usar para criar uma imagem de contêiner para o aplicativo.
  • Crie a imagem do contêiner. Você pode inspecionar e personalizar ainda mais o Dockerfile com base nos requisitos do aplicativo e usá-lo para criar a imagem do contêiner do aplicativo. A imagem do contêiner do aplicativo é enviada por push para um registro de contêiner do Azure que você especificar.
  • Implante no Serviço de Aplicativo do Azure. Em seguida, a ferramenta gera os arquivos de implantação necessários para implantar o aplicativo em contêiner no Serviço de Aplicativo do Azure.

Nota

A ferramenta Azure Migrate App Containerization ajuda você a descobrir tipos específicos de aplicativos (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 a ferramenta de descoberta e avaliação de migração do Azure.

Nem todas as aplicações se beneficiarão de uma mudança direta para contêineres sem uma rearquitetura significativa. Mas alguns dos benefícios de mover aplicativos existentes para contêineres sem reescrever incluem:

  • Melhor utilização da infraestrutura. Quando você usa contêineres, vários aplicativos podem compartilhar recursos e ser hospedados na mesma infraestrutura. Isso pode ajudá-lo a consolidar a infraestrutura e melhorar a utilização.
  • Gestão simplificada. Ao hospedar seus aplicativos em plataformas gerenciadas modernas, como AKS e App Service, você pode simplificar suas práticas de gerenciamento. Você pode obter essa simplificação aposentando ou reduzindo os processos de manutenção e gerenciamento de infraestrutura que tradicionalmente executaria com a infraestrutura própria.
  • Portabilidade da aplicação. Com o aumento da adoção e padronização de formatos e plataformas de especificação de contêineres, a portabilidade de aplicativos não é mais uma preocupação.
  • Adote o gerenciamento moderno usando DevOps. O uso de contêineres ajuda você a adotar e padronizar práticas modernas de gerenciamento e segurança e a transição para DevOps.

Neste tutorial, irá aprender a:

  • Configure uma conta do Azure.
  • Instale a ferramenta Azure Migrate App Containerization.
  • Descubra o seu ASP.NET aplicação.
  • Crie a imagem do contêiner.
  • Implante o aplicativo em contêiner no Serviço de Aplicativo.

Nota

Os tutoriais fornecem 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 caminhos.

Pré-requisitos

Antes de iniciar este tutorial, você deve:

Requisito Detalhes
Identificar uma máquina na qual instalar a ferramenta Você precisa de uma máquina Windows na qual instalar e executar a ferramenta Azure Migrate App Containerization. A máquina Windows pode executar um sistema operacional de servidor (Windows Server 2016 ou posterior) ou cliente (Windows 10). (A ferramenta pode ser executada na sua área de trabalho.)

A máquina Windows que executa a ferramenta deve ter conectividade de rede com os servidores ou máquinas virtuais que hospedam os ASP.NET aplicativos que você irá colocar em contêineres.

Verifique se 6 GB estão disponíveis na máquina Windows que executa a ferramenta Azure Migrate App Containerization. Este espaço é para armazenar artefatos de aplicativos.

A máquina virtual do Windows deve ter acesso à Internet, diretamente ou através de um proxy.

Se a ferramenta Microsoft Web Deployment ainda não estiver instalada na máquina que executa a ferramenta de conteinerização de aplicativos e no servidor de aplicativos, instale-a. Você pode baixar a ferramenta.
Servidores de aplicativos Habilitar 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.

Certifique-se de que o PowerShell 5.1 está instalado no servidor de aplicações. Siga as instruções em Instalar e configurar o WMF 5.1 no servidor de aplicativos.

Se a ferramenta Microsoft Web Deployment ainda não estiver instalada na máquina que executa a ferramenta de conteinerização de aplicativos e no servidor de aplicativos, instale-a. Você pode baixar a ferramenta.
ASP.NET aplicação Atualmente, a ferramenta suporta:
  • ASP.NET aplicativos que usam o .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 5.1.)
  • Aplicativos executados no Internet Information Services 7.5 ou posterior.


A ferramenta atualmente não suporta:
  • Aplicativos que exigem autenticação do Windows. (Atualmente, o AKS não suporta gMSA.)
  • Aplicativos que dependem de outros serviços do Windows hospedados fora dos Serviços de Informações da Internet.

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.

Depois que sua assinatura for configurada, você precisará de uma conta de usuário do Azure com:

  • Permissões de proprietário na assinatura do Azure.
  • Permissões para registar aplicações Microsoft Entra.

Se acabou de criar uma conta gratuita do Azure, é o proprietário da sua subscrição. 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, procure por "assinaturas". Em Serviços, selecione Subscrições:

    Screenshot that shows the search box for searching for an Azure subscription.

  2. Na página Assinaturas, selecione a assinatura na qual você deseja criar um projeto do Azure Migrate.

  3. Na assinatura, no painel esquerdo, selecione Controle de acesso (IAM).

  4. Na guia Verificar acesso, procure a conta de usuário relevante.

  5. Em Adicionar uma atribuição de função, selecione Adicionar:

    Screenshot that shows searching for a user account to check access and assign a role.

  6. Na página Adicionar atribuição de função, selecione a função Proprietário e, em seguida, selecione a conta (azmigrateuser no nosso exemplo). Em seguida, selecione Guardar.

    Screenshot that shows the Add role assignment page.

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

  7. No portal do Azure, vá para Configurações de Usuário de Usuários>do Microsoft Entra ID.>

  8. Em Configurações do usuário, verifique se os usuários do Microsoft Entra podem registrar aplicativos. (Esta opção está definida como Sim por padrão.)

    Screenshot that shows the User settings page.

  9. Se a opção Registos de aplicações estiver definida como Não, peça ao inquilino/administrador global para atribuir a permissão necessária. Como alternativa, o inquilino/administrador global pode atribuir a função de desenvolvedor de aplicativos a uma conta para permitir o registro de aplicativos do Microsoft Entra. Para obter mais informações, consulte Atribuir funções a usuários.

Baixe e instale a ferramenta Azure Migrate App Containerization

  1. Baixe o instalador do Azure Migrate App Containerization em uma máquina Windows.

  2. Abra 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 este comando:

    .\AppContainerizationInstaller.ps1
    

Nota

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

Abra a ferramenta de conteinerização de aplicativos

  1. Abra um navegador em qualquer máquina que possa se conectar à máquina Windows que está executando a ferramenta de conteinerização de aplicativos. Vá para o URL da ferramenta: https:// nome da máquina ou endereço IP: 44369.

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

  2. Se vir um aviso a indicar que a sua ligação não é privada, selecione Avançadas e continue para o Web site. Esse aviso aparece porque a interface da Web usa um certificado TLS/SSL autoassinado.

  3. Na tela de entrada, use a conta de administrador local da máquina para entrar.

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

  5. Na lista Serviço do Azure de destino, selecione Contêineres no Serviço de Aplicativo do Azure:

    Screenshot that shows the application type and target lists.

Preencha os pré-requisitos da ferramenta

  1. Aceite os termos da licença e leia as informações de terceiros.
  2. No aplicativo Web da ferramenta Configurar pré-requisitos, conclua estas etapas:
    • Conectividade. A ferramenta verifica se a máquina Windows tem acesso à Internet. Se a máquina usa um proxy:

      1. Selecione Configurar proxy para especificar o endereço proxy (no formato endereço IP ou FQDN) e a porta de escuta.

      2. Especifique as credenciais se o proxy precisar de autenticação.

      3. Se você adicionou detalhes de proxy ou desabilitou o proxy ou a autenticação, selecione Salvar para acionar a verificação de conectividade novamente.

      Apenas é suportado o proxy HTTP.

    • Instale atualizações. A ferramenta verifica automaticamente as atualizações mais recentes e instala-as. Você também pode instalar manualmente a versão mais recente da ferramenta.

    • Instale a ferramenta Microsoft Web Deploy. A ferramenta verifica se a ferramenta de Implantação da Web da Microsoft está instalada na máquina Windows que está executando a ferramenta Azure Migrate App Containerization.

    • Habilite a comunicação remota do PowerShell. A ferramenta solicita que você garanta que a comunicação remota do PowerShell esteja habilitada nos servidores de aplicativos que executam os ASP.NET aplicativos que você deseja colocar em contêineres.

Iniciar sessão no Azure

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

    Você precisa de um código de dispositivo para se autenticar com o Azure. Selecionar Entrar deve abrir uma janela que contém o código do dispositivo. Se a janela não aparecer, certifique-se de que desativou o bloqueador de pop-ups no navegador.

  2. Selecione Copiar código e Entrar para copiar o código do dispositivo e abrir um prompt de entrada do Azure em uma nova guia do navegador:

    Screenshot that shows the Device code for Azure Sign in window.

  3. Na nova guia, cole o código do dispositivo e conclua a entrada usando suas credenciais de conta do Azure. Depois de iniciar sessão, pode fechar o separador do browser e regressar à interface Web da ferramenta de contentorização de aplicações.

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

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

Descubra ASP.NET aplicações

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

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

    • As credenciais introduzidas devem ser de um administrador local (Windows) no servidor de aplicações.
    • 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 neste formato: <domínio\nome> de usuário.
    • Para contas locais (o usuário deve ser um administrador no servidor de aplicativos), prefixe o nome de usuário com o nome do host neste formato: <nome do host\nome> do usuário.
    • Você pode executar a descoberta de aplicativos para até cinco servidores de cada vez.
  2. Selecione Validar para verificar se o servidor de aplicativos está acessível a partir da máquina que executa a ferramenta e se as credenciais são válidas. Após a validação bem-sucedida, a coluna Status mostrará o status como Mapeado:

    Screenshot that shows the server status as Mapped.

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

  4. Quando a descoberta de aplicativos estiver concluída, selecione os aplicativos que você deseja colocar em contêineres:

    Screenshot that shows the discovered ASP.NET application.

  5. Especifique um nome para o contêiner de destino para cada aplicativo selecionado. Especifique o nome do contêiner 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 configurações de aplicativos

Parametrizar a configuração a torna disponível como um parâmetro de tempo de implantação. A parametrização permite que você defina uma configuração ao implantar o aplicativo, em vez de codificá-lo para um valor específico na imagem do 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 revisar as configurações detetadas.

  2. Selecione os parâmetros que deseja parametrizar e, em seguida, selecione Aplicar:

    Screenshot that shows the list of detected configurations.

Externalizar dependências do sistema de arquivos

Você pode adicionar outras pastas que seu aplicativo usa. Especifique se eles devem fazer parte da imagem do contêiner ou devem ser externalizados para o armazenamento persistente por meio do compartilhamento de arquivos do Azure. O uso de armazenamento persistente externo funciona muito bem para aplicativos com monitoração de estado que armazenam o estado fora do contêiner ou têm outro conteúdo estático armazenado no sistema de arquivos.

  1. Selecione Editar em Pastas de aplicativos para revisar as pastas de aplicativos detetadas. Essas pastas foram identificadas como artefatos obrigatórios necessários para o aplicativo. Eles serão copiados para a imagem do contêiner.

  2. Selecione Adicionar pasta e especifique os caminhos de pasta que deseja adicionar.

  3. Para adicionar várias pastas ao mesmo volume, separe os valores por vírgulas.

  4. Selecione Compartilhamento de arquivos do Azure como a opção de armazenamento se desejar que as pastas sejam armazenadas fora do contêiner no armazenamento persistente.

  5. Selecione Salvar depois de revisar as pastas do aplicativo:

    Screenshot that shows the Edit application folders window.

  6. Selecione Continuar para prosseguir para a fase de compilação da imagem do contêiner.

Criar imagem de contentor

  1. Na lista suspensa, selecione um registro de contêiner do Azure que será usado para criar e armazenar as imagens de contêiner para os aplicativos. Você pode usar um registro de contêiner existente do Azure ou criar um novo selecionando Criar novo registro:

    Screenshot that shows the Build images window.

    Nota

    Somente os registros de contêiner do Azure com a conta de usuário administrador habilitada são exibidos. A conta de usuário administrador é atualmente necessária para implantar uma imagem de um registro de contêiner do Azure no Serviço de Aplicativo do Azure. Para obter mais informações, consulte Autenticar com um registro de contêiner do Azure.

  2. Os Dockerfiles necessários para criar as imagens de contêiner para cada aplicativo selecionado são gerados no início da etapa de compilação. Selecione Revisão para revisar o Dockerfile. Você também pode adicionar 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. Selecione os aplicativos para os quais você deseja criar imagens e, em seguida, selecione Compilar. Selecionar Build iniciará a compilação da imagem do contêiner para cada aplicativo. A ferramenta monitora o status da compilação e permitirá que você continue para a próxima etapa quando a compilação terminar.

  4. Você pode monitorar o progresso da compilação selecionando Build in Progress na coluna de status. O link ficará ativo alguns minutos depois de acionar o processo de compilação.

  5. Após a conclusão da compilação, selecione Continuar para especificar as configurações de implantação:

    Screenshot that shows the Review link, the container image status, and the Build and Continue buttons.

Implantar o aplicativo em contêiner no Serviço de Aplicativo do Azure

Depois que a imagem do contêiner for criada, a próxima etapa será implantar o aplicativo como um contêiner no Serviço de Aplicativo do Azure.

  1. Selecione o plano do Serviço de Aplicativo do Azure que o aplicativo deve usar.

    Se você não tiver um plano do Serviço de Aplicativo ou quiser criar um novo plano do Serviço de Aplicativo para usar, poderá criar um selecionando Criar novo plano do Serviço de Aplicativo.

  2. Selecione Continuar depois de selecionar o plano do Serviço de Aplicativo.

  3. Se você parametrizou as configurações do aplicativo, especifique o armazenamento secreto a ser usado para o aplicativo. Você pode escolher as configurações do Azure Key Vault ou do aplicativo do Serviço de Aplicativo para gerenciar seus segredos de aplicativo. Para obter mais informações, consulte Configurar cadeias de conexão.

    • Se você selecionou as configurações do aplicativo do Serviço de Aplicativo para gerenciar seus segredos, selecione Continuar.
    • Se você quiser usar um cofre de chaves do Azure para gerenciar seus segredos de aplicativo, especifique o cofre de chaves que deseja usar.
      • Se você não tiver um cofre de chaves do Azure ou quiser criar um novo cofre de chaves, poderá criar um selecionando Criar novo Cofre de Chaves do Azure.
      • A ferramenta atribuirá automaticamente as permissões necessárias para gerenciar segredos através do cofre de chaves.
  4. Se você adicionou mais pastas e selecionou a opção de compartilhamento de arquivos do Azure para armazenamento persistente, especifique o compartilhamento de arquivos do Azure a ser usado pela ferramenta de Contêinerização de Aplicativos durante a implantação. A ferramenta copiará as pastas de aplicativos que você configurou para Arquivos do Azure e as montará no contêiner do aplicativo durante a implantação. 

    Se você não tiver um compartilhamento de arquivos do Azure ou quiser criar um novo compartilhamento de arquivos do Azure, poderá criar um selecionando Criar nova Conta de Armazenamento e compartilhamento de arquivos.

  5. Agora você precisa 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 fornecer estas personalizações:

    • Nome. Especifique um nome de aplicativo exclusivo para o aplicativo. Esse nome será usado para gerar a URL do aplicativo. Ele também será usado como um prefixo para outros recursos criados como parte da implantação.
    • Configuração da aplicação. Para todas as configurações de aplicativo parametrizadas, forneça os valores a serem usados para a implantação atual.
    • Configuração de armazenamento. Revise as informações de todas as pastas de aplicativos configuradas para armazenamento persistente.

    Screenshot that shows the deployment configuration.

  6. Depois de salvar a configuração de implantação para o aplicativo, a ferramenta gerará o YAML de implantação do Kubernetes para o aplicativo.

    • Selecione Revisão para revisar a configuração de implantação dos aplicativos.

    • Selecione os aplicativos que você deseja implantar.

    • Selecione Implantar para iniciar a implantação dos aplicativos selecionados.

      Screenshot that shows the Deploy button.

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

Resolução de problemas

Para solucionar problemas com a ferramenta de conteinerização de aplicativos, você pode examinar os arquivos de log na máquina Windows que está executando a ferramenta. Os arquivos de log da ferramenta estão localizados em C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs.

Próximos passos