הַרְחִיבִי מְקוֹם אָהֳלֵךְ harchivi mekom oholech · alarga o lugar da tua tenda · Yeshayahu 54:2

Blog/Artigos · Cloud e Plataforma

Autoscaling: alargar a tenda conforme a demanda, e recolhê-la depois

Escala horizontal e vertical, HPA e Karpenter, escala reativa e preditiva, right-sizing e a compensação entre custo e saturação.

Por Juliano Vince de Campos · · 9 min de leitura · 5 seções · 5 figuras

הַרְחָבָה HARCHIVI · YESHAYAHU 54:2

O profeta diz: alarga o lugar da tua tenda, estende as cortinas das tuas moradas, não poupes. A tenda é a moradia que se ajusta: cresce quando a família cresce, recolhe quando diminui, ao contrário da casa de pedra, fixa para sempre no tamanho do dia em que foi construída. Capacidade na nuvem devia ser tenda, e por décadas foi pedra. Comprava-se servidor para o pico, e ele ficava ocioso no vale, caro e parado; ou comprava-se para a média, e ele saturava no pico, derrubando o sistema quando mais se precisava dele. Autoscaling é a tenda: alarga o espaço quando a demanda sobe e o recolhe quando ela cai, pagando pelo que de fato se usa, e nunca mais pela pedra parada.

Capacidade fixa erra dos dois lados

A demanda de quase todo sistema varia: sobe de dia, cai de madrugada, dispara na promoção, recolhe no feriado. Capacidade fixa, dimensionada para um número só, erra em toda hora que não é aquela. Dimensionada para o pico, ela desperdiça o dia inteiro fora do pico, pagando por servidor ocioso que só serve nas poucas horas de maior movimento. Dimensionada para a média, ela satura no pico, e a saturação chega no pior momento, quando há mais usuário do que nunca, transformando o dia de maior oportunidade no dia da queda. Não existe número fixo certo para uma demanda que varia.

Autoscaling resolve isso ajustando a capacidade à demanda em tempo real. Quando a métrica que representa a carga sobe, uso de CPU, requisições por segundo, tamanho de fila, o sistema adiciona capacidade; quando ela cai, remove. A promessa é dupla e rara: melhor experiência no pico, porque há capacidade quando se precisa, e menor custo no vale, porque não se paga pelo que não se usa. É a tenda que se alarga na cheia da família e se recolhe quando ela sai, em vez da pedra que fica do mesmo tamanho enquanto a vida muda ao redor dela.

Figura 1Demanda ao longo do dia, contra capacidade fixa e capacidade que escala
025507510006121824Hora do diaUnidades de capacidade
  • Demanda real
  • Capacidade fixa (pico)
  • Capacidade que escala
Ver os dados da figura
Hora do diaDemanda realCapacidade fixa (pico)Capacidade que escala
0209528
62533
97080
128595
158090
1890100
214555
24229530
A capacidade fixa no pico (linha reta alta) desperdiça o dia inteiro fora do pico. A que escala segue a demanda de perto, com uma folga de segurança acima dela: capacidade quando se precisa, sem pagar pela pedra ociosa no vale.

Os tipos de escala: para os lados, para cima, e do zero

Há duas direções de escala e elas resolvem coisas diferentes. Escala horizontal adiciona mais cópias iguais: mais réplicas do serviço, mais nós no cluster. É a preferida, porque distribui a carga e aumenta a resiliência ao mesmo tempo, e no Kubernetes é o trabalho do HPA, o Horizontal Pod Autoscaler, que ajusta o número de pods pela métrica. Escala vertical dá mais recurso à mesma instância, mais CPU e memória a um pod, trabalho do VPA, útil quando o serviço não paraleliza bem, mas limitada pelo tamanho da maior máquina e por exigir, muitas vezes, reiniciar.

No nível da infraestrutura, o cluster autoscaler adiciona e remove nós conforme os pods precisam de lugar, e o Karpenter, da AWS, modernizou isso escolhendo o tipo de instância mais adequado e barato para a carga pendente, em vez de só ligar mais do mesmo. E há o corte mais radical: escalar a zero, desligar completamente o que não tem demanda, pagando nada quando não há uso, o que serverless faz por padrão e o Kubernetes alcança com ajuda. A tenda que se recolhe até sumir quando ninguém a habita é o extremo da economia, e o sonho de toda carga intermitente que hoje paga por ficar de pé sem ninguém dentro.

Figura 2Os mecanismos de autoscaling
  • HPAHorizontal (HPA)mais réplicas do serviço: distribui carga e aumenta resiliência
  • VPAVertical (VPA)mais CPU e memória à mesma instância; útil quando não paraleliza
  • CACluster autoscaleradiciona e remove nós conforme os pods precisam de lugar
  • KARPKarpenterescolhe o tipo de instância mais adequado e barato para a carga
  • ZEROEscalar a zerodesliga o que não tem demanda: paga nada sem uso
  • SPOTInstância spotcapacidade ociosa barata para carga tolerante a interrupção
Horizontal (mais cópias) é a preferida: distribui carga e resiliência juntas. Vertical dá mais recurso à mesma instância. Karpenter escolhe a instância certa; escalar a zero é a tenda que se recolhe até sumir quando ninguém a habita.

Reativo e preditivo: escalar depois ou antes da onda

O autoscaling clássico é reativo: espera a métrica subir, e então adiciona capacidade. Funciona, mas tem um atraso embutido que dói. Entre a demanda subir, a métrica refletir, a decisão disparar e a nova capacidade ficar pronta, passam segundos ou minutos, e nesse intervalo o sistema já está saturado. Para uma onda gradual, o reativo dá conta; para um pico súbito, uma promoção que começa às dez em ponto, uma notificação enviada a milhões, o reativo escala atrasado e o usuário sente a lentidão antes de a tenda terminar de alargar.

A resposta é antecipar. A escala programada liga capacidade antes do evento conhecido: se a promoção começa às dez, a capacidade sobe às nove e meia, sem esperar a métrica. E a escala preditiva usa o histórico para prever a demanda e se preparar para o padrão recorrente, o pico de toda segunda de manhã, a queda de todo feriado, escalando antes de a onda chegar. É a diferença entre alargar a tenda quando a chuva já começou e alargá-la vendo a nuvem no horizonte. O maduro combina: preditivo e programado para o que se conhece, reativo como rede de segurança para o que surpreende, para nunca ser pego nem desprevenido nem escalando tarde demais.

Figura 3Estratégia de escala: previsibilidade da demanda contra tolerância ao atraso
Previsibilidade da demanda
Preditiva ou programadademanda previsível, pico súbito: antecipa antes da onda, sem esperar a métrica.
Reativa bastademanda previsível, sobe gradual: dá tempo de reagir à métrica.
Reativa com folgaimprevisível mas tolerante: reage à métrica com margem de segurança.
Folga alta e reativaimprevisível e intolerante: mantém folga maior, o reativo não chega a tempo sozinho.
Quanto o sistema tolera atraso na escala
Reativo escala depois da onda, e para pico súbito chega tarde. Preditivo e programado antecipam o conhecido. O maduro combina: preditivo para o que se conhece, reativo como rede de segurança para o que surpreende.

Right-sizing e custo: a tenda do tamanho certo

Autoscaling ajusta quantas unidades você tem; right-sizing ajusta o tamanho de cada unidade. De nada adianta escalar bem o número de instâncias se cada instância é grande demais para o que roda nela: você escala desperdício. Right-sizing é medir o consumo real de cada carga e ajustar o recurso pedido ao que ela de fato usa, com uma folga sã. É onde autoscaling encontra o FinOps: a maior economia de nuvem quase nunca é uma negociação de desconto, é parar de pagar por recurso que ninguém usa, seja a instância ociosa que o autoscaling deveria ter recolhido, seja o pod que pede o dobro da memória que consome.

A camada final de economia é o tipo de compra. Instâncias spot, capacidade ociosa da nuvem vendida barata mas que pode ser retomada a qualquer momento, cortam custo drasticamente para cargas tolerantes a interrupção, e o autoscaling moderno as usa por padrão onde cabe. Reservas e planos de economia cobrem a base previsível de demanda com desconto, enquanto o autoscaling cobre a variação por cima. A tenda madura tem uma base reservada e barata para o que sempre está lá, e uma borda elástica e spot para o que varia. Dimensionar cada unidade, escolher o tipo de compra e escalar o número, os três juntos, é o que dá a tenda do tamanho exato da família, sem pedra ociosa nem aperto no pico.

Figura 4As três alavancas da capacidade pelo custo certo
AlavancaO que ajustaGanhoCuidado
Autoscalingquantas unidades, conforme a demandanão paga o ocioso no valeescalar na hora certa, nem tarde nem cedo
Right-sizingo tamanho de cada unidadepara de pagar recurso que ninguém usamanter folga sã, não apertar até saturar
Instância spoto tipo de compra da borda elásticacorte grande para carga interrompívelsó para o que tolera ser retomado
Reserva e savings plano tipo de compra da basedesconto na demanda sempre presentesó para a base previsível, não o pico
Autoscaling ajusta quantas unidades; right-sizing, o tamanho de cada uma. A tenda madura tem base reservada e barata para o que sempre está lá, e borda elástica e spot para o que varia. É onde a capacidade encontra o FinOps.

A maturidade da capacidade, e onde ela fecha o eixo

A capacidade amadurece da pedra à tenda inteligente. No começo é capacidade fixa, dimensionada no chute e paga cheia o tempo todo. Depois vem o autoscaling reativo básico, seguindo a métrica com atraso. No meio vem o right-sizing e o uso de spot, ajustando tamanho e tipo de compra. No topo é a escala preditiva guiada por IA, com base reservada e borda elástica, right-sizing contínuo e a tenda sempre do tamanho exato da demanda. Cada degrau aproxima o que se paga do que se usa, e afasta tanto o desperdício quanto a saturação.

Autoscaling fecha este eixo porque toca todos os outros. Ele é o que o Kubernetes executa com HPA e Karpenter; é o que dá elasticidade ao que o IaC provisiona; é a expressão operacional do pilar de eficiência de custo do Well-Architected; é irmão do FinOps na caça ao ocioso. A tenda que se alarga e se recolhe é a metáfora da nuvem bem usada: pagar pelo que se habita, quando se habita, e não pela pedra parada. Alargar o lugar da tenda, como diz o profeta, sem poupar quando a família cresce, e recolher as cortinas quando ela sai, é o que separa a nuvem que custa o que vale da nuvem que só reproduz, mais cara, o desperdício do datacenter.

Figura 5Maturidade de capacidade e autoscaling
  1. 0Pedracapacidade fixa no chute, paga cheia o tempo todo
  2. 1Reativo básicoautoscaling segue a métrica, com atraso no pico súbito
  3. 2Right-sizedtamanho de cada unidade ajustado ao consumo real
  4. 3Com spot e reservabase reservada barata, borda elástica e spot por cima
  5. 4PreditivoIA antecipa o pico recorrente antes da métrica se mexer
  6. 5Tenda exatacapacidade sempre no tamanho da demanda, sem ocioso nem saturação
Cada degrau aproxima o que se paga do que se usa. Autoscaling fecha o eixo: é o que o Kubernetes executa, o que dá elasticidade ao IaC, o pilar de custo do Well-Architected e o irmão do FinOps na caça ao ocioso.

Para levar

Autoscaling é a tenda que se alarga na cheia da demanda e se recolhe no vale, contra a pedra da capacidade fixa que desperdiça no vale e satura no pico. Escala horizontal, vertical, cluster autoscaler e Karpenter dão os mecanismos; reativo reage à onda e preditivo a antecipa; e right-sizing com spot e reserva dão a tenda do tamanho e do custo certos. A IA torna a escala de fato preditiva e o right-sizing contínuo. Mas decidir a folga de segurança, o quanto se aceita arriscar saturação para economizar, continua sendo julgamento de quem equilibra custo e confiabilidade, o mesmo trade-off que abre o Well-Architected e fecha este eixo.

Tags

  • #julianovincedecampos
  • #Autoscaling
  • #CloudEPlataforma
  • #Kubernetes
  • #Capacidade
  • #FinOps
  • #Karpenter

Onde eu estudei, me certifiquei e trabalhei

  • University of Cambridge
  • PUC Minas
  • PUC-RS
  • PUC Goiás
  • Pontificia Universidad Católica del Perú
  • Amazon Web Services
  • Google
  • IBM
  • Oracle
  • COBIT 5 Foundation
  • ITIL v3 Foundation
  • Exemplar Global
  • Red Team Leaders
  • Infosec
  • Salesforce
  • Flowgrammers
  • ISO/IEC 27001
  • NIST Cybersecurity Framework
  • Compass UOL
  • Luby
  • Creditas
  • PicPay
  • PagoNxt, Santander
  • Mercado Pago
  • Itaú Unibanco
  • Foursys
  • Soluti Certificação Digital