18 de março de 20264 min de leitura

Otimizando a escalabilidade de leitura: O papel do Autoscaling em Cloud SQL Read Pools

Shahzeb Farrukh

Google Cloud

Banner - Otimizando a escalabilidade de leitura: O papel do Autoscaling em Cloud SQL Read Pools

Para engenheiros e gestores que operam aplicações com alto volume de leituras, o desafio clássico é o gargalo no banco de dados primário. Historicamente, a solução era o desvio dessas cargas para read replicas, mas essa estratégia frequentemente esbarra na complexidade de gerenciamento: administrar manualmente múltiplos nós, configurar load balancers e garantir que o ciclo de vida dos containers ou instâncias não impacte a disponibilidade do serviço é uma tarefa que consome valiosas horas de engenharia.

O Google Cloud evoluiu essa abordagem com os Cloud SQL Read Pools. Agora, com a adição do autoscaling, essa funcionalidade deixa de ser uma simples alocação estática para se tornar um mecanismo dinâmico, disponível na edição Cloud SQL Enterprise Plus. O ponto central aqui não é apenas a feature em si, mas como o agrupamento de nós sob um único read endpoint simplifica o desenho da arquitetura e remove a necessidade de mudanças constantes no código da aplicação.

O conceito de Read Pools: Por que usar?

Quando você provisiona um read pool, o Cloud SQL abstrai a camada de réplicas em um conjunto de "nodes". O diferencial operacional reside no read endpoint: um único load balancer que distribui as queries via round-robin. Isso suporta de 1 a 20 nós, gerenciados como uma entidade única — se você altera uma configuração, flag de banco de dados ou tipo de VM, a alteração é aplicada a todos os nós do pool de forma consistente.

1

Essa gestão unificada é o que permite o scale-out e scale-in de forma transparente. Como a aplicação aponta sempre para o mesmo endpoint, os processos de deployment ou reconfiguração de infraestrutura ocorrem sem a necessidade de atualizar strings de conexão na camada de aplicação.

Escalabilidade dinâmica com Autoscaling

Em cenários brasileiros, onde picos de tráfego são comuns — especialmente no e-commerce ou em serviços de alto impacto — o over-provisioning é um inimigo silencioso (e caro) do seu orçamento de cloud. O autoscaling para read pools soluciona isso nativamente:

  • Gestão automática de tráfego: O sistema escala até 20 nós com base em CPU ou número de conexões ativas, garantindo SLA sem intervenção manual.
  • Eficiência de custos (FinOps): A capacidade de reduzir a escala em horários de baixa demanda é aplicada diretamente na redução do custo fatural.
  • Simplicidade operacional: O endpoint único mantém a consistência enquanto os nós são rotacionados ou escalados.

Para cenários de alta disponibilidade, o Cloud SQL mantém no mínimo dois nós, integrando-se ao SLA de 99,99%. O sistema é inteligente o suficiente para realizar manutenções com near-zero downtime e remover automaticamente instâncias consideradas insalubres (unhealthy) da rota de load balancing.

2

Aplicação Prática: O caso do Varejo

Considere picos sazonais, como a Black Friday. Com o escalonamento horizontal automático, sua infraestrutura absorve a carga adicional sem sacrificar a latência, e retrai instantaneamente quando o volume normaliza.

3

Exemplo de Implementation via gcloud CLI

Para criar um pool com autoscaling configurado para usar a utilização de CPU como métrica (alvo de 60%), utilize o comando abaixo:

gcloud sql instances create myautoscaledreadpool \
  --tier=db-perf-optimized-N-4 --edition=ENTERPRISE_PLUS \
  --instance-type=READ_POOL_INSTANCE \
  --master-instance-name=myprimary \
  --region=us-west1 \
  --node-count=2 \
  --auto-scale-enabled \
  --auto-scale-min-node-count=2 \
  --auto-scale-max-node-count=10 \
  --auto-scale-target-metrics=AVERAGE_CPU_UTILIZATION=0.60

Para pools existentes, o comando de patch habilita o recurso:

gcloud sql instances patch myreadpool \
  --auto-scale-enabled \
  --auto-scale-min-node-count=2 \
  --auto-scale-max-node-count=10 \
  --auto-scale-target-metrics=AVERAGE_DB_CONNECTIONS=100

Caso precise retomar o controle manual, o parâmetro --node-count sobrescreve a política de autoscaling. Em ambientes de missão crítica, a recomendação é utilizar estas automações para reduzir o toil (trabalho manual operacional) e focar a atuação do seu time de engenharia em deploy e performance, delegando a infraestrutura de replicação ao plano gerenciado.


Artigo originalmente publicado por Shahzeb FarrukhProduct Manager em Cloud Blog.

Gostou? Compartilhe:
Precisa de ajuda?Fale com nossos especialistas 👋
Avatar Walcew - Headset