Um caminho seguro no GCP separa cinco decisões com controles de evidência (gates): qual fonte pode entrar na compilação, se testes e avaliações passam, qual resumo criptográfico (digest) identifica a imagem, se a nova revisão do Cloud Run está saudável sem tráfego e se a evidência justifica migrar tráfego. O Cloud Build automatiza a execução; não deve apagar a política de PROMOTE, HOLD ou ROLLBACK.
Se uma revisão específica do Cloud Run deve receber tráfego
Implantação candidata, roteiro de promoção e registro
Imagem imutável, URL candidata, revisão anterior e testes rápidos de integridade
Caso de uso sanitizado
Um produto conversacional com fronteira de compilação protegida#
Considere uma aplicação conversacional em produção com superfície web pública, API apoiada por modelo, ferramentas externas e pesquisa privada no mesmo repositório de desenvolvimento. O primeiro risco da implantação (deploy) não é o modelo — é empacotar acidentalmente o que nunca deveria ser público.
O contexto de compilação começa com negação por padrão e um manifesto exato revisado. O contêiner recebe apenas arquivos necessários em execução; pesquisa, relatórios, scripts, credenciais e conteúdo pago ficam fora.
Fluxo de entrega
Cinco fronteiras de evidência da alteração versionada (commit) ao tráfego#
- 01
Controle de fonte
Contexto revisável, dependências fixadas e nenhum segredo ou conteúdo privado.
- 02
Controle de qualidade
Sintaxe, testes, avaliações, segurança, localização e contratos de rotas.
- 03
Controle de artefato
Cloud Build registra no Artifact Registry o identificador imutável da imagem enviada.
- 04
Controle de revisão
Nova revisão do Cloud Run fica sem tráfego e recebe testes de prontidão.
- 05
Controle de tráfego
A revisão candidata é avaliada contra a política de lançamento.
- PROMOTEMigrar tráfego
A evidência passa; a candidata se torna a revisão em serviço.
- HOLDManter o tráfego atual
A evidência está ausente ou inconclusiva; investigue sem expor usuários.
- ROLLBACKRestaurar a revisão estável
A revisão promovida viola o sinal de parada; o tráfego retorna.
Registro reutilizável de lançamento
Conecte artefato, revisão, decisão e resposta a incidentes#
Um registro compacto conecta o que foi construído, o que foi testado, quem decidiu e para onde o tráfego pode voltar. Guarde referências e vereditos em vez de copiar prompts ou respostas sensíveis para o registro de lançamento.
Os campos abaixo formam um contrato mínimo de trabalho, não uma exigência do provedor. Acrescente invariantes e regras de retenção do produto sem transformar o registro em um depósito de dados impossível de revisar.
Implante a candidata primeiro; mova o tráfego depois
Este padrão sanitizado deriva de um fluxo de entrega GCP em produção. O Cloud Build cria uma revisão etiquetada sem tráfego; controles de evidência decidem se ela será promovida.
steps:
- name: gcr.io/cloud-builders/docker
args: [build, -t, "${_IMAGE_URI}", .]
- name: gcr.io/cloud-builders/docker
args: [push, "${_IMAGE_URI}"]
- name: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
entrypoint: gcloud
args:
- run
- deploy
- "${_SERVICE}"
- --image
- "${_IMAGE_URI}"
- --region
- "${_REGION}"
- --no-traffic
- --tag
- candidate
- --quiet
options:
logging: CLOUD_LOGGING_ONLY#!/usr/bin/env bash
set -euo pipefail
: "${SERVICE:?set SERVICE}"
: "${REGION:?set REGION}"
: "${PROJECT:?set PROJECT}"
: "${ACCOUNT:?set ACCOUNT}"
: "${CANDIDATE_URL:?set CANDIDATE_URL}"
: "${CANDIDATE_REVISION:?set CANDIDATE_REVISION}"
: "${PREVIOUS_REVISION:?set PREVIOUS_REVISION}"
rollback() {
gcloud run services update-traffic "$SERVICE" \
--region "$REGION" \
--project "$PROJECT" \
--account "$ACCOUNT" \
--to-revisions "$PREVIOUS_REVISION=100" \
--quiet
}
trap rollback ERR
curl --fail --silent --show-error "$CANDIDATE_URL/health"
curl --fail --silent --show-error "$CANDIDATE_URL/critical-journey"
gcloud run services update-traffic "$SERVICE" \
--region "$REGION" \
--project "$PROJECT" \
--account "$ACCOUNT" \
--to-revisions "$CANDIDATE_REVISION=100" \
--quiet
trap - ERR{
"artifact": "image@sha256:<digest>",
"candidate_revision": "service-00042-abc",
"previous_revision": "service-00041-xyz",
"evidence_uri": "<immutable-evidence-reference>",
"verdict": "PROMOTE",
"rollback_target": "service-00041-xyz"
}Falha exercitada. Qualquer falha na candidata mantém o tráfego de produção intacto. Uma falha de promoção aciona a reversão para a revisão conhecida.
Limite de produção. Marcadores genéricos substituem projeto, conta, serviço, segredo e identificadores internos de teste. Adapte IAM e sondas ao seu ambiente.
Identidade e segredos
Mantenha credenciais fora da fonte e do artefato#
Use identidades de serviço dedicadas com o mínimo de papéis necessários para compilação, registro e execução. Guarde segredos no Secret Manager e vincule-os em tempo de execução; não grave valores na imagem nem nos registros da compilação.
Separe a autoridade humana de publicação da identidade usada em execução. Uma aplicação capaz de chamar um modelo não precisa modificar a própria infraestrutura.
Prontidão sem tráfego
Teste a revisão que será promovida#
Uma implantação bem-sucedida prova que o Cloud Run aceitou uma revisão, não que o produto funciona. Teste saúde, rotas públicas, fronteiras de autenticação, dependências de modelo e ferramentas, telemetria e jornadas críticas na candidata.
Para um sistema com agentes, inclua uma jornada determinística e outra aberta avaliada. Guarde os identificadores da revisão e do artefato junto do veredito.
Tráfego e reversão
Torne a promoção reversível#
Revisões do Cloud Run são imutáveis e suportam migração de tráfego. Isso permite testar uma revisão identificada, fazer liberação gradual e devolver o tráfego à revisão conhecida.
Defina antes o sinal de reversão: taxa de erro, latência, violação de política, jornada de negócio quebrada ou falha no fluxo de evidências. Se a observabilidade estiver quebrada, HOLD é mais seguro que uma liberação cega.
Verde não significa pronto
Saiba o que cada etapa aprovada ainda não consegue provar#
PODE
- Uma compilação aprovada identificar um artefato reproduzível
- Uma revisão pronta provar que o contêiner inicia no Cloud Run
- Um teste de rotas provar que caminhos públicos selecionados respondem
- Uma decisão de tráfego registrar o risco residual aceito
NÃO PODE
- Uma compilação provar que o agente conclui a jornada de negócio
- Um contêiner saudável provar permissões de modelos e ferramentas
- Um teste isolado cobrir comportamento aberto ou adversarial
- A promoção garantir confiabilidade ou segurança futura
Checklist operacional
Antes de migrar tráfego#
- O contexto de compilação corresponde ao manifesto revisado.
- Dependências e imagem base estão fixadas e auditadas.
- Nenhum segredo ou conteúdo protegido entra no artefato.
- Testes, avaliações, segurança e localização passam.
- O identificador imutável da imagem está ligado à alteração versionada e é usado na implantação.
- A revisão candidata fica sem tráfego durante os testes de prontidão.
- Rotas e jornadas críticas passam nessa revisão.
- Papéis da conta de serviço seguem o menor privilégio.
- Segredos entram em tempo de execução e não aparecem em registros.
- Revisão conhecida e comando de reversão estão registrados.
- A migração tem responsável e sinal de parada.
- O teste pós-promoção está pronto para o domínio público.
Fontes primárias
Fontes primárias
- Cloud Build: deploy to Cloud Run
Compilação, envio ao Artifact Registry e implantação.
- Deploying Cloud Run revisions
Revisões imutáveis e implantação sem tráfego imediato.
- Cloud Run rollouts and rollbacks
Identificação de revisões, migração de tráfego e reversão.
- Secret Manager best practices
Armazenamento, acesso e ciclo de vida de segredos.
Do protótipo ao serviço operado