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 as principais considerações para minimizar riscos, otimizar o desempenho 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 de verificação é 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 alto desempenho e escalonabilidade. Testes rigorosos de ponta a ponta e em escala de produção garantem que o sistema possa lidar com cargas de trabalho reais, picos de carga e operações simultâneas, além de minimizar os riscos de gargalos ou falhas na produção.

Caixa de seleção Atividade
❑  
Projete o esquema com escalonabilidade e arquitetura distribuída do Spanner em mente. Siga as práticas recomendadas, como selecionar chaves primárias e índices adequados para evitar pontos de acesso e considerar otimizações, como intercalação de tabelas para dados relacionados. Revise as práticas recomendadas de design de esquema para garantir que o esquema seja compatível com 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 bloqueio de leitura e gravação, somente leitura forte e instruções DML particionadas, para equilibrar consistência, capacidade de processamento e latência. Minimize os escopos de bloqueio usando transações somente leitura para consultas, processamento em lote para máxima capacidade de processamento de DML ou instruções DML particionadas para atualizações e exclusões em grande escala. Ao migrar de sistemas com níveis de isolamento diferentes (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 o desempenho das consultas. Simule cenários de pico e alta simultaneidade que imitam cargas de aplicativos do mundo real, incluindo diversos formatos 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 com processos paralelos, como carregamentos 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 uma performance de consulta previsível, 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 as novas versões do otimizador em um ambiente controlado e atualize a versão padrão somente depois de confirmar as melhorias de compatibilidade e desempenho. Para mais informações, consulte 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 garantir o desempenho ideal das consultas.

Migração (opcional)

A migração de banco de dados é um processo abrangente que exige uma investigação 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 (SOP, na sigla em inglês) detalhado para a transição da migração. Isso inclui etapas para lançamento de aplicativos, troca de banco de dados e 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 transição 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 fallback detalhado para reverter para o sistema de origem em caso de problemas críticos durante a migração. Teste os procedimentos de fallback em um ambiente de preparo para garantir que sejam confiáveis e possam ser executados com o mínimo de inatividade. Defina claramente as condições que acionariam um plano de contingência e garanta que a equipe esteja treinada 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 (seja regional, birregional ou multirregional) está alinhada com os requisitos de disponibilidade e latência da carga de trabalho do aplicativo, além de considerar as questões geográficas. Calcule a capacidade de computação de destino com base nos tamanhos de armazenamento e padrões de tráfego esperados, além dos limites de utilização recomendados, garantindo capacidade suficiente para interrupções zonais ou regionais. Planeje-se para picos de tráfego ativando o escalonamento automático. É possível definir um limite máximo para a capacidade de computação para estabelecer proteções 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 principais 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 na gestão 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 de pré-lançamento para garantir o 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 do Google Cloud para evitar restrições durante períodos de pico. Preste atenção aos limites rígidos (por exemplo, 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, use ferramentas como o Liquibase para evitar quedas 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 da organização.

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 de 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. Consulte a Visão geral da recuperação de desastres para identificar as ferramentas e técnicas certas para garantir a conformidade com a disponibilidade, confiabilidade e segurança do seu aplicativo. Para mais informações, consulte o whitepaper 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 detalhados 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 uma proteção de dados consistente e confiável. Defina as configurações de frequência e retenção para atender às necessidades comerciais e às 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 de instância do aplicativo para minimizar os impactos de latência em caso de interrupção. Testar cenários de recuperação de desastres, garantindo que o aplicativo possa operar com eficiência operacional 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 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 uma performance de consulta previsível, use a versão do otimizador em que a carga de trabalho foi testada. Avalie regularmente as novas versões do otimizador em um ambiente controlado e atualize a versão padrão somente depois de confirmar as melhorias de compatibilidade e desempenho. 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 o desempenho 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 o desempenho da consulta, é recomendável fixar um pacote de estatísticas específico. Isso garante 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 quando 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, é possível minimizar riscos, garantir a conformidade e proteger ativos críticos contra ações acidentais ou mal-intencionadas.

Caixa de seleção Atividade
❑  
Revise e implemente as 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 e reduza 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). Projete e aplique políticas de acesso condicional com base em atributos de usuário ou valores de dados para aplicar regras de acesso granulares. Revise e atualize regularmente essas políticas 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.
❑  
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 conjunto pequeno e 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 a exclusão não intencional dos seus bancos de dados. Essa abordagem em camadas minimiza os riscos para recursos 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 eficazes são essenciais para manter a visibilidade das operações do banco de dados, detectar anomalias e garantir a integridade do sistema. Ao usar registros de auditoria, rastreamento distribuído, painéis e alertas proativos, é possível identificar e resolver problemas rapidamente, otimizar o desempenho e atender aos requisitos de conformidade.

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 de maneira eficaz. Os registros de auditoria podem ficar grandes, principalmente 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 Geração de registros de auditoria do Spanner.

Ao rotear 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.
❑  
Coletar métricas do lado do cliente instrumentando a lógica do aplicativo com o OpenTelemetry para distribuir o rastreamento e a 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 monitoramento 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 críticas para detectar e resolver problemas de forma proativa. Configure alertas para condições como alta latência de consulta, baixa disponibilidade de armazenamento ou picos inesperados de tráfego. Integre esses alertas com ferramentas de resposta a incidentes para uma ação rápida. Para mais informações, consulte Criar alertas para métricas do Spanner.

Biblioteca de cliente

Configurar a inclusão de tags de operação, os pools de sessões e as políticas de repetição é fundamental para otimizar o desempenho, depurar problemas e manter a resiliência 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 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. Defina as configurações do pool, como o número mínimo e máximo de sessões, para atender à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 cenários raros, 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 resiliência com o desempenho. Teste essas políticas com atenção 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 a incidentes do 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. Designar funções de incidente, como comandante de incidentes, líder de comunicações 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, reduzir e resolver problemas. Siga as práticas recomendadas descritas no Google SRE Workbook sobre resposta a incidentes e Gerenciamento de incidentes. 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

Implementar estratégias de gerenciamento de custos, como escalonamento automático e backups incrementais, garante o uso eficiente de recursos e uma economia significativa de custos. 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 para reduzir os custos em cargas de trabalho previsíveis. Esses compromissos podem proporcionar uma economia significativa em comparação com os preços sob demanda. Analise os 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 o uso da capacidade de computação e ajuste os recursos provisionados para manter os níveis recomendados de uso 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 recomendadas de uso máximo da CPU do Spanner 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 a performance ideal durante os picos de carga e reduz os custos em períodos de baixa atividade. Configure políticas de escalonamento com limites superiores e inferiores para controlar os custos 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 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.