DevOps Bootcamp · Aula

Lançamentos canário com Actions

Implemente padrões de lançamento canário para disponibilizar novos recursos gradualmente a um subconjunto de usuários, monitorando desempenho e estabilidade.

Aula 2 de 411 etapas

Lançamentos canário com Actions é uma aula grátis de DevOps Bootcamp no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de DevOps Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de DevOps Bootcamp inclui 4 aulas no total.

Introdução às versões canário

Imagine lançar um novo recurso ou atualização. E se houver um erro que afete todos os seus usuários? Assustador, não é?

As versões canário ajudam a reduzir esse risco, disponibilizando as alterações gradualmente primeiro para um pequeno subconjunto de usuários. É como enviar um "canário para uma mina de carvão" para testar o ar antes que todos entrem.

Benefícios das versões canário

As versões canário oferecem vários benefícios importantes:

  • Risco reduzido: limite o impacto dos problemas a um pequeno grupo de usuários.
  • Feedback do mundo real: obtenha dados de produção sobre desempenho e estabilidade.
  • Reversão rápida: se surgirem problemas, reverta rapidamente apenas o pequeno grupo canário ou todo o serviço.
  • Exposição controlada: aumente gradualmente a exposição dos usuários à medida que a confiança cresce.

Canário versus azul/verde

Talvez você se lembre das implantações azul/verde, nas quais o tráfego é alternado instantaneamente entre dois ambientes idênticos.

As versões canário são diferentes. Em vez de uma troca instantânea, elas envolvem uma mudança gradual do tráfego. Uma nova versão é executada paralelamente à antiga, e inicialmente apenas uma pequena porcentagem dos usuários vê a nova versão. Isso permite um monitoramento detalhado antes da disponibilização completa.

Como funcionam as versões canário

Este é o fluxo básico de uma versão canário:

  1. Implantar a nova versão: uma nova versão do aplicativo é implantada em um pequeno conjunto de servidores ou instâncias, paralelamente à versão estável existente.
  2. Direcionar uma pequena parcela do tráfego: um balanceador de carga ou uma malha de serviços é configurado para enviar uma pequena porcentagem (por exemplo, 5–10%) do tráfego dos usuários para a nova versão.
  3. Monitorar: o desempenho, as taxas de erros e o feedback dos usuários são monitorados atentamente no grupo canário.
  4. Promover ou reverter: se tudo parecer correto, o tráfego será aumentado gradualmente ou a nova versão será promovida para 100%. Se ocorrerem problemas, a versão canário será revertida e o tráfego será redirecionado para a versão estável.

Orquestração com GitHub Actions

GitHub Actions pode orquestrar todo o processo de lançamento canário. Ele não gerencia o tráfego diretamente (essa é uma tarefa da sua infraestrutura), mas aciona as etapas:

  • Compilar e testar sua aplicação.
  • Implantar a nova versão em um ambiente canário.
  • Iniciar mudanças de tráfego por meio de chamadas de API ao seu balanceador de carga ou à sua malha de serviços.
  • Aguardar os resultados do monitoramento ou aprovações manuais.
  • Promover o canário ou acionar uma reversão.

Estrutura de um fluxo de trabalho canário

Um fluxo de trabalho típico do GitHub Actions para um lançamento canário poderia ser assim:

name: Canary Deployment

on: push

jobs:
  build:
    # ... build and test steps ...

  deploy-canary:
    needs: build
    steps:
      - name: Deploy to Canary Group
        # ... call script/tool to deploy and shift 10% traffic ...

  monitor-canary:
    needs: deploy-canary
    # ... wait for monitoring/approval ...

  promote-or-rollback:
    needs: monitor-canary
    # ... conditionally promote to 100% or rollback ...

Cada etapa interagiria com suas ferramentas de implantação.

Simulação da lógica de uma distribuição canária

Embora o GitHub Actions faça a orquestração, as decisões efetivas e os comandos de implantação geralmente acontecem em scripts. Veja um exemplo em Python que simula a lógica de uma distribuição canária. Imagine uma Action executando este script:

def deploy_version(version, traffic_percent):
    print(f"Deploying {version} to {traffic_percent}% traffic.")
    if traffic_percent == 100:
        print("Full rollout complete!")
    elif traffic_percent > 0:
        print("Canary deployed. Monitoring for stability...")
    else:
        print("Version removed (rollback).")

if __name__ == "__main__":
    print("--- Starting Canary Workflow ---")
    new_app_version = "v2.1-canary"
    stable_app_version = "v2.0"

    # Step 1: Deploy new version to 10% traffic
    deploy_version(new_app_version, 10)

    # Step 2: Simulate monitoring (e.g., waiting for metrics)
    print("Monitoring canary performance...")
    import random
    canary_successful = random.choice([True, True, True, False]) # 75% chance of success

    if canary_successful:
        print("Canary looks good! Proceeding to full rollout.")
        # Step 3a: Promote new version to 100%
        deploy_version(new_app_version, 100)
    else:
        print("Canary issues detected! Rolling back.")
        # Step 3b: Rollback to stable version
        deploy_version(stable_app_version, 100)
    print("--- Canary Workflow Finished ---")

Monitoramento do seu canário

Um monitoramento eficaz é fundamental. Seu fluxo de trabalho do GitHub Actions pode ser integrado a sistemas de monitoramento de várias maneiras:

  • Chamadas de API: Consultar ferramentas de monitoramento (por exemplo, Datadog e Prometheus) em busca de métricas importantes.
  • Verificações de integridade: Consultar periodicamente os endpoints de integridade da aplicação.
  • Barreiras manuais: Pausar o fluxo de trabalho para análise e aprovação humanas.
  • Esperas baseadas em tempo: Aguardar um período definido para que as métricas se estabilizem.

Em seguida, o fluxo de trabalho usa esses sinais para decidir se deve promover ou reverter.

Promoção ou reversão condicional

Após a fase de monitoramento, o GitHub Actions usa uma lógica condicional para decidir a próxima etapa. Você pode usar instruções if nas definições do seu trabalho ou da sua etapa.

  promote-or-rollback:
    needs: monitor-canary
    if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
    steps:
      - name: Promote Full Rollout
        # ... command to shift 100% traffic to new version ...

  rollback:
    needs: monitor-canary
    if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
    steps:
      - name: Rollback to Stable
        # ... command to shift 100% traffic to old version ...

Isso garante uma reação automática ao desempenho do canário.

Verificação do lançamento canário

Você aprendeu sobre os benefícios e o funcionamento dos lançamentos canários. Vamos testar sua compreensão.

Recapitulação: lançamentos canários com Actions

Nesta lição, você aprendeu sobre lançamentos canários, uma estratégia poderosa de implantação para disponibilizar gradualmente novas versões de software a um subconjunto de usuários.

  • Os lançamentos canários minimizam os riscos e fornecem feedback do mundo real.
  • O GitHub Actions orquestra a compilação, a implantação no ambiente canário, o monitoramento e as etapas condicionais de promoção ou reversão.
  • O monitoramento eficaz e a lógica condicional são fundamentais para pipelines canários bem-sucedidos.

Ao usar canários, você pode implantar com mais confiança e controle!

Grátis para começar

Aprenda DevOps Bootcamp com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
142
Aulas
568

Perguntas Frequentes

A aula “Lançamentos canário com Actions” é grátis?

Sim — o texto completo de “Lançamentos canário com Actions” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de DevOps Bootcamp, atualize para CoddyKit PRO. O curso de DevOps Bootcamp inclui 4 aulas no total.

O que vou aprender em “Lançamentos canário com Actions”?

Implemente padrões de lançamento canário para disponibilizar novos recursos gradualmente a um subconjunto de usuários, monitorando desempenho e estabilidade. Você pratica DevOps Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar DevOps Bootcamp?

Nenhuma experiência prévia é necessária. DevOps Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Lançamentos canário com Actions”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de DevOps Bootcamp?

Sim. Cada aula de DevOps Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Implantações azul/verde
  2. Lançamentos canário com Actions
  3. Reversões e recuperação de desastres
  4. Sinalizadores de recursos e lançamentos progressivos
← Voltar para DevOps Bootcamp