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 serve para destacar as principais considerações para minimizar riscos, otimizar o desempenho e garantir o alinhamento com as metas de negócios e operacionais, oferecendo uma abordagem sistemática para oferecer uma implantação do Spanner simples e confiável.
Esta lista é 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, testes e otimização
Otimizar o design de esquemas, transações e consultas é essencial para usar a arquitetura distribuída do Spanner para alto desempenho e escalonamento. Testes completos e rigorosos na produção garantem que o sistema possa lidar com cargas de trabalho reais, cargas de pico e operações simultâneas, minimizando os riscos de gargalos ou falhas na produção.
Caixa de seleção | Atividade |
---|---|
❑ |
Projetar 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 a intercalação de tabelas para dados relacionados. Consulte
Práticas recomendadas de design de esquema
para garantir que o esquema ofereça suporte a alto desempenho e escalonabilidade
nas cargas de trabalho esperadas.
|
❑ |
Otimize transações e consultas para bloqueio mínimo e desempenho
máximo. Use os modos de transação do Spanner, como
transações de leitura e gravação com bloqueio, instruções DML particionadas e
somente leitura, para equilibrar a consistência, o throughput e a latência. Reduza
os escopos de bloqueio usando
transações somente leitura
para consultas, loteamento
para o máximo de transferência 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 em escala rigorosos para validar o design do esquema,
o comportamento da transação e o desempenho da consulta. Simule cenários de pico e
alta simultaneidade que imitam cargas de aplicativos reais,
incluindo diversas formas de transação e padrões de consulta. Avalie
a latência e o throughput 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 que interagem, não apenas
aplicativos isolados. Simule jornadas abrangentes do usuário
com processos paralelos, como cargas em lote ou tarefas
administrativas que acessam o banco de dados. Execute testes na configuração de instância do Spanner de produção, garantindo que os drivers e serviços de teste de carga estejam alinhados geograficamente com a topologia de implantação de produção pretendida. Essa abordagem holística identifica possíveis conflitos com antecedência e garante o bom desempenho do banco de dados durante as operações reais.
|
❑ |
Para garantir a performance 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 as 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
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 consulta eficientes.
Embora as estatísticas sejam atualizadas automaticamente, considere criar 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.
|
Migração (opcional)
A migração de banco de dados é um processo abrangente que exige uma análise detalhada dos detalhes de cada jornada de migração. Considere o seguinte na sua estratégia de migração:
Caixa de seleção | Atividade |
---|---|
❑ |
Desenvolver um procedimento operacional padrão (SOP) detalhado para a
migração. Isso inclui etapas para lançamento de aplicativos,
conversão 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 mudança 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 alternativo detalhado para reverter para o sistema de origem no
caso de problemas críticos durante a migração. Teste os procedimentos
de fallback em um ambiente de preparo para garantir que eles sejam confiáveis
e possam ser executados com o mínimo de tempo de inatividade. Defina claramente as condições
que acionam um plano alternativo e garanta que a equipe seja treinada para executar
esse plano de maneira rápida e eficiente.
|
Implantação
O planejamento adequado da implantação garante que as configurações do Spanner atendam aos requisitos de carga de trabalho de disponibilidade, latência e escalonabilidade, considerando considerações geográficas e operacionais. O alinhamento do dimensionamento, gerenciamento de recursos, cenários de failover e automação minimiza os riscos, garante o desempenho ideal e evita restrições ou falhas 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 com a disponibilidade da carga de trabalho do aplicativo e os requisitos de latência,
considerando as considerações geográficas. Calcule a capacidade de computação desejada com base nos tamanhos de armazenamento esperados, nos padrões de tráfego e nos limites de utilização recomendados, garantindo capacidade suficiente para interrupções 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 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 dual-region ou multi-region,
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 o desempenho do aplicativo. Planeje cenários de failover
garantindo que a topologia do aplicativo possa se adaptar às
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 de forma adequada 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,
especialmente 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
aquecimento antes do lançamento para garantir o desempenho ideal. Se o aquecimento for
necessário, gere carga artificial. Para mais informações, consulte
Aquecer o banco de dados antes da inicialização do aplicativo.
|
❑ |
Confira 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 os períodos de pico. Tenha cuidado com os limites rígidos (por exemplo,
tabelas máximas 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 a exclusão acidental 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, na sigla em inglês) é 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, o compliance com 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 claros de tempo de recuperação (RTO, na sigla em inglês) e de ponto de recuperação (RPO, na sigla em inglês) 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, na sigla em inglês) 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 e garantir a conformidade com
a disponibilidade, confiabilidade e segurança do seu aplicativo. Para mais
informações, consulte o
artigo técnico
Soluções de proteção e recuperação de dados no Spanner.
|
❑ |
Crie uma 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 falhas
reais 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
atender às necessidades comerciais e obrigações regulamentares. 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.
|
❑ |
Alinhar os procedimentos de failover com a topologia de configuração de instância do seu aplicativo
para minimizar os impactos de latência em caso de interrupção. Teste cenários de recuperação de
desastres, garantindo que o aplicativo possa operar de maneira eficiente
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 a performance de consulta previsível e eficiente. Usar versões testadas e manter as estatísticas atualizadas garante estabilidade, evita mudanças inesperadas no desempenho e otimiza os planos de execução de consultas, especialmente 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 a previsibilidade do desempenho 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 consulta eficientes.
Embora as estatísticas sejam atualizadas automaticamente, considere criar 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 alguns casos, como após exclusões em massa ou quando a geração de novas estatísticas pode afetar de forma imprevisível a performance da consulta, é recomendável fixar um pacote de estatísticas específico. Isso oferece
desempenho consistente da consulta até que um novo pacote possa ser gerado e
testado. Revise regularmente a necessidade de fixar estatísticas e desfixar 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 acesso não autorizado no Spanner. Ao aplicar o acesso de privilégio mínimo, o controle de acesso granular (FGAC) e a proteção contra exclusão de banco de dados, você pode minimizar os riscos, garantir a conformidade e proteger os recursos críticos contra ações acidentais ou maliciosas.
Caixa de seleção | Atividade |
---|---|
❑ |
Analise e implemente políticas de gerenciamento de identidade e acesso (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 granular
(FGAC, na sigla em inglês). Projete e aplique políticas de acesso condicional com base em atributos do usuário ou valores de dados para aplicar regras de acesso granular. Revise e atualize essas políticas regularmente para alinhá-las aos requisitos de segurança e conformidade em 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
atender às necessidades comerciais e obrigações regulamentares. 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 de 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 de 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 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 maneira adequada com base nos requisitos operacionais e de conformidade para monitorar padrões de acesso e detectar anomalias de maneira eficaz. Os registros de auditoria podem aumentar muito,
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
Registro de auditoria do Spanner.
O roteamento desses registros para um bucket de registro definido pelo usuário permite otimizar os custos de retenção de registro (os primeiros 30 dias não são cobrados) e controlar de forma granular o acesso a registros usando visualizações de registro. |
❑ |
Colete 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 rastros e métricas do
Spanner, garantindo visibilidade completa do desempenho
do aplicativo e das interações do 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 a performance da consulta, a latência, a utilização da CPU e o uso do armazenamento.
Use essas métricas para rastreamento em tempo real e análise histórica da
performance 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 latência de consulta alta, baixa disponibilidade de armazenamento ou picos inesperados no tráfego. Integre esses alertas a 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 nova tentativa é essencial para otimizar o desempenho, depurar problemas e manter a resiliência no Spanner. Essas medidas melhoram a observabilidade, reduzem a latência e garantem o processamento eficiente de demandas de carga de trabalho e erros temporários, alinhando o comportamento do sistema aos requisitos do aplicativo.
Caixa de seleção | Atividade |
---|---|
❑ |
Configure a biblioteca de cliente para usar tags de consulta e transação significativas. É possível usar 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 aprimoradas. 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 tags de transação.
|
❑ |
Otimize o gerenciamento de sessões ativando o pool de sessões na biblioteca
do 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 de sessões para ajustar esses parâmetros e garantir que o pool de sessões ofereça benefícios de desempenho consistentes. Para mais
informações, consulte Sessões.
|
❑ |
Em casos raros, os parâmetros padrão da biblioteca de cliente para novas tentativas,
incluindo tentativas máximas e intervalos de espera exponencial, precisam ser
configurados para equilibrar a resiliência 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 papéis e responsabilidades claros de incidentes para garantir respostas rápidas e coordenadas aos problemas relacionados ao Spanner. Para mais informações, consulte Receber suporte.
Caixa de seleção | Atividade |
---|---|
❑ |
Estabeleça um framework claro de resposta a incidentes, definindo funções e
responsabilidades para todos os membros da equipe envolvidos no gerenciamento de
incidentes relacionados ao Spanner. Designar funções de incidentes, como
comandante, líder de comunicações e especialistas em assunto
(SME), para garantir a coordenação e a comunicação eficientes durante
incidentes. Desenvolva e documente processos para identificar, encaminhar,
mitigar e resolver problemas. Siga as práticas recomendadas descritas no
Google SRE Workbook sobre resposta a incidentes
e em Gerenciamento de incidentes.
Realize treinamentos e simulações de resposta a incidentes regularmente para garantir
a prontidão e melhorar a capacidade da equipe de gerenciar cenários de alta
pressão de maneira eficaz.
|
Gerenciamento de custo
Implementar estratégias de gerenciamento de custos, como descontos por compromisso de uso (CUDs), autoescalonamento e backups incrementais, garantem a utilização eficiente de recursos e economias significativas. O alinhamento do provisionamento de recursos com as demandas de carga de trabalho e a otimização de ambientes não de produção reduzem 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
economias significativas 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 a utilização da capacidade de computação e ajuste os recursos provisionados
para manter os níveis de utilização da CPU recomendados. O provisionamento excessivo de recursos de computação pode gerar custos desnecessários, enquanto o provisionamento insuficiente pode afetar o desempenho. Siga as diretrizes de utilização máxima da CPU do Spanner recomendadas para garantir o alinhamento de recursos com bom custo-benefício.
|
❑ |
Ative o escalonamento automático para ajustar dinamicamente a capacidade computacional com base nas demandas de carga de trabalho. Isso garante o desempenho ideal durante picos de carga
e reduz os custos durante períodos de baixa atividade. Configure políticas de escalonamento com limites máximos e mínimos para controlar 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 de 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 para ambientes que não são de produção selecionando a configuração de instância mais
otimizada e provisionando recursos quando
os ambientes não estão em uso. Por exemplo, reduza o tamanho de ambientes não críticos
após o horário comercial ou automatize a escala de recursos para cenários de desenvolvimento
e teste. Essa abordagem minimiza os custos e mantém
a flexibilidade operacional.
|