Aceder a aplicações Web com o Assistente de Migração do Serviço de Aplicações do Azure

Concluído

Nesta unidade, analisamos os desafios potenciais que você pode encontrar ao migrar aplicativos Web hospedados localmente em seu próprio servidor em alto nível. Iremos fornecer contexto acerca dos tipos de dependências que as aplicações Web têm nos Serviços de Informação Internet (IIS) e do porquê de causarem problemas. Estas informações críticas de estrutura fornecem o contexto de que poderá precisar para compreender melhor a necessidade de uma avaliação.

Porquê mudar uma aplicação Web para o Serviço de Aplicações do Azure?

O Serviço de Aplicações do Azure é uma plataforma de alojamento totalmente gerida para as suas aplicações Web. Pode utilizá-lo para executar e dimensionar as suas aplicações Web com um esforço de configuração mínimo. A Microsoft gere a infraestrutura, as atualizações do sistema operativo, o balanceamento de carga e a lógica de aumento vertical/redução vertical, conforme necessário.

Você pode definir as configurações em uma interface de usuário simplificada e explorar o desempenho do aplicativo à medida que ele é executado, mas há pouco mais a fazer de sua parte. Isto faz do Serviço de Aplicações do Azure uma alternativa apelativa em comparação com executar as suas aplicações no seu próprio ambiente de servidor. No seu próprio ambiente de servidor, tem de lidar com os custos de hardware, configuração, instalação do sistema operativo, atualização e configuração, assim como a instalação de software do servidor, atualizações e configuração do mesmo e mais.

São várias as funcionalidades que potenciam o trabalho com o Serviço de Aplicações do Azure.

O recurso de dimensionamento automático permite que um administrador defina o número máximo de instâncias para as quais o aplicativo Web deve ter permissão para ser dimensionado e os limites de tráfego. Assim, a lógica de tomada de decisão do Serviço de Aplicações decide se deve aumentar ou reduzir verticalmente.

Os slots de implantação permitem que Operações ou DevOps implantem uma nova versão do aplicativo Web em um ambiente de teste ou preparo ao vivo, onde testes de integração manuais ou automatizados podem ser executados. Depois que a nova versão passar em todos os testes, as operações podem trocar os slots para mover o aplicativo em estágios para a produção. Se surgirem problemas após a implantação, as operações podem mais uma vez trocar os slots para mover a versão anterior de volta para a produção.

O diagnóstico do Serviço de Aplicações fornece uma interface interativa onde a resolução de problemas pode responder a algumas perguntas. A interface produz um relatório de diagnóstico completo e específico ao tipo de problema com que a aplicação se está a deparar. Além disso, ferramentas como verificação de integridade, Application Insights e Navigator (o diagrama de dependência interativo) ajudam você a entender onde estão os problemas.

O que é o Assistente de Migração do Serviço de Aplicações do Azure?

O Assistente de Migração do Serviço de Aplicações do Azure faz parte de um conjunto de aplicações mais abrangente que ajuda as organizações a efetuarem a transição para a cloud. O Assistente de Migração fornece uma experiência de utilizador guiada por um assistente que desempenha duas tarefas:

  1. Realiza uma avaliação de uma aplicação Web específica instalada no Windows Server. Avalia as dependências da aplicação Web para determinar se uma migração para o Serviço de Aplicações do Azure é ou não possível sem modificações na aplicação Web.
  2. Se a avaliação provar que a aplicação Web pode ser migrada, o Assistente de Migração realiza a migração. Você precisa conceder ao Assistente de Migração acesso à sua conta do Azure, selecionar qual grupo de recursos deseja usar e selecionar um nome para o aplicativo Web, entre outros detalhes.

Em alternativa, o Assistente de Migração do Serviço de Aplicações do Azure gera um modelo do Azure Resource Manager que pode utilizar para migrar a aplicação Web de uma forma mais automatizada e passível de repetição.

Porque é que devo fazer uma avaliação?

Em algumas organizações, as aplicações Web foram originalmente criadas com o pressuposto de que as aplicações teriam sempre acesso a funcionalidades do IIS de baixo nível. Por exemplo, alguns programadores desenvolveram funcionalidades como monitorização, registo e segurança sobrepostas a filtros ISAPI. Os filtros fornecem acesso a pedidos recebidos antes de serem transmitidos à aplicação ASP.NET. Também fornecem acesso a respostas enviadas geradas pela aplicação ASP.NET.

No entanto, uma das vantagens da utilização de uma oferta de plataforma como serviço (PaaS), como o Serviço de Aplicações do Azure, é o de ser o fornecedor de cloud (neste caso a Microsoft) a gerir o hardware e o software. Isto dá origem a uma poupança de tempo e de custos. Mas isso significa que seus aplicativos têm acesso a menos recursos de nível inferior do Windows Server e do IIS. Se as suas aplicações dependerem destas funcionalidades de nível inferior, poderá não conseguir tirar partido do Serviço de Aplicações do Azure sem modificações.

Que tipos de problemas é que a avaliação verifica?

O Assistente de Migração procura funcionalidades específicas de uma aplicação Web para garantir que o Serviço de Aplicações do Azure pode acomodar essa funcionalidade ou que o Assistente de Migração consegue migrá-la automaticamente. A seguinte tabela fornece algumas informações acerca das verificações feitas pelo Assistente de Migração:

Verificação da preparação Explicação
Enlaces de porta Uma vez que o Serviço de Aplicações do Azure só permite o tráfego Web padrão, esta verificação de preparação garante que a aplicação Web escuta apenas nas portas 80 (para tráfego HTTP) e 443 (para o tráfego HTTPS).
Protocolos Como o Serviço de Aplicações do Azure só funciona com protocolos HTTP e HTTPS, esta verificação de preparação garante que a aplicação Web processa apenas protocolos baseados em HTTP. Por exemplo, se seu aplicativo Web depender do Windows Communication Foundation, ele não passará 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ê.
Etiquetas de localização As etiquetas de localização permitem manter a configuração de todas as aplicações Web alojadas num servidor num único ficheiro, em vez de as manter alojadas em ficheiros web.config individuais para cada aplicação Web. As aplicações do Serviço de Aplicações do Azure utilizam um ficheiro IIS applicationhost.config pré‑configurado e não suportam a funcionalidade de etiquetas de localização. As configurações de cada aplicativo Web migrado devem ser movidas para arquivos web.config individuais. Esta verificação de preparação identifica a utilização de etiquetas de localização.
Filtros ISAPI O Serviço de Aplicações do Azure disponibiliza algum suporte para filtros ISAPI, mas depende da forma como o filtro ISAPI foi implementado. O Assistente de Migração não migra um aplicativo que depende de um filtro ISAPI. Primeiro, tem de remover o filtro ISAPI da sua aplicação, migrar e, em seguida, adicionar o filtro ISAPI manualmente no Serviço de Aplicações do Azure.
Conjuntos aplicacionais Uma vez que o Serviço de Aplicações do Azure suporta um conjunto aplicacional por aplicação, esta verificação de preparação garante que a sua aplicação Web depende apenas de um único conjunto aplicacional.
Identidade do conjunto aplicacional As aplicações do Serviço de Aplicações do Azure estão alojadas num processo de trabalho do IIS que é executado numa conta gerida pelo sistema e associada ao conjunto aplicacional. Esta também é a identidade predefinida utilizada por instalações do IIS no local. Esta verificação de preparação garante que a aplicação Web está configurada para ser executada na identidade predefinida.
Authentication type As aplicações do Serviço de Aplicações do Azure suportam um conjunto de tipos de autenticação diferente do das aplicações alojadas no IIS em execução no local. Esta verificação de preparação garante que uma aplicação Web está configurada para utilizar autenticação anónima. Após a migração, pode configurar manualmente o tipo de autenticação no Serviço de Aplicações Azure.
Definições da aplicação Esta verificação de preparação avisa-o das definições de aplicação personalizada no ficheiro web.config que devem ser transferidas para o Serviço de Aplicações do Azure>Configuração>Definições da aplicação.
Cadeias de ligação Esta verificação de preparação determina se as cadeias de ligação de base de dados armazenadas no ficheiro web.config estão a apontar para bases de dados no local. Em caso afirmativo, o Assistente de Migração dá-lhe a opção de configurar ligações híbridas.
Frameworks O Assistente de Migração apenas suporta ASP.NET e PHP. Se seu aplicativo usa uma estrutura diferente, você não pode executar a migração automática.
Erro de configuração O Assistente de Migração garante que sua instância do IIS local esteja configurada corretamente e não retorne um erro quando verificada. Esta verificação de preparação garante que não há problemas subjacentes com a aplicação Web antes da migração.
Diretórios virtuais O Serviço de Aplicações do Azure armazena todos os ficheiros numa estrutura de diretório corrigida. O Assistente de Migração move arquivos para os subdiretórios apropriados. No entanto, ele não pode migrar aplicativos com diretórios virtuais apoiados por compartilhamentos UNC.

As informações desta tabela foram resumidas a partir da wiki do Assistente de Migração do Serviço de Aplicações do Azure.

E se a avaliação encontrar um problema?

Se o Assistente de Migração do Serviço de Aplicações do Azure encontrar problemas quando avaliar a sua aplicação Web, pode:

  • Atualizar a aplicação para substituir funcionalidades que dependam de funcionalidades de extensibilidade de nível inferior do IIS. Esta tarefa pode ser relativamente simples, consoante a funcionalidade em questão. Por exemplo, pode substituir as funcionalidades de registo personalizado que dependiam de um filtro ISAPI pelo Azure Application Insights. O Application Insights precisa apenas que algumas linhas de código sejam adicionadas a uma aplicação e fornece uma infinidade de relatórios acionáveis.
  • Atualizar a aplicação ao desativar temporariamente a funcionalidade que está a bloquear a migração. O Assistente de Migração pode guiá-lo nesse processo.
  • Implementar a aplicação tal como está numa máquina virtual do Azure. Apesar de não obter os benefícios de utilizar o Serviço de Aplicações do Azure e de ser obrigado a manter o sistema operativo, deixaria de precisar de manter o hardware. Também teria um único ponto de gestão para todos os seus serviços Web.

A wiki do Assistente de Migração do Serviço de Aplicações do Azure contém potenciais passos de remediação para muitos dos problemas encontrados durante uma avaliação.

Recapitulação

Eis as conclusões mais importantes a retirar desta unidade:

  • O Assistente de Migração do Serviço de Aplicativo do Azure procura incompatibilidades entre seus aplicativos Web locais e o que é suportado no Serviço de Aplicativo do Azure. Se existir um problema, há normalmente uma forma de o corrigir (ou desativar a funcionalidade que está a causar o problema) no local. Em seguida, pode tentar utilizar novamente o Assistente de Migração.
  • Se não houver problemas de bloqueio, o Assistente de Migração migrará seu aplicativo Web para o Serviço de Aplicativo do Azure para você.