Microsoft Azure: Implantação de Web Apps via Git Local
O objetivo deste artigo é descrever como efetuar o deploy e uma aplicação web no Microsoft Azure utilizando o Git a partir de um repositório local.
Introdução
O serviço de aplicações web da plataforma de nuvem da Microsoft, o Azure Web Apps, conta com funcionalidades que simplificam o deploy e fazem com que esse processo seja melhor adaptado às ferramentas e fluxo de trabalho do desenvolvedor.
Diferente de hospedagens simples, onde a publicação dos sites é feita geralmente através de um cliente de FTP ou pelo upload de arquivos em um painel administrativo, no Microsoft Azure essa etapa (que normalmente representa a disponibilização da aplicação para o cliente final) pode ser realizada com o auxílio de sistemas de controle de versão, como Git, TFS e Mercurial, e repositórios bastante comuns como GitHub, BitBucket, DropBox e CodePlex.
Aqui veremos como implantar uma aplicação web na nuvem utilizando o método Git Local, onde temos um repositório local do Git e um remoto no Azure, onde ficam os arquivos finais. Ao utilizar esse método, podemos ter ainda outro repositório remoto no GitHub, BitBucket ou Visual Studio Team Services, por exemplo, que dependendo do fluxo de trabalho da equipe pode continuar sendo utilizado para integração dos trabalhos individuais, revisão de código, controle de issues, etc.
Configurando a Web App
Para configurar a aplicação, primeiramente devemos acessar suas configurações no portal do Azure e ir até a opção Implantação Contínua, como na imagem a seguir.
Em seguida devemos clicar na opção Definir configurações necessárias em Escolher Código-Fonte e então selecionar Repositório Local do Git, como ilustrado abaixo.
Feito isso, no bloco principal contendo as configurações da aplicação teremos agora a propriedade URL de clone de Git, como vemos abaixo. Devemos copiar esse endereço, que representa o repositório remoto para onde enviaremos os arquivos locais a seguir.
Se for a primeira vez que você configura a implantação contínua de uma aplicação, será necessário configurar as credenciais para esse processo, o que pode ser feito clicando na opção Credenciais de implantação, que pode ser vista na imagem acima, logo após o item Implantação contínua. Insira então um login e senha que serão requisitados posteriormente ao realizar a implantação.
Configurando o repositório local
Nota: aqui consideraremos que o Git já está instalado na máquina de onde será feita a implantação, no entanto, caso ainda não o tenha instalado, é possível obtê-lo no site oficial: https://git-scm.com/.
Para este exemplo utilizaremos uma aplicação ASP.NET 5 cuja estrutura inicial será criada através do Yeoman, mas qualquer tipo de projeto, desde que suportado na plataforma, pode ser utilizado. Então, basicamente executaremos o comando abaixo no Prompt de Comandos do Windows (o mesmo poderia ser feito no terminal do Linux, por exemplo) para geração da aplicação e selecionaremos o template Web Application Basic (without Membership and Authorization), como mostra a imagem na sequência.
yo aspnet
Com a aplicação criada, acessaremos a pasta gerada ainda no console usando o comando CD:
cd NomeDaPasta
Aqui precisaremos ainda executar o seguinte comando para restaurar os pacotes necessários à execução da aplicação, porém esse é um passo que se aplica apenas a projetos ASP.NET 5 e não está diretamente ligado ao processo de implantação.
dnu restore
Agora, com todos os arquivos gerados, devemos iniciar um novo repositório do Git nessa pasta, para isso, basta utilizar o comando INIT, como a seguir:
git init
Isso deve retornar a mensagem Initialized a new Git repository in <pasta>. Agora devemos adicionar o repositório remoto criado no Azure, para isso devemos executar o comando ADD REMOTE e passar o endereço que copiamos no portal:
git remote add azure <endereço do repositório do Azure>
Com isso o repositório já está configurado e podemos realizar a primeira implantação.
Nota: Caso esteja utilizando outro repositório remoto como principal, ele deverá ser adicionado com o mesmo comando acima, alterando apenas o termo azure para origin.
Realizando a implantação
Uma vez que todos os arquivos estão prontos para serem enviados para o repositório remoto, podemos adicioná-los com o comando abaixo e em seguida efetuar o primeiro commit, cujo comando é apresentado logo em seguida.
git add –all
git commit -m “Primeiro commit”
Feito isso, basta agora efetuar o PUSH para enviar o commit:
git push azure master
Neste comando estamos informando o repositório para o qual desejamos enviar o commit (azure) e a branch na qual estamos trabalhando (master).
Para concluir o processo, insira as credenciais solicitadas (as que foram configuradas no Azure) e pressione Enter. Você verá na tela algumas mensagens sobre o andamento do processo, que inclui a instalação do ambiente e suas dependências. No final, já podemos acessar o URL da aplicação e vê-la no ar:
Quando forem realizadas alterações e o código estiver apto a ser enviado, basta efetuar o mesmo procedimento (add, commit, push) novamente.
Com essa possibilidade, o procedimento de implantação é bastante simplificado e melhor se encaixa no fluxo de trabalho do desenvolvedor, que normalmente precisa atualizar seus repositórios ao finalizar o trabalho e, em muitos casos, utiliza apenas linhas de comando para isso (apesar de o mesmo poder ser feito com o auxílio de ferramentas como o Visual Studio). Além disso, esse processo é o mesmo em qualquer plataforma onde precise ser executado.