Usar anéis de implantação com versões de extensão

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

Com os anéis de implantação, você pode implantar e validar gradualmente as alterações em sua extensão em produção, limitando o efeito sobre seus usuários.

Não recomendamos a implantação em todos os ambientes de produção ao mesmo tempo, o que expõe todos os usuários às alterações. Uma distribuição gradual expõe os usuários às mudanças ao longo do tempo, validando as alterações na produção com menos usuários.

A tabela a seguir mostra as diferenças para as áreas afetadas quando você está usando anéis versus sem anéis.

Sem anéis Área afectada Com anéis
Manual e propenso a erros Criar Automatizado e consistente
Manual e propenso a erros Versão Automatizado e consistente
Horas Tempo de construção (TTB) Segundos
Dias Tempo de lançamento (TTR) Minutos
Chamada do usuário Deteção de problemas Proativo
Dias a semanas Resolução de problemas Minutos a dias

Para obter mais informações, consulte Configurando seus pipelines de liberação para implantações seguras.

Pré-requisitos

  • Analise os pipelines e aprovações de CI/CD para obter documentação detalhada dos pipelines e os recursos de aprovação de releases.

Atribuir tipos de usuário

Determine quais usuários são mais adequados para cada tipo de usuário. Comunique a oportunidade de fornecer feedback e os níveis de risco em cada nível, pois é fundamental para definir expectativas e garantir o sucesso. No exemplo a seguir, os usuários são divididos em três grupos na produção:

  • Canárias: testam voluntariamente as funcionalidades assim que estão disponíveis.
  • Early adopters: pré-visualização voluntária de lançamentos, considerados mais refinados do que os bits canários.
  • Utilizadores: consomem os produtos, depois de terem passado por canários e early adopters.

Anéis de usuário

Mapeie a topologia

Mapeie a topologia de sua extensão para o modelo de implantação em anel para limitar o impacto da alteração em seus usuários e agregar valor. Para nossas extensões de comunidade de código aberto, usamos principalmente a implantação baseada em anel para expor progressivamente uma nova versão para canários, primeiros usuários e usuários.

No nível do aplicativo, a composição das extensões do Azure DevOps é fácil de digerir, dimensionar e implantar de forma independente.

Cada extensão executa as seguintes tarefas:

  • Tem um dos mais arquivos web e script
  • Interfaces com o cliente Core
  • Interfaces com cliente REST e APIs REST
  • Persiste o estado no cache ou no armazenamento resiliente

Exposição progressiva da camada de aplicação

No nível de infraestrutura, as extensões são publicadas no Marketplace. Depois de instalar a extensão em sua organização, ela é hospedada pelo portal de serviço do Azure DevOps, com o estado persistido no armazenamento do Azure ou no armazenamento de dados da extensão.

Exposição progressiva da camada de infraestrutura

A topologia de extensão é perfeitamente adequada para o modelo de implantação de anel e para publicar a extensão para cada anel de implantação:

  • Uma versão de desenvolvimento privada para o anel canário
  • Uma versão de pré-visualização privada para o anel de adoção inicial
  • Uma versão de produção pública para o anel de usuários

Gorjeta

Publique sua extensão como privada, para controlar a exposição a usuários convidados.

Mover alterações através de anéis de implantação

Veja o exemplo a seguir de fluxo de movimentação de alterações através de anéis de implantação.

Use a extensão Azure DevOps Developer Tools Build Tasks para empacotar e publicar extensões no Marketplace.

Anéis de extensão

  1. Um desenvolvedor do projeto de extensão Countdown Widget confirma uma alteração no repositório GitHub .
  2. A confirmação dispara uma compilação de integração contínua.
  3. A nova compilação aciona um gatilho de implantação contínua, que inicia automaticamente a implantação do ambiente Canaries .
  4. A implantação das Canárias publica uma extensão privada para o Marketplace e a compartilha com organizações predefinidas. Apenas as Canárias são afetadas pela mudança.
  5. A implantação do Canaries aciona a implantação do ambiente Early Adopter . Um portão de aprovação de pré-implantação requer que qualquer um dos usuários autorizados aprove a versão. Aprovação de pré-implantação para ambiente Early Adopter
  6. A implantação do Early Adopter publica uma extensão privada para o mercado e a compartilha com organizações predefinidas. Tanto as Canáriascomo a Early Adopter são afetadas pela mudança.
  7. A implantação do Early Adopter aciona a implantação do ambiente Users . Um portão de aprovação de pré-implantação mais rigoroso exige que todos os usuários autorizados aprovem a versão. Aprovação de pré-implantação para ambiente de usuário
  8. A implantação Usuários publica uma extensão pública para o mercado. Nesta fase, todos os que instalaram a extensão na sua organização são afetados pela mudança.
  9. É fundamental perceber que o efeito aumenta à medida que a sua mudança se move através dos anéis. Expor a alteração para as Canárias e os Early Adopters oferece duas oportunidades para validar a alteração e os bugs críticos de hotfix antes de liberar para produção.

Monitorar problemas

O monitoramento e os alertas podem ajudá-lo a detetar e mitigar problemas. Determine que tipo de dados é importante, por exemplo: problemas de infraestrutura, violações e uso de recursos. Concentre-se em alertas acionáveis para evitar que os usuários os ignorem e percam problemas de alta prioridade.

Gorjeta

Comece com visualizações de alto nível de seus dados, painéis visuais que você pode assistir à distância e detalhar, conforme necessário. Realize a limpeza regular das suas vistas e remova todo o ruído. Um painel visual conta uma história melhor do que muitos e-mails de notificação, muitas vezes filtrados e esquecidos por regras de e-mail.

Use a integridade do projeto de equipe e outras extensões para criar uma visão geral de seus pipelines, tempos de espera e ciclo e coletar outras informações. No painel de exemplo, é evidente que há 34 compilações bem-sucedidas, 21 versões bem-sucedidas, 1 versão com falha e 2 versões em andamento.

Painel de alto nível no Azure DevOps

Existe uma dependência de sinalizadores de recursos?

N.º Às vezes, você pode precisar que uma determinada funcionalidade seja implantada como parte de uma versão, mas não exposta inicialmente aos usuários. Os sinalizadores de recursos oferecem controle refinado dos recursos incluídos na alteração. Por exemplo, se você não estiver totalmente confiante sobre um recurso, poderá usar sinalizadores de recursos para ocultar o recurso em um ou em todos os anéis de implantação. Você pode habilitar todos os recursos no anel de canários e ajustar um subconjunto para os primeiros usuários e usuários de produção, conforme mostrado na imagem a seguir.

Marcas de funcionalidades

Para obter mais informações, consulte Experimentação progressiva com sinalizadores de recursos.

FAQ

P: Como você sabe que uma alteração pode ser implantada no próximo anel?

R: Você deve ter uma lista de verificação consistente para os usuários que aprovam uma liberação.

P: Quanto tempo você espera antes de empurrar uma mudança para o próximo anel?

Não há duração fixa ou período de reflexão. Depende do tempo que demora a concluir todas as validações de versão com êxito.

P: Como você gerencia um hotfix?

R: O modelo de implantação em anel permite que você processe um hotfix como qualquer outra alteração. Quanto mais cedo você detetar um problema, mais cedo você poderá implantar um hotfix sem efeito para anéis downstream.

P: Como você lida com variáveis que abrangem ambientes de lançamento compartilhados?

R: Consulte as variáveis de versão padrão e personalizadas.

P: Como você pode gerenciar os segredos usados pelo pipeline?

R: Para proteger chaves criptográficas e outros segredos usados por seus pipelines, consulte Azure Key Vault.