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:
Em seguida, habilite a opção de Web Deploy, vai ser necessário habilitar Remote Desktop também:
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):
Forneça a credencial de remote desktop que foi configurada anteriormente e finalize o processo de publicação, que vai acontecer rapidamente:
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