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
- Migração (opcional)
- Implantação
- Otimizador de consultas e gerenciamento de estatísticas
- Recuperação de desastres
- Segurança
- Registro e monitoramento
- Biblioteca de cliente
- Suporte
- Gerenciamento de custo
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.
|