Assista: Gates de controle de qualidade antes da produção
Vídeo: youtu.be/Vs2Em0HPvoY · Produto: ringpromoter.com
Ring Promoter é o plano de controle de promoção do Workstation 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.
- 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_promotepor anel para os primeiros saltos; mantenha o portão humano ligadoacc → 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_ringpara 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
| 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 exemploversionoubuild.version).health_version_header- cabeçalho comoX-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.
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 Workstation: 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
- Assistir youtu.be/Vs2Em0HPvoY.
- Visita ringpromoter.com e clonar github.com/bwalia/ring-promoter.
- Leia o blog de negócios e Workstation página do produto.
- Configurar por anel
auto_promotee campos de versão de saúde; mantenha o prod fechado por humanos. - Fale com Workstation via contato sobre CI/CD para plataformas de IA.
Publicado por Workstation. Documentos upstream: README e notas de design no repositório Ring Promoter.
Local do produto: https://www.ringpromoter.com/