Compartilhar via


Azure: Como Atualizar um Projeto por Web Deploy Usando Visual Studio (pt-BR)

Este artigo é um tutorial passo-a-passo do processo para atualização rápida de um projeto Web no Azure durante o seu desenvolvimento. Após concluir o tutorial, você terá uma instância no Windows Azure rapidamente atualizada com a última versão de seu projeto.

A atualização por Web Deploy é uma alternativa à atualização completa da implantação. O seu diferencial é levar apenas poucos segundos, em contraste com vários minutos do processo completo. A razão disto é que as mudanças são feitas diretamente na instância, sem criar e atualizar o pacote de implantação. O Web Deploy é rápido porque deixa de executar várias etapas do ciclo normal de atualização; isto, porém, acarreta em diversas limitações ao seu uso.

Pré-requisitos

Para executar este tutorial, você deverá ter:

Restrições

O método Web Deploy atualiza diretamente uma instância não-persistente de um Web Role. Por este motivo, apresenta as seguintes restrições:

  • Somente atualiza Web Roles.
  • Apenas uma instância por web role é suportada. Você não poderá ter várias instâncias em um web role, mas a aplicação poderá ter vários web roles, cada um com uma única instância.
  • As conexões de Remote Desktop devem estar habilitadas.
  • As mudanças feitas no Web Role são temporárias. Quando a instância for reiniciada, ela reverterá à versão original. Isto pode ocorrer a qualquer momento, caso o Fabric Controller necessite recriar a instância.
  • As tarefas de inicialização não serão executadas novamente após uma atualização por Web Deploy.
  • Só pode ser utilizado para desenvolvimento e testes. Não atende aplicações em produção.
  • Alguns tipos de mudança não são possíveis via Web Deploy, como adicionar novas funções (Roles), modificar tarefas de inicialização, alterar RoleEntryPoint ou mudar definições de serviço.

Processo

  1. Utilize o assistente de publicação de aplicação Azure para publicar uma aplicação Web com uma única instância de Web Role em ambiente de preparo. Certifique-se de ativar a caixa de verificação "Enable Web Deploy for all web roles".

*Nota: Em caso de dúvida sobre como publicar uma aplicação no Windows Azure utilizando o assistente, consulte o tutorial Windows Azure: Como Criar e Publicar um Projeto Usando Visual Studio (pt-BR).
*

  1. Abra a aba "Windows Azure Activity Log" no Visual Studio e clique na URL atribuída à aplicação.

  1. Certifique-se de que a aplicação está funcionando normalmente.

  1. Faça uma alteração qualquer em um dos arquivos da aplicação.

  1. Clique com o botão direito sobre o projeto Web (não o projeto Azure) e acione o comando "Publish" (não "Publish to Windows Azure").

  1. O Visual Studio irá exibir o diálogo "Publish Web". Digite o nome de usuário e a senha que você criou ao configurar o Remote Desktop no assistente de publicação e acione o botão "Publish".

  1. Aguarde alguns segundos até que o Visual Studio exiba a mensagem "Publish succeeded".

  1. Verifique que a aplicação está atualizada.

  1. No painel de gerenciamento do Windows Azure, localize a instância da aplicação, clique sobre ela e acione o botão "Reinicializar". Confirme a reinicialização da instância no diálogo que será apresentado.

  1. Aguarde alguns minutos até que a instância volte ao estado "Pronto". Em seguida atualize o website no navegador web e verifique que a aplicação reverteu para a versão da última publicação, descartando as atualizações feitas por Web Deploy.

Possíveis problemas

**Problema: **Web deployment task failed. Could not complete the request to remote agent URL.

Causa: Falha na comunicação de rede ou bloqueio por firewall.

Solução: Verifique se a comunicação de rede está funcionando e se a porta TCP de saída 8172 está liberada em todos os firewalls envolvidos.

Revisão

Neste tutorial você aprendeu:

  • como atualizar uma instância de um projeto Web no Windows Azure pelo método Web Deploy;
  • que este método de atualização é muito veloz e favorece o ciclo de desenvolvimento, eliminando pausas de vários minutos a cada atualização;
  • que o Web Deploy possui várias limitações e não é indicado para ambientes de produção, ou para ambientes de preparo que serão promovidos à produção. 

Referências

Autor

Fernando Correia
Blog: Pensando Azure
Twitter: @facorreia