Avaliar um aplicativo Web com o Migration Assistant do Serviço de Aplicativo do Azure

Concluído

Nesta unidade, examinaremos os possíveis desafios que você pode encontrar ao migrar aplicativos Web hospedados localmente no próprio servidor em um alto nível. Forneceremos contexto sobre os tipos de dependências que os aplicativos da Web têm sobre os recursos do IIS (Serviços de Informações da Internet) e por que isso causa um problema. Essas informações críticas básicas fornecem o contexto de que talvez você precise para entender melhor a necessidade de uma avaliação.

Por que mover um aplicativo Web para o Serviço de Aplicativo do Azure?

O Serviço de Aplicativo do Azure é uma plataforma totalmente gerenciada dos seus aplicativos Web. Você pode usá-lo para executar e dimensionar seus aplicativos Web com a configuração mínima. A Microsoft gerencia a infraestrutura, as atualizações do sistema operacional, o balanceamento de carga e a lógica de escala/redução vertical, conforme necessário.

Você pode definir as configurações em uma interface do usuário simplificada e explorar o desempenho do aplicativo à medida que ele é executado, mas há relativamente um pouco mais a fazer da sua parte. Isso torna o Serviço de Aplicativo do Azure uma alternativa atraente para executar seus aplicativos no próprio ambiente de servidor. Nele, você deve lidar com os custos de hardware, a instalação, a instalação do sistema operacional, a atualização e a configuração, a instalação do software para servidores, as atualizações e a configuração e muito mais.

Vários recursos tornam o trabalho com o Serviço de Aplicativo do Azure eficiente.

O recurso de dimensionamento automático permite que um administrador defina o número máximo de instâncias que o aplicativo Web deve ter permissão para dimensionar e os limites de tráfego. Então, a lógica de tomada de decisão do Serviço de Aplicativo decide se é necessário aumentar ou diminuir.

Os slots de implantação permitem que os setores de operações ou de DevOps implantem uma nova versão do aplicativo Web em um ambiente de teste ou de preparo ativo, em que podem ser executados testes de integração manual ou automatizados. Depois que a nova versão for aprovada em todos os testes, as operações poderão trocar os slots para mover o aplicativo preparado para produção. Caso surjam problemas após a implantação, o setor de operações poderá novamente trocar os slots para mover a versão anterior de volta para a produção.

O diagnóstico do Serviço de Aplicativo fornece uma interface interativa em que a solução de problemas pode responder algumas perguntas. A interface produz um relatório de diagnóstico completo específico do tipo de problema que seu aplicativo está encontrando. Além disso, ferramentas como verificação de integridade, Application Insights e Navegador (o diagrama de dependência interativa) ajudam você a entender em que lugar estão os problemas.

O que é o Migration Assistant do Serviço de Aplicativo do Azure?

O Migration Assistant do Serviço de Aplicativo do Azure faz parte de um conjunto maior de aplicativos que ajudam as organizações na transição para a nuvem. O Migration Assistant fornece uma experiência de usuário com assistente guiado que executa duas tarefas:

  1. Uma avaliação de um aplicativo Web específico instalado no Windows Server. Uma avaliação das dependências do aplicativo Web para determinar se uma migração para o Serviço de Aplicativo do Azure é possível sem modificações no aplicativo Web.
  2. Se a avaliação comprovar que o aplicativo Web pode ser migrado, o Migration Assistant executará a migração. Você precisa dar ao Assistente de Migração acesso à sua conta do Azure, selecionar o grupo de recursos que deseja usar e selecionar um nome para o aplicativo Web, entre outros detalhes.

Como alternativa, o Migration Assistant do Serviço de Aplicativo do Azure gera um modelo do Azure Resource Manager que você pode usar para migrar o aplicativo Web de maneira mais automatizada e repetível.

Por que executar uma avaliação?

Em algumas organizações, os aplicativos Web foram criados originalmente com a suposição de que o aplicativo sempre teria acesso a recursos de baixo nível do IIS. Por exemplo, alguns desenvolvedores criavam recursos como monitoramento, registro em log e segurança com base em filtros ISAPI. Os filtros forneciam acesso a solicitações de entrada antes de elas serem passadas para o aplicativo ASP.NET. Eles também forneciam acesso a respostas de saída que o aplicativo ASP.NET gerava.

No entanto, um dos benefícios de usar uma oferta de PaaS (plataforma como serviço) como o Serviço de Aplicativo do Azure é que o provedor de nuvem (a Microsoft, nesse caso) gerencia o hardware e o software para que você não precise fazer isso. E essa é a origem das economias de custo e de tempo. Contudo, isso significa que seus aplicativos têm acesso a menos recursos de nível inferior do Windows Server e do IIS. Se os seus aplicativos dependem desses recursos de nível inferior, talvez você não possa aproveitar o Serviço de Aplicativo do Azure sem modificações.

Que tipos de problemas a avaliação verifica?

O Migration Assistant procura recursos específicos de um aplicativo Web para verificar se o Serviço de Aplicativo do Azure pode acomodar esse recurso ou se o Migration Assistant pode migrar automaticamente esse recurso. A seguinte tabela fornece informações sobre as verificações que o Migration Assistant faz:

Verificação de preparação Explicação
Associações de portas Como o Serviço de Aplicativo do Azure só permite o tráfego da Web padrão, essa verificação de preparação verifica se o aplicativo Web só escuta nas portas 80 (para tráfego HTTP) e 443 (para tráfego HTTPS).
Protocolos Como o Serviço de Aplicativo do Azure funciona apenas com os protocolos HTTP e HTTPS, essa verificação de preparação verifica se o aplicativo Web manipula apenas protocolos baseados em HTTP. Por exemplo, se o aplicativo Web depender do Windows Communication Foundation, ele não será aprovado nessa verificação de preparação.
Certificados O Serviço de Aplicativo do Azure pode lidar com certificados de segurança, mas essa verificação de preparação avisa que o Assistente de Migração não migra o certificado automaticamente para você.
Marcas de localização As marcas de localização permitem manter a configuração de todos os aplicativos Web hospedados em um servidor em um arquivo, em vez de serem hospedados em arquivos web.config individuais para cada aplicativo Web. Os aplicativos do Serviço de Aplicativo do Azure usam um arquivo applicationhost.config do IIS pré-configurado e não dão suporte ao recurso de marcas de localização. As configurações de cada aplicativo Web que você migra devem ser movidas para arquivos web.config individuais. Essa verificação de preparação identifica o uso de marcas de localização.
Filtros ISAPI O Serviço de Aplicativo do Azure fornece suporte para filtros ISAPI, mas depende de como o filtro ISAPI foi implementado. O Assistente de Migração não migra um aplicativo que depende de um filtro ISAPI. Primeiro, você deve remover o filtro ISAPI do aplicativo, migrar e adicionar o filtro ISAPI manualmente ao Serviço de Aplicativo do Azure.
Pools de aplicativos Como o Serviço de Aplicativo do Azure dá suporte a um pool de aplicativos por aplicativo, essa verificação de preparação verifica se seu aplicativo Web depende apenas de um pool de aplicativos.
Identidade do pool de aplicativos Os aplicativos do Serviço de Aplicativo do Azure são hospedados em um processo de trabalho do IIS executado em uma conta gerenciada pelo sistema associada ao pool de aplicativos. Essa também é a identidade padrão usada pelas instalações locais do IIS. Essa verificação de preparação verifica se o aplicativo Web está configurado para ser executado na identidade padrão.
Tipo de autenticação Os aplicativos do Serviço de Aplicativo do Azure dão suporte a um conjunto diferente de tipos de autenticação do que aplicativos hospedados no IIS em execução no local. Essa verificação de preparação verifica se um aplicativo Web está configurado para usar a autenticação anônima. Após a migração, você poderá configurar manualmente o tipo de autenticação no Serviço de Aplicativo do Azure.
Configurações do aplicativo Essa verificação de preparação avisa sobre as configurações personalizadas do aplicativo no arquivo web.config que devem ser movidas para o Serviço de Aplicativo do Azure>Configuração>Configurações do aplicativo.
Cadeias de conexão Essa verificação de preparação determina se as cadeias de conexão de banco de dados armazenadas no arquivo web.config estão apontando para bancos de dados locais. Nesse caso, o Assistente de Migração dá a opção de configurar conexões híbridas.
Estruturas O Migration Assistant dá suporte apenas a ASP.NET e PHP. Se o seu aplicativo usar uma estrutura diferente, você não pode executar a migração automática.
Erro de configuração O Assistente de Migração verifica se a instância do IIS local está configurada corretamente e não retorna um erro quando examinada. Essa verificação de preparação verifica se não há nenhum problema subjacente com o aplicativo Web antes da migração.
Diretórios virtuais O Serviço de Aplicativo do Azure armazena todos os arquivos em uma estrutura de diretório fixa. O Assistente de Migração move os arquivos para os subdiretórios apropriados. Porém, ele não pode migrar aplicativos com diretórios virtuais que têm o suporte de compartilhamentos UNC.

As informações desta tabela foram resumidas no wiki Migration Assistant do Serviço de Aplicativo do Azure.

E se a avaliação encontrar um problema?

Se o Migration Assistant do Serviço de Aplicativo do Azure encontrar problemas ao avaliar seu aplicativo Web, você poderá:

  • Atualizar o aplicativo para substituir os recursos que dependem de recursos de extensibilidade de nível inferior do IIS. Essa tarefa pode ser relativamente simples, dependendo da funcionalidade em questão. Por exemplo, você pode substituir os recursos de log personalizados que eram dependentes de um filtro ISAPI com o Azure Application Insights. O Application Insights exige a adição de apenas algumas linhas de código a um aplicativo e oferece uma infinidade de relatórios acionáveis.
  • Atualizar o aplicativo desabilitando temporariamente o recurso que está bloqueando a migração. O Migration Assistant pode orientar você a fazer isso.
  • Implantar o aplicativo "no estado em que se encontra" em uma máquina virtual do Azure. Embora você não obtenha os benefícios de usar o Serviço de Aplicativo do Azure e seja necessário fazer a manutenção do sistema operacional, você não precisará mais fazer a manutenção do hardware. Você também teria um ponto de gerenciamento para todos os serviços Web.

O wiki Migration Assistant do Serviço de Aplicativo do Azure contém possíveis etapas de correção para muitos dos problemas encontrados durante uma avaliação.

Recapitulação

Aqui estão as principais novidades desta unidade:

  • O Assistente de Migração do Serviço de Aplicativo do Azure procura incompatibilidades entre seus aplicativos Web locais e o que tem suporte no Serviço de Aplicativo do Azure. Se houver um problema, geralmente haverá uma forma de corrigir (ou desabilitar o recurso que está causando) o problema local. Em seguida, você pode tentar novamente o Migration Assistant.
  • Se não houver nenhum problema de bloqueio, o Assistente de Migração migra seu aplicativo Web para o Serviço de Aplicativo do Azure para você.