Lista de verificação de lançamento do Spanner

Esta lista de verificação de lançamento fornece uma lista de considerações que precisam ser feitas antes de lançar um aplicativo de produção no Spanner. Ele não é exaustivo, mas destaca considerações importantes para minimizar riscos, otimizar a performance e garantir o alinhamento com as metas comerciais e operacionais, oferecendo uma abordagem sistemática para uma implantação do Spanner perfeita e confiável.

Esta lista é dividida nas seguintes seções:

Design, desenvolvimento, teste e otimização

É essencial otimizar o design de esquema, as transações e as consultas para usar a arquitetura distribuída do Spanner e ter alta performance e escalonabilidade. Testes rigorosos em escala de produção e de ponta a ponta garantem que o sistema possa lidar com cargas de trabalho do mundo real, picos de carga e operações simultâneas, minimizando os riscos de gargalos ou falhas na produção.

Caixa de seleção Atividade
❑  
Projete o esquema pensando na escalonabilidade e na arquitetura distribuída do Spanner. Siga as práticas recomendadas, como selecionar chaves primárias e índices adequados para evitar pontos de acesso e considerar otimizações como o intercalamento de tabelas para dados relacionados. Consulte as práticas recomendadas de design de esquema para garantir que ele ofereça suporte a alto desempenho e escalonabilidade nas cargas de trabalho esperadas.
❑  
Otimize transações e consultas para minimizar o bloqueio e maximizar o desempenho. Use os modos de transação do Spanner, como leitura e gravação com bloqueio, somente leitura forte e instruções DML particionada, para equilibrar consistência, capacidade de processamento e latência. Minimize os escopos de bloqueio usando transações somente leitura para consultas, lotes para taxa de transferência máxima de DML ou instruções DML particionadas para atualizações e exclusões em grande escala. Ao migrar de sistemas com diferentes níveis de isolamento (por exemplo, PostgreSQL ou MySQL), use transações para evitar gargalos de desempenho. Para mais informações, consulte Transações.
❑  
Realize testes de carga rigorosos em grande escala para validar o design do esquema, o comportamento das transações e a performance das consultas. Simule cenários de pico e alta simultaneidade que imitam cargas de aplicativos do mundo real, incluindo diversas formas de transação e padrões de consulta. Avalie a latência e a capacidade de processamento nessas condições para confirmar se o design do banco de dados e a topologia da instância atendem aos requisitos de desempenho. Use o teste de carga de forma iterativa durante o desenvolvimento para otimizar e refinar a implementação.
❑  
Estenda o teste de carga para abranger todos os serviços interativos, não apenas aplicativos isolados. Simule jornadas completas do usuário junto com processos paralelos, como cargas em lote ou tarefas de administração que acessam o banco de dados. Execute testes na configuração da instância de produção do Spanner, garantindo que os drivers e serviços de teste de carga estejam geograficamente alinhados com a topologia de implantação de produção pretendida. Essa abordagem holística identifica possíveis conflitos com antecedência e garante um desempenho tranquilo do banco de dados durante as operações no mundo real.
❑  
Para garantir um desempenho previsível da consulta, use a versão do otimizador em que a carga de trabalho foi testada. Por padrão, os bancos de dados do Spanner usam a versão mais recente do otimizador de consultas. Avalie regularmente novas versões do otimizador em um ambiente controlado e atualize a versão padrão somente depois de confirmar a compatibilidade e as melhorias de performance. Para mais informações, consulte a visão geral do otimizador de consultas.
❑  
Verifique se as estatísticas do otimizador de consultas estão atualizadas para oferecer suporte a planos de execução de consultas eficientes. Embora as estatísticas sejam atualizadas automaticamente, considere criar manualmente um novo pacote de estatísticas em cenários como modificações de dados em grande escala (por exemplo, inserções, atualizações ou exclusões em massa), adição de novos índices ou mudanças de esquema. Manter as estatísticas do otimizador de consultas atualizadas é fundamental para manter a performance ideal das consultas.

Migração (opcional)

A migração de banco de dados é um processo abrangente que exige uma análise detalhada das especificidades de cada jornada de migração. Considere o seguinte na sua estratégia de migração:

Caixa de seleção Atividade
❑  
Desenvolva um procedimento operacional padrão (POP) detalhado para a migração. Isso inclui etapas para o lançamento de aplicativos, a troca de banco de dados e a automação para minimizar a intervenção manual. Identifique e comunique possíveis períodos de inatividade às partes interessadas com bastante antecedência. Implemente mecanismos robustos de monitoramento e alerta para acompanhar o processo de migração em tempo real e detectar anomalias imediatamente. Verifique se o processo de failover inclui verificações de validação para confirmar a integridade dos dados e os recursos do aplicativo após a migração.
❑  
Prepare um plano de substituição detalhado para reverter ao sistema de origem em caso de problemas críticos durante a migração. Teste os procedimentos de failback em um ambiente de preparo para garantir que eles sejam confiáveis e possam ser executados com o mínimo de inatividade. Defina claramente as condições que acionariam um fallback e treine a equipe para executar esse plano de forma rápida e eficiente.

Implantação

O planejamento adequado da implantação garante que as configurações do Spanner atendam aos requisitos de disponibilidade, latência e escalonabilidade da carga de trabalho, além de considerar aspectos geográficos e operacionais. O alinhamento do dimensionamento, do gerenciamento de recursos, dos cenários de failover e da automação minimiza os riscos, garante o desempenho ideal e evita restrições ou interrupções de recursos durante operações críticas.

Caixa de seleção Atividade
❑  
Verifique se a configuração da instância do Spanner (regional, birregional ou multirregional) está alinhada aos requisitos de disponibilidade e latência da carga de trabalho do aplicativo, além de considerar aspectos geográficos. Calcule a capacidade de computação de destino com base nos tamanhos de armazenamento esperados, nos padrões de tráfego e nos limites de utilização recomendados, garantindo capacidade suficiente para falhas zonais ou regionais. Planeje picos de tráfego ativando o escalonamento automático. É possível definir um limite máximo para a capacidade de computação e estabelecer salvaguardas de custo. Para mais informações, consulte Capacidade de computação, nós e unidades de processamento.
❑  
Se você estiver usando uma configuração de instância birregional ou multirregional, escolha uma região líder que minimize a latência para gravações de aplicativos de serviços implantados nos locais mais sensíveis à latência. Teste as implicações de diferentes regiões líderes na latência da operação e ajuste para otimizar a performance do aplicativo. Planeje cenários de failover garantindo que a topologia do aplicativo possa se adaptar a mudanças na região líder durante interrupções regionais. Para mais informações, consulte Modificar a região líder de um banco de dados.
❑  
Configure tags e rótulos adequadamente para clareza operacional e rastreamento de recursos do Google Cloud. Use tags para agrupar instâncias por ambiente ou tipo de carga de trabalho. Use rótulos para metadados que ajudam na análise de custos e no gerenciamento de permissões. Para mais informações, consulte Controlar o acesso e organizar instâncias com tags.
❑  
Avalie se o aquecimento do Spanner é necessário, principalmente para serviços que esperam um tráfego repentino e alto no lançamento. Testar a latência em cargas iniciais altas pode revelar a necessidade de um aquecimento antes do lançamento para garantir um desempenho ideal. Se o aquecimento for necessário, gere uma carga artificial. Para mais informações, consulte Aquecer o banco de dados antes do lançamento do aplicativo.
❑  
Revise os limites e as cotas do Spanner antes da implantação. Se necessário, solicite aumentos de cota no console Google Cloud para evitar restrições durante os períodos de pico. Preste atenção aos limites rígidos (por exemplo, o número máximo de tabelas por banco de dados) para evitar problemas após a implantação. Para mais informações, consulte Cotas e limites.
❑  
Use ferramentas de automação, como o Terraform, para provisionar e gerenciar suas instâncias do Spanner, garantindo que as configurações sejam eficientes e à prova de erros. Para o gerenciamento de esquemas, considere usar ferramentas como Liquibase para evitar exclusões acidentais de esquemas durante as atualizações. Para mais informações, consulte Usar o Terraform com o Spanner.

Recuperação de desastres

Estabelecer uma estratégia robusta de recuperação de desastres (DR) é essencial para proteger dados, minimizar o tempo de inatividade e garantir a continuidade dos negócios durante falhas inesperadas. Testar regularmente os procedimentos de restauração e automatizar os backups ajuda a garantir a prontidão operacional, a conformidade com os objetivos de recuperação e a proteção de dados confiável adaptada às necessidades organizacionais.

Caixa de seleção Atividade
❑  
Defina uma estratégia abrangente de recuperação de desastres para o Spanner que inclua proteção de dados, objetivos de recuperação e cenários de falha. Estabeleça objetivos de tempo de recuperação (RTO) e objetivos de ponto de recuperação (RPO) claros que estejam alinhados aos requisitos de continuidade dos negócios. Especifique a frequência de backup, as políticas de retenção e use a recuperação pontual (PITR) para minimizar a perda de dados em caso de falhas. Leia a Visão geral da recuperação de desastres para identificar as ferramentas e técnicas certas e garantir a conformidade com disponibilidade, confiabilidade e segurança do seu aplicativo. Para mais informações, consulte o artigo Soluções de proteção e recuperação de dados no Spanner.
❑  
Crie documentação detalhada para procedimentos de backup e restauração, incluindo guias passo a passo para vários cenários de recuperação. Teste esses procedimentos regularmente para garantir a prontidão operacional e validar os requisitos de RTO e RPO. Os testes precisam simular condições e cenários de falha do mundo real para identificar lacunas e melhorar o processo de recuperação. Para mais informações, consulte Visão geral da restauração.
❑  
Implemente programações de backup automatizadas para garantir a proteção de dados consistente e confiável. Configure as configurações de frequência e retenção para corresponder às necessidades comerciais e obrigações regulatórias. Use os recursos de programação de backup do Spanner para automatizar a criação, o gerenciamento e o monitoramento de backups. Para mais informações, consulte Criar e gerenciar programações de backup.
❑  
Alinhe os procedimentos de failover com a topologia de configuração da instância do aplicativo para minimizar os impactos da latência em caso de interrupção. Teste cenários de recuperação de desastres para garantir que o aplicativo possa operar com eficiência quando a região líder for movida para uma região de failover. Para mais informações, consulte Modificar a região líder de um banco de dados.

Otimizador de consultas e gerenciamento de estatísticas

Gerenciar versões e estatísticas do otimizador de consultas é importante para manter um desempenho de consulta previsível e eficiente. Usar versões testadas e manter as estatísticas atualizadas garante a estabilidade, evita mudanças inesperadas de performance e otimiza os planos de execução de consultas, principalmente durante modificações significativas de dados ou esquemas.

Caixa de seleção Atividade
❑  
Por padrão, os bancos de dados do Spanner usam a versão mais recente do otimizador de consultas. Para garantir um desempenho previsível da consulta, use a versão do otimizador em que a carga de trabalho foi testada. Avalie regularmente novas versões do otimizador em um ambiente controlado e atualize a versão padrão somente depois de confirmar a compatibilidade e as melhorias de performance. Para mais informações, consulte a visão geral do otimizador de consultas.
❑  
Verifique se as estatísticas do otimizador de consultas estão atualizadas para oferecer suporte a planos de execução de consultas eficientes. Embora as estatísticas sejam atualizadas automaticamente, considere criar manualmente um novo pacote de estatísticas em cenários como modificações de dados em grande escala (por exemplo, inserções, atualizações ou exclusões em massa), adição de novos índices ou mudanças de esquema. Manter as estatísticas do otimizador de consultas atualizadas é fundamental para manter a performance ideal das consultas.
❑  
Em determinados cenários, como após exclusões em massa ou quando a geração de novas estatísticas pode afetar de maneira imprevisível a performance da consulta, é recomendável fixar um pacote de estatísticas específico. Isso oferece um desempenho de consulta consistente até que um novo pacote possa ser gerado e testado. Revise regularmente a necessidade de fixar estatísticas e desfixe assim que os pacotes atualizados forem validados. Para mais informações, consulte Pacotes de estatísticas do otimizador de consultas.

Segurança

Implementar medidas de controle de acesso é essencial para proteger dados sensíveis e evitar o acesso não autorizado no Spanner. Ao aplicar o acesso com privilégio mínimo, o controle de acesso granular (FGAC) e a proteção contra exclusão de banco de dados, você minimiza os riscos, garante a conformidade e protege os recursos críticos contra ações acidentais ou maliciosas.

Caixa de seleção Atividade
❑  
Revise e implemente políticas do Identity and Access Management (IAM) seguindo o princípio de privilégio mínimo para todos os usuários e contas de serviço que acessam seu banco de dados. Atribua apenas as permissões necessárias para realizar tarefas específicas e audite regularmente as permissões de controle de acesso para garantir a adesão a esse modelo. Use contas de serviço com privilégios mínimos para processos automatizados a fim de reduzir o risco de acesso não autorizado. Para mais informações, consulte a visão geral do IAM.
❑  
Se o aplicativo exigir acesso restrito a linhas, colunas ou células específicas em uma tabela, implemente o controle de acesso refinado (FGAC, na sigla em inglês). Crie e aplique políticas de acesso condicional com base em atributos do usuário ou valores de dados para aplicar regras de acesso granulares. Revise e atualize essas políticas regularmente para se alinhar aos requisitos de segurança e conformidade em constante evolução. Para mais informações, consulte a Visão geral do controle de acesso detalhado.
❑  
Implemente programações de backup automatizadas para garantir a proteção de dados consistente e confiável. Configure as configurações de frequência e retenção para corresponder às necessidades comerciais e obrigações regulatórias. Use os recursos de programação de backup do Spanner para automatizar a criação, o gerenciamento e o monitoramento de backups. Para mais informações, consulte Criar e gerenciar programações de backup.
❑  
Ative a proteção contra exclusão do banco de dados para evitar exclusões acidentais ou não autorizadas. Combine isso com controles rígidos do IAM para limitar os privilégios de exclusão a um pequeno conjunto confiável de usuários ou contas de serviço. Além disso, configure ferramentas de automação de infraestrutura, como o Terraform, para incluir proteções contra exclusão acidental de bancos de dados. Essa abordagem em camadas minimiza os riscos para ativos de dados críticos. Para mais informações, consulte Evitar a exclusão acidental de bancos de dados.

Geração de registros e monitoramento

A geração de registros e o monitoramento eficientes são essenciais para manter a visibilidade das operações do banco de dados, detectar anomalias e garantir a integridade do sistema. Usando registros de auditoria, rastreamento distribuído, painéis e alertas proativos, você pode identificar e resolver problemas rapidamente, otimizar o desempenho e atender aos requisitos de compliance.

Caixa de seleção Atividade
❑  
Ative o registro de auditoria para capturar informações detalhadas sobre as atividades do banco de dados. Configure os níveis de registro de auditoria de acordo com os requisitos operacionais e de compliance para monitorar padrões de acesso e detectar anomalias com eficácia. Os registros de auditoria podem ficar grandes, especialmente para solicitações DATA_READ e DATA_WRITE, já que todas as instruções SQL e DML são registradas para essas solicitações. Para mais informações, consulte Registro de auditoria do Spanner.

Ao encaminhar esses registros para um bucket de registros definido pelo usuário, é possível otimizar os custos de retenção de registros (os primeiros 30 dias não são cobrados) e controlar granularmente o acesso aos registros usando visualizações de registros.
❑  
Colete métricas do lado do cliente instrumentando a lógica do aplicativo com o OpenTelemetry para distribuir rastreamento e observabilidade. Configure a instrumentação do OpenTelemetry para capturar traces e métricas do Spanner, garantindo visibilidade de ponta a ponta do desempenho do aplicativo e das interações com o banco de dados. Para mais informações, consulte Capturar métricas personalizadas do lado do cliente usando o OpenTelemetry.
❑  
Crie e configure métricas de monitoramento para visualizar o desempenho da consulta, a latência, a utilização da CPU e o uso do armazenamento. Use essas métricas para acompanhamento em tempo real e análise histórica do desempenho do banco de dados. Para mais informações, consulte Monitorar instâncias com o Cloud Monitoring.
❑  
Defina alertas de monitoramento com base em limites para métricas importantes e detecte e resolva problemas de forma proativa. Configure alertas para condições como alta latência de consulta, baixa disponibilidade de armazenamento ou picos inesperados no tráfego. Integre esses alertas com ferramentas de resposta a incidentes para uma ação imediata. Para mais informações, consulte Criar alertas para métricas do Spanner.

Biblioteca de cliente

Configurar a inclusão de tags de operação, pools de sessão e políticas de nova tentativa é essencial para otimizar o desempenho, depurar problemas e manter a capacidade de recuperação no Spanner. Essas medidas aumentam a capacidade de observação, reduzem a latência e garantem o processamento eficiente das demandas de carga de trabalho e dos erros temporários, alinhando o comportamento do sistema aos requisitos do aplicativo.

Caixa de seleção Atividade
❑  
Configure a biblioteca de cliente para usar solicitações de consulta e tags de transação significativas. Use tags de solicitação e transação para entender melhor suas consultas, leituras e transações. Como prática recomendada, use metadados contextuais, como componente do aplicativo, tipo de solicitação ou contexto do usuário, nas tags para ativar a depuração e a introspecção avançadas. Verifique se as tags estão visíveis nas estatísticas e nos registros de consulta para facilitar a análise de desempenho e a solução de problemas. Para mais informações, consulte Resolver problemas com tags de solicitação e de transação.
❑  
Otimize o gerenciamento de sessões ativando o pool de sessões na biblioteca de cliente. Configure as configurações do pool, como sessões mínimas e máximas, para corresponder às demandas de carga de trabalho e minimizar a latência. Monitore regularmente o uso da sessão para ajustar esses parâmetros e garantir que o pool de sessões ofereça benefícios de performance consistentes. Para mais informações, consulte Sessões.
❑  
Em raras situações, os parâmetros padrão da biblioteca de cliente para novas tentativas, incluindo o número máximo de tentativas e os intervalos de espera exponencial, precisam ser configurados para equilibrar a capacidade de recuperação com o desempenho. Teste essas políticas para garantir que elas estejam alinhadas às necessidades do aplicativo. Para mais informações, consulte Configurar tempos limite e novas tentativas personalizados.

Suporte

Para minimizar o tempo de inatividade e o impacto, defina funções e responsabilidades claras para garantir respostas rápidas e coordenadas a problemas relacionados ao Spanner. Para mais informações, consulte Receber suporte.

Caixa de seleção Atividade
❑  
Estabeleça uma estrutura clara de resposta a incidentes, definindo papéis e responsabilidades para todos os membros da equipe envolvidos no gerenciamento de incidentes relacionados ao Spanner. Designe funções para incidentes, como comandante, líder de comunicação e especialistas no assunto (SMEs, na sigla em inglês), para garantir uma coordenação e comunicação eficientes durante incidentes. Desenvolver e documentar processos para identificar, encaminhar, mitigar e resolver problemas. Siga as práticas recomendadas descritas no Google SRE Workbook on Incident Response e em Managing Incidents. Realize treinamentos e simulações regulares de resposta a incidentes para garantir a prontidão e melhorar a capacidade da equipe de gerenciar cenários de alta pressão com eficácia.

Gerenciamento de custo

A implementação de estratégias de gerenciamento de custos, como escalonamento automático e backups incrementais, garante o uso eficiente de recursos e uma economia significativa. Alinhar o provisionamento de recursos com as demandas de carga de trabalho e otimizar os ambientes de não produção reduz ainda mais as despesas, mantendo o desempenho e a flexibilidade.

Caixa de seleção Atividade
❑  
Avalie e compre CUDs para o Spanner e reduza os custos em cargas de trabalho previsíveis. Esses compromissos podem gerar uma economia significativa em comparação com os preços sob demanda. Analise padrões de uso históricos para determinar os compromissos de CUD ideais. Para mais informações, consulte Descontos por compromisso de uso e Preços do Spanner.
❑  
Monitore a utilização da capacidade de computação e ajuste os recursos provisionados para manter os níveis recomendados de utilização da CPU. O provisionamento excessivo de recursos de computação pode gerar custos desnecessários, enquanto o provisionamento insuficiente pode afetar a performance. Siga as diretrizes de uso máximo da CPU do Spanner recomendadas para garantir um alinhamento de recursos econômico.
❑  
Ative o escalonamento automático para ajustar dinamicamente a capacidade de computação com base nas demandas de carga de trabalho. Isso garante o desempenho ideal durante picos de carga e reduz os custos em períodos de baixa atividade. Configure políticas de escalonamento com limites superior e inferior para controlar o custo e evitar o escalonamento excessivo. Para mais informações, consulte Visão geral do escalonamento automático.
❑  
Use backups incrementais para reduzir os custos de armazenamento de backup. Os backups incrementais armazenam apenas as mudanças nos dados desde o último backup. Isso reduz significativamente os requisitos de armazenamento em comparação com os backups completos. Incorpore backups incrementais à sua estratégia de backup. Para mais informações, consulte Backups incrementais.
❑  
Otimize os custos de ambientes que não são de produção selecionando a configuração de instância mais adequada e desprovisionando recursos quando os ambientes não estão em uso. Por exemplo, reduza ambientes não críticos após o horário comercial ou automatize o escalonamento de recursos para cenários de desenvolvimento e teste. Essa abordagem minimiza os custos e mantém a flexibilidade operacional.