Facilitando o deploy de Web Roles no Windows Azure através do Web Deploy

Olá pessoal,

Algumas pessoas tem me perguntado como facilitar o deploy de uma aplicação web com cloud services, ou seja, hospedadas em web roles. Geralmente o contexto está na linha: “fiz uma alteração de layout e quero testar rapidamente no meu ambiente de desenvolvimento no Windows Azure, fazer o deploy da aplicação demora muito, como posso acelerar as coisas?”.

A resposta é simples, utilizando uma ferramenta que o próprio Windows Server já oferece, o Web Deploy.

ATENÇÃO: Já escrevo isso antecipadamente, esta técnica somente é recomendada para ambientes de desenvolvimento. Isso ocorre por que somente uma instância web role está executando, para cumprir o SLA da plataforma é necessário ter duas instâncias no ar.

O primeiro passo é fazer o deploy da aplicação via Visual Studio, conforme imagem abaixo:

image

Em seguida, habilite a opção de Web Deploy, vai ser necessário habilitar Remote Desktop também:

image 

Depois disso, se vc quiser testar alguma alteração na sua aplicação web, é só executar o processo de deploy do projeto ASP.NET (não do projeto Windows Azure):

image

Forneça a credencial de remote desktop que foi configurada anteriormente e finalize o processo de publicação, que vai acontecer rapidamente:

image

Lembretes:

  • Para utilizar esta técnica é necessário utilizar somente uma instância da sua web role. Se vc usar mais de uma, os deployments ficarão fora de sincronismo, e com somente uma web role não existiria a quantidade mínima de máquinas para o SLA ser cumprido.
  • O deployment não é persistente, se vc escalar seu ambiente as novas máquinas irão subir conforme tendo como base o pacote inicialmente enviado. O mesmo ocorre se eventualmente a máquina reciclar.
  • Com este tipo de técnica não é possível testar startup tasks, pois elas são executadas quando as máquinas são ligadas, nem a escalabilidade do ambiente.

 

Existem outras técnicas para acelerar o deployment de roles, mas vou comentar em outros posts.

 

Abraços,
RG