Modernizar aplicações Web ASP.NET para o Azure Kubernetes Service (pré-visualização)

Este artigo mostra como migrar ASP.NET aplicativos Web em escala para o Serviço Kubernetes do Azure usando o Azure Migrate. Atualmente, esse fluxo só suporta ASP.NET aplicativos Web executados no VMware. Para outros ambientes, siga estas etapas.

Nota

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 sempre que possível e não mostram todas as configurações e caminhos possíveis.

Neste tutorial, irá aprender a:

  • Escolha e prepare ASP.NET aplicativos Web em escala para migração para o Serviço Kubernetes do Azure usando o fluxo integrado no Azure Migrate.
  • Configure as configurações de destino, como o número de instâncias de aplicativos para executar e replicar seus aplicativos.
  • Execute migrações de teste para garantir que seus aplicativos girem corretamente.
  • Execute uma migração completa de seus aplicativos para o AKS.

Pré-requisitos

Antes de começar este tutorial, você deve abordar o seguinte:

Limitações

  • Pode migrar aplicações ASP.NET com o Microsoft .NET framework 3.5 ou posterior.
  • Você pode migrar 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).
  • As aplicações devem estar em execução nos Serviços de Informação Internet (IIS) 7.5 ou posterior.

Ativar a replicação

Depois que os aplicativos Web forem avaliados, você poderá migrá-los usando o fluxo de migração integrado no Azure Migrate. A primeira etapa desse processo é configurar e iniciar a replicação de seus aplicativos Web.

Especificar intenção

  1. Navegue até o Azure Migrar servidor de projeto>, bancos de dados e aplicativos>Web Ferramentas>de migração Migração e modernização, selecione Replicar.

    Captura de ecrã a mostrar a opção Replicar selecionada.

  2. Na guia Especificar intenção, >O que você deseja migrar?, selecione ASP.NET aplicativos Web na lista suspensa.

  3. Em Para onde pretende migrar? , selecioneAzure Kubernetes Service (AKS) .

  4. Em tipo de Virtualização, selecione VMware vSphere.

  5. No dispositivo local, escolha o dispositivo que descobriu seus aplicativos Web desejados no vSphere.

  6. Selecione Continuar.

    Captura de ecrã a mostrar o separador de especificar intenção.

Escolha entre aplicações detetadas

Em Replicar>aplicativos Web, você pode ver uma lista de aplicativos ASP.NET descobertos em seu ambiente.

Captura de ecrã do separador Aplicações Web no separador Replicar.

  1. Escolha uma ou mais aplicações que devem ser replicadas.

  2. A coluna Status da modernização indica a prontidão do aplicativo para ser executado no AKS. Isso pode levar um dos seguintes valores - Ready, Error( s), Replication in Progress.

  3. Selecione o aplicativo e selecione o link Configurações do aplicativo para abrir a guia Configurações do aplicativo. Isso fornece a lista de atributos detetados a partir dos arquivos de configuração descobertos. Insira os valores de atributo necessários e selecione Salvar. Estas configurações serão armazenadas diretamente no cluster de destino como segredos ou podem ser montadas com o Azure Key Vault. Isto pode ser configurado nas definições avançadas.

    Captura de ecrã do separador de Configurações da aplicação.

  4. Selecione a aplicação e selecione a ligação Diretórios de aplicações para abrir o separador Diretórios de aplicações. Indique o caminho para pastas/ficheiros que precisam de ser copiados para que a aplicação seja executada e selecione Guardar. Com base na opção selecionada no menu pendente, estes artefactos são copiados diretamente para a imagem de contentor ou montados como um volume persistente no cluster através da partilha de ficheiros do Azure. Se for escolhido um volume persistente, o destino pode ser configurado nas definições avançadas.

    Captura de ecrã do separador Diretórios de aplicações.

  5. Para os aplicativos que usam a autenticação do Windows, indicada pelo tipo de autenticação, você pode configurar o gMSA V2 no cluster AKS de destino.

    Captura de ecrã do separador de configuração gMSA.

    Definição Comentários
    Nome da conta Nome da conta gMSA a ser usada. Se a conta não existir, uma nova conta com esse nome será criada automaticamente.
    Nome de utilizador da conta Nome de usuário do usuário de domínio padrão autorizado a acessar o gMSA configurado em seu controlador de domínio. Se o nome de usuário fornecido não existir, um novo usuário de domínio padrão será criado automaticamente.
    Palavra-passe da conta Senha do usuário acima.
    Servidor DNS de domínio Endereço IP do servidor DNS que pode resolver o seu nome de domínio do Ative Directory.
    FQDN do domínio Nome de domínio totalmente qualificado do seu domínio do Ative Directory.
    Endereço do controlador de domínio Endereço IP do Controlador de Domínio Ative Directory. A conexão é estabelecida para permitir remotamente que o usuário do domínio especificado recupere credenciais para o gMSA especificado.
    Nome de utilizador do administrador do domínio Nome de usuário de um usuário que tem privilégios suficientes para validar remotamente a conta gMSA e o usuário do domínio.
    Palavra-passe de administrador do domínio Senha para o usuário administrador acima.
  6. Selecione Seguinte.

Nota

O caminho de origem e o valor do atributo de Configurações de aplicativo e diretórios de aplicativo juntos devem ter menos de 3000 caracteres de comprimento. Isso pode ser traduzido aproximadamente para cerca de 15 entradas (incluindo configurações e diretórios) de comprimento de caracteres de cerca de 200 cada.

Configurar definições de destino

Nas configurações de Replicar>destino, você pode configurar o destino para o qual os aplicativos serão migrados.

Captura de ecrã do separador Definições de destino no separador Replicar.

  1. Escolha a assinatura, o grupo de recursos e o recurso de registro de contêiner para o qual as imagens de contêiner do aplicativo devem ser enviadas.
  2. Escolha a subscrição, o grupo de recursos e o recurso de cluster do AKS no qual a aplicação deve ser implementada.
  3. Selecione Seguinte.

Nota

Apenas clusters AKS com nós do Windows são listados.

Configurar definições da implementação

Em Configurações de implantação replicada>, você pode configurar o aplicativo no cluster AKS.

Captura de ecrã do separador Definições de implementação no separador Replicar.

  1. Os valores predefinidos são fornecidos com base na deteção de aplicações.
  2. Na opção Réplica, selecione o número de instâncias de aplicação para cada aplicação.
  3. Na opção Balanceador de carga, selecione Externo se a aplicação precisar de ser acedida através da Internet. Se for escolhido Interno, a aplicação só pode ser acedida na rede virtual do cluster do AKS.
  4. Selecione Seguinte.

Configurar definições avançadas

Se uma ou mais aplicações tinham configurações de aplicações ou diretórios atualizados em Replicar>aplicações Web, então a opção Replicar>Avançadas é utilizada para fornecer configurações necessárias adicionais.

Captura de ecrã do separador Definições avançadas no separador Replicar.

  1. Se as configurações de aplicativo foram fornecidas, escolha armazená-las como segredos nativos do Kubernetes ou no Cofre de Chaves do Azure usando o driver CSI de armazenamento de segredos. Verifique se o cluster de destino tem o complemento do driver de armazenamento de segredos habilitado.
  2. Se foram fornecidos diretórios de aplicações com uma opção de armazenamento persistente, selecione uma partilha de ficheiros do Azure para armazenar estes ficheiros.
  3. Selecione Seguinte.

Rever e iniciar a replicação

Reveja as suas seleções e efetue quaisquer outras alterações necessárias ao navegar para o separador direito no separador Replicar. Depois de rever, selecione Replicar.

Captura de ecrã a mostrar o separador Rever + iniciar replicação no separador Replicar.

Prepare para a migração

Depois de iniciar a replicação, o Azure Migrate cria um trabalho de replicação que pode ser acessado a partir do seu projeto.

  1. Navegue até o Azure Migrar projeto >Servidores, bancos de dados e aplicativos>Web Ferramentas>de migração Migração e modernização, selecione Visão geral.

    Captura de ecrã a mostrar a opção Descrição geral selecionada.

  2. Selecione Azure Migrate: Server Migration hub >Modernization (Preview)>Jobs.

    Captura de ecrã a mostrar o separador Tarefas no hub de migração.

  3. Selecione Azure Kubernetes Service (AKS) como o destino de replicação. O Azure Migrate criará uma tarefa de replicação para cada aplicação ASP.NET replicada. Selecione Criar ou atualizar o trabalho de implantação de carga de trabalho do tipo Implantação de carga de trabalho.

    Captura de ecrã a mostrar a seleção das tarefas de replicação.

  4. Selecione o recurso de destino . Todos os passos de pré-migração podem ser configurados aqui.

    Captura de ecrã a mostrar a seleção do recurso de destino na tarefa de replicação.

  5. Após a conclusão da replicação, o status da replicação será Concluído e o status geral será Construção de imagem pendente.

Reveja a imagem de contentor e os manifestos do Kubernetes

No separador Definições de destino, serão fornecidas ligações para o ficheiro do Docker e os manifestos do Kubernetes.

Captura de ecrã das definições de destino no recurso de destino.

  1. Selecione o link de revisão do arquivo Docker para abrir o editor. Reveja e faça as alterações conforme necessário. Selecione Guardar.

    Captura de ecrã do editor de ficheiros do Docker nas definições de destino.

  2. Selecione o link Revisão de especificações de implantação para abrir o editor. Ele contém o arquivo de manifesto do Kubernetes contendo todos os recursos que serão implantados, incluindo StatefulSet, Service, ServiceAccount etc. Revise e faça alterações conforme necessário. Selecione Guardar.

    Captura de ecrã do editor de ficheiros de manifesto do Kubernetes nas definições de destino.

  3. Na guia Visão geral, selecione Criar imagem de contêiner para criar e enviar a imagem de contêiner para o registro de contêiner fornecido.

  4. Depois que a imagem for criada, o status geral mudará para Pronto para migrar.

    Captura de ecrã da imagem de contentor após compilação do recurso de Destino.

Executar uma migração de teste

Com a imagem de contentor pronta, execute uma migração de teste para garantir que a sua aplicação corre corretamente no AKS.

  1. No separador Descrição geral, selecione Testar migração e, em seguida, selecione Sim para confirmar.
  2. Assim que a migração de teste estiver concluída, verifique se as cargas de trabalho estão em execução no cluster do AKS. Se a opção de balanceador de carga externo tiver sido escolhida durante o processo de replicação, seu aplicativo deverá ser exposto à Internet por meio de um serviço do tipo loadbalancer com um endereço IP público atribuído.
  3. Depois de verificar se o aplicativo está funcionando, limpe a migração de teste selecionando Limpar migração de teste.

Se a migração de teste falhar:

  1. Navegue até Azure Migrate: Server Migration hub> Modernization (Preview)>Jobs.

  2. Selecione o trabalho Iniciar migração de teste que falhou.

    Captura de ecrã a mostrar a tarefa de migração de teste falhada.

  3. Selecione a ligação de tarefa falhada para ver possíveis causas de falha e recomendações.

    Captura de ecrã a mostrar a tarefa de migração de teste falhada.

Migre as suas aplicações para o AKS

A aplicação está finalmente pronta para a migração:

  1. No separador Descrição geral, selecione Migrar e, em seguida, selecione Sim para confirmar.

    Captura de ecrã do recurso de destino pronto para migração.

  2. De forma semelhante ao fluxo de trabalho de migração de teste, verifique se as cargas de trabalho estão em execução no cluster do AKS.

  3. A aplicação foi agora migrada com êxito. Se desejar que o appliance o descubra novamente e o disponibilize para migração, selecione Concluir migração.

Próximos passos

Depois de migrar com sucesso seus aplicativos para o AKS, você pode explorar os seguintes artigos para otimizar seus aplicativos para a nuvem: