Pular para o conteúdo

Artigo

Ring Promoter – Controle de qualidade antes da produção

Resumo técnico: portas de promoção, auto_promote por anel, verificação de integridade/versão, porta humana acc→prod, reversão e política da equipe de IA

  • 8 min de leitura
  • DevOps
  • CI/CD
  • IA
  • Kubernetes
  • Automação

Assista: Gates de controle de qualidade antes da produção

Ring Promoter – Controle de qualidade antes da produção (YouTube)

Vídeo: youtu.be/Vs2Em0HPvoY · Produto: ringpromoter.com

Ring Promoter é o plano de controle de promoção do TenthMatrix para anéis encomendados int → test → acc → prod. Este artigo se concentra em Controle de qualidade e portas de qualidade nesse pipeline: onde eles estão, como a promoção automática interage com os portões humanos (especialmente antes da produção), verificação de integridade e versão como portões de primeira classe, comportamento de reversão e implicações para as equipes da plataforma de IA. Produto: ringpromoter.com · fonte: github.com/bwalia/ring-promoter. Blog complementar: resumo de negócios · visão geral: artigo CI/CD moderno · página do produto: /promotor de anel.

Capa Ring Promoter QA Gates antes da produção

Resumo do agente.
  • Problema: A promoção automática de tudo em produção é YOLO; controlar cada salto manualmente é muito lento.
  • Modelo: Anéis compartilhados; um salto de cada vez; nunca pule; saúde (+ versão opcional) em cada salto.
  • Política: Opcional auto_promote por anel para os primeiros saltos; mantenha o portão humano ligado acc → prod.
  • Falha: Destino não íntegro ou incompatibilidade de versão → reversão automática + histórico.
  • Slogan: Não promova automaticamente para produção – ganhe produção por meio de portas de controle de qualidade.

1. Processo de promoção (recapitulação)

Os aplicativos declaram alvos de implantação por anel (namespace, implantação, repositório de imagens, URL de integridade, implantador). Os próprios anéis são compartilhados e ordenados. Operadores, CI ou agentes chamam:

  • semente - coloque uma versão em int (ou um anel de entrada configurado).
  • promover — mova a versão de from_ring para o próximo apenas anel.
  • reversão — restaurar a versão anterior em um anel (também automático em caso de falha na integridade pós-implantação).

Simultaneidade: as operações para o mesmo aplicativo são serializadas (bloqueio de aconselhamento de sessão Postgres entre réplicas). O contexto da operação é separado da solicitação HTTP e limitado por operation_timeout, portanto, uma desconexão do cliente não pode anular uma promoção em andamento ou sua reversão.

Operators / CI / Agents
    → Ring Promoter (UI + REST API)
        → seed / promote / rollback
        → Deployer (kubectl | GitHub Actions | k8sjob)
        → Health (HTTP + optional version verify)  ← quality gate
        → optional auto_promote to next ring       ← policy gate
        → Store (Postgres history + locks)
Rings: int → test → acc → prod

2. Onde ficam os portões de controle de qualidade

Diagrama de portas de controle de qualidade: salto automático mais cedo, porta humana antes da produção

Saltar Mistura de portão típica Notas
int → test Versão Saúde +; muitas vezes promoção_automática Feedback rápido após a semeadura
test → acc Versão Saúde +; opcional automático após avaliações/fumaça Fortaleça os endpoints de integridade antes de ativar o modo automático
acc → prod Saúde + versão + aprovação humana / controle de qualidade Não promoção automática em produção por padrão

Os portões são em camadas. A promoção automática nunca ignora a verificação de integridade ou de versão – ela apenas remove a espera por um clique humano entre os saltos quando o destino anterior está íntegro.

3. Promoção automática de sinalizadores por anel

A promoção automática é opcional e por anel. Quando uma versão chega em um anel com promoção automática habilitada, o Ring Promoter continua para o próximo anel dentro da mesma operação bloqueada. Exemplo de esboço de política:

# Conceptual ring policy (illustrative)
rings:
  - name: int
    auto_promote: true      # healthy int → continue to test
  - name: test
    auto_promote: true      # healthy test → continue to acc
  - name: acc
    auto_promote: false     # HUMAN GATE — stop before prod
  - name: prod
    auto_promote: false     # terminal ring

Os mapeamentos de anel no nível do aplicativo ainda trazem detalhes de implantação e integridade:

# Per-app ring mapping (illustrative)
apps:
  web-frontend:
    rings:
      acc:
        namespace: acc-apps
        deployment: web-frontend
        health_url: https://acc.example/healthz
        health_version_field: version
      prod:
        namespace: prod-apps
        deployment: web-frontend
        health_url: https://www.example/healthz
        health_version_field: version

Dica operacional: habilite a promoção automática somente depois de confiar no contrato de saúde desse aplicativo. Um fraco sempre-200 endpoint mais promoção automática marcharão alegremente como um binário ruim em direção à aceitação.

4. Verificação de integridade e versão como portas de qualidade

Cada promoção verifica o fonte o anel está íntegro antes da implantação e, em seguida, verifica o alvo após a implantação com novas tentativas configuráveis. Se o alvo permanecer não íntegro, Ring Promoter reverte o destino para a versão anterior e registra a falha no histórico.

Integridade verificada por versão transforma um URL simples de atividade em um portão de qualidade:

  • health_version_field — Campo JSON no corpo de saúde (por exemplo version ou build.version).
  • health_version_header - cabeçalho como X-App-Version.

A verificação exige que o endpoint relate o versão exata que acabou de ser implantada. Isso é importante para as pilhas de IA: um arquivo secundário de inferência antigo ou binário de agente ainda pode responder 200 OK enquanto a nova imagem nunca ficou pronta. A incompatibilidade de versão falha no portão e aciona a reversão.

Sobre fixado por referência anéis (ref: release), a versão esperada pode não ser conhecida antecipadamente - após uma implantação saudável, o plano de controle pode registro a versão que o endpoint relata em vez de compará-la com uma tag pré-conhecida.

5. O portão humano acc → prod

Mantendo auto_promote: false sobre acc significa um sucesso test → acc (ou auto encadeado de anéis anteriores) pára na aceitação. A produção requer uma promoção explícita - clique na interface do usuário, chamada API aprovada ou automação apoiada por ticket de alteração que ainda chama a promoção deliberadamente.

  • Use-o para janelas de mudança, aprovação de conformidade, demonstração das partes interessadas na preparação ou “trens de lançamento” de vários aplicativos.
  • Combine com saúde verificada por versão para que o humano aprove o certo construir, não um pod obsoleto e saudável.
  • Documente quem é o dono do portão (SRE de plantão, proprietário do produto, gerente de liberação) para que o salto não se torne uma fila acidental.
Regra dura. Não defina a promoção automática no anel que alimenta a produção, a menos que você tenha um motivo excepcional e auditado – e mesmo assim prefira um mecanismo de aprovação separado fora da cadeia automática do plano de controle.

6. Rollback como parte da história do portão

  • Falha de integridade/versão pós-implantação → reversão automática do alvo anel.
  • Reversão manual API/UI para recuperação orientada pelo operador.
  • O histórico registra sucesso e falha de propagação/promoção/reversão para auditoria.
  • O estado armazenado é atualizado assim que uma implantação chega, para que a verdade do cluster não seja perdida se uma verificação de integridade posterior falhar.

Portões sem reversão são teatro. O Ring Promoter trata os portões com falha como acionáveis: reverter o salto ruim, manter a trilha de auditoria, deixar os anéis anteriores intactos.

7. Esboços API (CI/agentes)

# Seed int, then promote (auto-promote may chain further)
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
  -d '{"ring":"int","version":"1.4.2"}' \
  $BASE/api/apps/web-frontend/seed

curl -s -H "Authorization: Bearer $TOKEN" -X POST \
  -d '{"from_ring":"int"}' \
  $BASE/api/apps/web-frontend/promote
# non-2xx = failed promotion (target auto-rolled back)

# Explicit human-gated hop into prod (after QA on acc)
curl -s -H "Authorization: Bearer $TOKEN" -X POST \
  -d '{"from_ring":"acc"}' \
  $BASE/api/apps/web-frontend/promote

Construções e testes de CI; Ring Promoter move o que a CI produziu. Uma promoção diferente de 2xx significa que o portão falhou – curl --fail é suficiente para integração de pipeline. Agentes e bots de lançamento devem tratar acc → prod como uma ação privilegiada com uma etapa de aprovação explícita em seu próprio fluxo de trabalho.

8. Implicações para as equipes da plataforma de IA

As propriedades de IA promovem serviços de inferência, tempos de execução de agentes, gateways MCP, RAG APIs e serviços clássicos em diferentes relógios e implantadores (kubectl vs GitHub Actions vs k8sjob). Os anéis compartilhados fornecem um idioma de promoção; gates mantém essa linguagem honesta:

  • Integridade verificada por versão pega “antigo agente ainda respondendo”.
  • Promoção automática mantém os anéis eval em movimento sem cuidar de cada salto.
  • Portão humano antes do estímulo protege modelos e ferramentas voltados para o cliente da cascata silenciosa.
  • Promoção de vários aplicativos ainda respeita a integridade por aplicativo – um serviço não saudável não inventa um toque ignorado para outros.

Posição da TenthMatrix: trate o envio de IA como serviços de produção – observabilidade e disciplina de promoção em primeiro lugar (veja também Gargalos LLM/OTEL), depois velocidade.

9. Prós, contras e política recomendada

Escolha Prós Contras
Toques antecipados automáticos Rendimento, menos trabalho Propaga contratos de saúde fracos
Humano antes do estímulo Conformidade, controle de mudanças Precisa de proprietário/SLA claro
Portões de versão Interrompe implantações falsamente verdes Requer endpoints de integridade instrumentados

Padrão recomendado: auto_promote ativado int e test; portão humano ligado acc; integridade verificada por versão em todos os aplicativos voltados para o cliente; nunca pule os anéis; confie na reversão automática quando os portões falharem.

10. Primeiros passos

  1. Assistir youtu.be/Vs2Em0HPvoY.
  2. Visita ringpromoter.com e clonar github.com/bwalia/ring-promoter.
  3. Leia o blog de negócios e TenthMatrix página do produto.
  4. Configurar por anel auto_promote e campos de versão de saúde; mantenha o prod fechado por humanos.
  5. Fale com TenthMatrix via contato sobre CI/CD para plataformas de IA.

Publicado por TenthMatrix. Documentos upstream: README e notas de design no repositório Ring Promoter.

Local do produto: https://www.ringpromoter.com/