Dentro de uma Web App do Azure, WebJobs permitem que codigos sejam executados em segundo plano. Por exemplo, se a aplicacao web tem um processo pesado, ao inves de roda-lo no contexto da Web App, podemos incluir um pedido de execucao em uma fila do Azure Storage e o WebJob, rodando de tempos em tempos, executaria essa rotina. Isso diminui a carga de trabalho e aumenta o tempo de resposta das requisicoes web.Um WebJob pode rodar desde um script, como JavaScript ou Python, a uma aplicacao do tipo console em .NET (um aplicativo do tipo linha de comando). Essa execucao pode ser continua, com este aplicativo rodando interruptamente; ou agendado, executando em um intervalo pre-configurado.Quando trabalhamos com nuvem, um aspecto importante e a agilidade em se implantar novas versoes, e para conseguir isso a automacao e um requisito essencial. Dentro da plataforma Microsoft, podemos utilizar as ferramentas de build e release do Visual Studio Team Services.Um WebJob criado com .NET Core sendo implantado via VSTS e o cenario que vou descrever neste post. Existem artigos que demonstram como fazer isso com situacoes diferentes, por exemplo, a automacao de implantacao de WebJobs criados com o Azure SDK, mas que nao e compativel hoje com o .NET Core (https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/#overview) ; ou a criacao de um WebJob com o .NET Core mas sem a explicacao de como automatizar seu deploy no VSTS (https://blog.kloud.com.au/2016/06/08/azure-webjobs-with-dotnet-core-rc2/). O que quero aqui e suprir esta lacuna.Vale citar que conforme as ferramentas e bibliotecas forem sendo atualizadas para suportar o .NET Core, e provavel que num futuro breve este procedimento que vou descrever nao seja o mais indicado. Mas ate la podemos fazer dessa maneira.Os fontesA solucao e composta por um projeto web, um projeto do tipo console application e um projeto do tipo library que compartilha codigo entre os demais projetos. Este terceiro nao e necessario, mas eu preferi faze-lo por conta de organizacao e reutilizacao de codigo.Este projeto esta hospedado em uma conta do Visual Studio Team Services, utilizando Git como repositorio de controle de fontes. Esta caracteristica tambem nao e necessaria, poderia ser utilizado o TFS.Configuracao do buildE nesta parte que esta o pulo do gato. Basicamente, o que eu faco apos a compilacao e publicacao de ambos os projetos e copiar os artefatos do WebJob para dentro da estrutura de pastas do web site. Dessa forma, quando o site for publicado, o WebJob vai junto. Isso porque o conteudo de um WebJob e armazenado dentro do proprio site, na pasta App_Data\jobs\{tipo}\{nome}, onde {tipo} refere-se a forma com que o WebJob sera executado (continuous para jobs que executam sem parar; triggered para jobs que executam agendados ou manualmente) e {nome} sendo a identificacao do job. E bem simples!Abaixo estao todos os passos que eu usei para o processo de compilacao e geracao de pacote para instalacao. Estou passando todos os detalhes deles inclusive com imagens, que e para ficar facil de configurar uma nova definicao de build.Restaurar pacotes via comando dotnet (Command Line task)Tool: dotnetArguments: restoreCompilar solucao XXX.sln via Visual StudioSolution: **\XXX.slnPlatform: $(BuildPlatform)Configuration: $(BuildConfiguration)Visual Studio Version: Visual Studio