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
- 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).
*
- Abra a aba "Windows Azure Activity Log" no Visual Studio e clique na URL atribuída à aplicação.
- Certifique-se de que a aplicação está funcionando normalmente.
- Faça uma alteração qualquer em um dos arquivos da aplicação.
- 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").
- 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".
- Aguarde alguns segundos até que o Visual Studio exiba a mensagem "Publish succeeded".
- Verifique que a aplicação está atualizada.
- 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.
- 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
- Publishing a Windows Azure Application using the Windows Azure Tools
- Publish Windows Azure Application Wizard
- Using Web Deploy in Azure SDK 1.4.1
- Now Available: Windows Azure SDK 1.4 Refresh with Web Deploy Integration
- Enabling Web Deploy for Windows Azure Web Roles with Visual Studio
- Overview of Web Deploy
Autor
Fernando Correia
Blog: Pensando Azure
Twitter: @facorreia