Usar o DevTest Labs no build do Azure Pipelines e em pipelines de lançamento

Este artigo fornece informações sobre como o DevTest Labs pode ser usado em pipelines de build e de lançamento do Azure Pipelines.

Fluxo geral

O fluxo básico é ter um pipeline de build que faça as seguintes tarefas:

  1. Crie o código do aplicativo.
  2. Crie o ambiente base no DevTest Labs.
  3. Atualize o ambiente com informações personalizadas.
  4. Implantar o aplicativo no ambiente do DevTest Labs
  5. Teste o código.

Quando a compilação termina, o pipeline de lançamento usa os artefatos de compilação para implantar o preparo ou a produção.

Uma das premissas necessárias é que todas as informações necessárias para recriar o ecossistema testado estejam disponíveis nos artefatos de build, incluindo a configuração dos recursos do Azure. Como os recursos do Azure geram custos quando utilizados, as empresas desejam controlar ou monitorar o uso desses recursos. Em algumas situações, Azure Resource Manager modelos usados para criar e configurar os recursos podem ser gerenciados por outro departamento, como TI. E esses modelos podem ser armazenados em um repositório diferente. Isso leva a uma situação interessante ao criar e testar um build. O código e a configuração devem ser armazenados dentro dos artefatos de build para recriar o sistema em produção.

Usando o DevTest Labs durante a fase de build e teste, você pode adicionar modelos Azure Resource Manager e arquivos de suporte às fontes de build. Durante a fase de lançamento, você implanta a configuração exata usada no teste para produção. A tarefa Criar Ambiente do Azure DevTest Labs com a configuração adequada salva os modelos do Resource Manager nos artefatos de compilação. Para este exemplo, você usa o código do Tutorial: Criar um aplicativo Web .NET Core e banco de dados SQL em Serviço de Aplicativo do Azure, para implantar e testar o aplicativo Web em Azure.

Diagrama que mostra o fluxo geral.

Configurar recursos de Azure

Você deve criar alguns itens com antecedência:

  • Dois repositórios. O primeiro com o código do tutorial e um modelo de Resource Manager com mais duas VMs. O segundo conterá o modelo de Azure Resource Manager base (configuração existente).
  • Um Grupo de Recursos para implantação do código de produção e da configuração.
  • Um laboratório com uma conexão com o repositório de configuração para o pipeline de build. Verifique o modelo do Azure Resource Manager para o repositório de configuração como azuredeploy.json com o metadata.json. Esse nome permite que o DevTest Labs reconheça e implante o modelo.

O pipeline de build cria um ambiente do DevTest Labs e implanta o código para teste.

Configurar um pipeline de compilação

Em Azure Pipelines, crie um pipeline de build usando o código do Tutorial: Criar um aplicativo Web .NET Core e banco de dados SQL no Serviço de Aplicativo do Azure. Use o modelo ASP.NET Core, que preencherá a tarefa necessária para criar, testar e publicar o código.

Captura de tela que mostra a seleção do modelo de ASP.NET.

Adicione mais três tarefas para criar o ambiente no DevTest Labs e implantar no ambiente.

Captura de tela que mostra um pipeline com três tarefas.

Tarefa criar ambiente

Na tarefa Criar ambiente do Azure DevTest Labs, use as listas suspensas para selecionar os seguintes valores:

  • Assinatura do Azure
  • Nome do laboratório
  • Nome do repositório
  • Nome do modelo (que mostra a pasta em que o ambiente é armazenado).

Recomendamos que você use listas suspensas na página em vez de inserir as informações manualmente. Se você inserir manualmente as informações, insira IDs de recurso de Azure totalmente qualificadas. A tarefa exibe os nomes amigáveis em vez de IDs de recurso.

O nome do ambiente é o nome exibido no DevTest Labs. Deve ser um nome exclusivo para cada build. Por exemplo: TestEnv$(Build.BuildId).

Você pode especificar um arquivo de parâmetros ou parâmetros para passar informações ao modelo do Resource Manager.

Selecione a opção Criar variáveis de saída com base na opção de saída do modelo de ambiente e insira um nome de referência. Para este exemplo, insira BaseEnv para o nome de referência. Você usa esse BaseEnv ao configurar a próxima tarefa.

Captura de tela que mostra a tarefa Criar ambiente Azure DevTest Labs.

Tarefa preencher ambiente

A segunda tarefa (Azure DevTest Labs preencher ambiente) é para atualizar o ambiente do DevTest Labs. A tarefa Criar ambiente gera BaseEnv.environmentResourceId usado para configurar o nome do ambiente para essa tarefa. O modelo de Resource Manager deste exemplo tem dois parâmetros: adminUserName e adminPassword.

Captura de tela que mostra a tarefa Preencher ambiente do Azure DevTest Labs.

Tarefa de implantação do Serviço de Aplicativo

A terceira tarefa é Serviço de Aplicativo do Azure Deploy. O tipo de aplicativo é definido como Aplicativo Web e o nome do Serviço de Aplicativo é definido como $(WebSite).

Captura de tela que mostra a tarefa App Service Deploy.

Configurar o pipeline de lançamento

Você cria um pipeline de lançamento com duas tarefas: implantação Azure: criar ou atualizar grupo de recursos e implantar Serviço de Aplicativo do Azure.

Para a primeira tarefa, especifique o nome e o local do grupo de recursos. O local do modelo é um artefato vinculado. Se o modelo Resource Manager incluir modelos vinculados, você deverá implementar uma implantação personalizada do grupo de recursos. O modelo está no artefato de soltar publicado. Substitua os parâmetros do modelo do Resource Manager. Você pode deixar as configurações restantes com valores padrão.

Para a segunda tarefa Implantar Serviço de Aplicativo do Azure, especifique a assinatura Azure, selecione Aplicativo Web para o tipo de aplicativo e $(WebSite) para o nome do Serviço de Aplicativo. Você pode deixar as configurações restantes com valores padrão.

Execução de teste

Agora que ambos os pipelines estão configurados, enfileire manualmente uma compilação para vê-la funcionar. A próxima etapa é definir o gatilho apropriado para a compilação e conectá-la ao pipeline de lançamento.

Próximas Etapas 

Consulte os seguintes artigos: