Partilhar via


Pipelines de lançamento clássicos

Serviços de DevOps do Azure | Azure DevOps Server | Azure DevOps Server 2022

Os pipelines de versão clássicos fornecem aos desenvolvedores uma estrutura para implantar aplicativos em vários ambientes de forma eficiente e segura. Usando pipelines de liberação clássicos, você pode automatizar processos de teste e implantação, configurar estratégias flexíveis de implantação, incorporar fluxos de trabalho de aprovação e garantir transições suaves de aplicativos em vários estágios.

Como funcionam os pipelines de liberação

Como parte de cada implantação, o Azure Pipelines executa as seguintes etapas:

  1. Aprovação prévia à implantação

    Quando uma nova solicitação de implantação é acionada, o Azure Pipelines verifica se uma aprovação de pré-implantação é necessária antes de implantar uma versão em um estágio. Se a aprovação for necessária, ele envia notificações por e-mail para os aprovadores relevantes.

  2. Trabalho de fila de implantação:

    O Azure Pipelines agenda o trabalho de implantação em um Agente disponível.

  3. Seleção de agente:

    Um agente disponível pega a tarefa de implantação. Um pipeline de liberação pode ser configurado para selecionar dinamicamente um agente adequado durante o tempo de execução.

  4. Transferência de artefatos:

    O agente recupera e baixa todos os artefatos especificados na versão.

  5. Realizar as tarefas de implementação:

    O agente executa todas as tarefas no trabalho de implantação.

  6. Gere logs de progresso:

    O agente gera logs abrangentes para cada etapa de implantação e os envia de volta para o Azure Pipelines.

  7. Aprovação pós-implantação:

    Após a conclusão da implantação em um estágio, o Azure Pipelines verifica se uma aprovação pós-implantação é necessária para esse estágio específico. Se nenhuma aprovação for necessária, ou uma vez obtida uma aprovação necessária, ele prosseguirá para a próxima etapa de implantação.

Uma captura de tela mostrando as etapas de implantação no Azure Pipelines.

Modelo de implementação

Os pipelines de release do Azure oferecem suporte a uma ampla variedade de fontes de artefatos, incluindo Jenkins, Azure Artifacts e Team City. O exemplo a seguir ilustra um modelo de implantação usando pipelines de versão do Azure:

No exemplo a seguir, o pipeline consiste em dois artefatos de construção originários de pipelines de construção separados. O aplicativo é inicialmente implantado no estágio de desenvolvimento e, em seguida, em dois estágios de controle de qualidade separados. Se a implantação for bem-sucedida em ambos os estágios de QA, o aplicativo será implantado no anel Prod 1 e, em seguida, no anel Prod 2. Cada anel de produção representa várias instâncias do mesmo aplicativo Web, implantadas em diferentes locais em todo o mundo.

Uma captura de ecrã mostrando as etapas de implantação de um pipeline de versão.

Lançamentos vs implantações

Uma release é uma construção que contém um conjunto versionado de artefatos especificados num pipeline de CI/CD. Inclui um resumo de todas as informações necessárias para executar todas as tarefas e ações no pipeline de lançamento, como estágios, tarefas, políticas, como gatilhos e aprovadores, e opções de disponibilização. Pode haver várias versões de um pipeline de lançamento, e as informações sobre cada uma delas são armazenadas e exibidas no Azure Pipelines para o período de retenção especificado.

Uma implantação é a ação de executar as tarefas para um estágio, que pode incluir a execução de testes automatizados, a implantação de artefatos de compilação e quaisquer outras ações especificadas para esse estágio. Iniciar um lançamento inicia cada implementação com base nas configurações e políticas definidas no pipeline de lançamento original. Pode haver várias implementações de cada versão, mesmo para uma fase. Quando uma implantação de uma versão falha em um estágio, você pode reimplantar a mesma versão nesse estágio. Para reimplantar uma versão, basta navegar até a versão que deseja implantar e selecionar implantar.

O diagrama a seguir mostra a relação entre lançamentos, pipelines de lançamento e implantações.

Um diagrama ilustrando a diferença entre versões e implantações.

FAQ

P: Por que minha implantação não foi acionada?

R: A criação de um pipeline de liberação não inicia automaticamente uma implantação. Aqui estão algumas razões pelas quais isso pode acontecer:

P: Como posso editar variáveis no momento do lançamento?

R: Na guia Variáveis do seu pipeline de liberação, marque a caixa de seleção Settable at release time para as variáveis que você deseja modificar quando uma liberação é enfileirada.

Uma captura de tela mostrando como ativar o recurso configurável no momento do lançamento.

Posteriormente, ao gerar uma nova versão, você tem a capacidade de modificar os valores dessas variáveis.

Uma captura de tela mostrando como editar variáveis no momento do lançamento.

P: Quando seria mais apropriado modificar uma versão em vez do pipeline que a define?

R: Você pode editar as aprovações, tarefas e variáveis de uma instância de versão. No entanto, essas edições só se aplicarão a essa instância. Para que suas alterações se apliquem a todas as futuras versões, edite o pipeline de lançamento.

P: Quais são os cenários em que o recurso "abandonar uma versão" é útil?

R: Se não planeias reutilizar a versão, ou se queres impedir que seja utilizada, podes abandonar a versão da seguinte forma Pipelines> (...) >Abandonar. Não se pode abandonar um lançamento quando uma implementação está em andamento; deve-se cancelar a implementação primeiro.

Uma captura de tela mostrando como abandonar uma versão.

P: Como faço para gerir o nome dos novos lançamentos?

R: A convenção de nomenclatura padrão para pipelines de liberação é a numeração sequencial, onde as versões são denominadas Release-1, Release-2 e assim por diante. No entanto, você tem a flexibilidade de personalizar o esquema de nomenclatura modificando a máscara de formato de nome de versão. Na guia Opções do pipeline de versão, navegue até a página Geral e ajuste a propriedade Formato do nome da versão de acordo com suas preferências.

Ao especificar a máscara de formato, você pode usar as seguintes variáveis predefinidas. Exemplo: O seguinte formato de nome de versão: Release $(Rev:rrr) for build $(Build.BuildNumber) $(Build.DefinitionName) criará a seguinte versão: Release 002 for build 20170213.2 MySampleAppBuild.

Variável Descrição
Rev: rr Um número incrementado automaticamente com pelo menos o número especificado de dígitos.
Data / Data: MMddyy A data atual, no formato padrão MMddyy. Todas as combinações de M/MM/MMM/MMMM, d/dd/ddd/dddd, y/yy/yyyy/yyyy, h/hh/H/HH, m/mm, s/ss são suportadas.
System.TeamProject O nome do projeto ao qual esta construção pertence.
Release.ReleaseId O ID da versão, que é único entre todas as versões do projeto.
Release.DefinitionName O nome do pipeline de liberação ao qual a versão atual pertence.
Build.BuildNumber O número da compilação contida na versão. Se uma versão tiver várias compilações, é o número da compilação principal.
Build.DefinitionName O nome do pipeline da compilação contida na versão. Se uma versão tiver várias compilações, é o nome do pipeline da compilação principal.
Artifact.ArtifactType O tipo de origem do artefato associado ao lançamento. Por exemplo, isso pode ser Azure Pipelines ou Jenkins.
Build.SourceBranch O ramo da fonte primária do artefato. Para o Git, esta é a forma principal se o ramo for refs/heads/main. Para o Controle de Versão do Team Foundation, isso tem o formato branch se o caminho do servidor raiz para o espaço de trabalho for $/teamproject/branch. Esta variável não está definida para Jenkins ou outras fontes de artefatos.
Variável personalizada O valor de uma propriedade de configuração global definida no pipeline de versão. Pode atualizar o nome da versão com variáveis personalizadas, utilizando os comandos de registo de lançamentos

P: Como posso definir o período de retenção para as minhas libertações?

R: Consulte as políticas de retenção para aprender a configurar políticas de retenção para os seus pipelines de lançamento.