A ARTE DA ESCALA Construindo APIs de Alta Performance em .NET

Português

Existe uma crença bastante difundida no universo do desenvolvimento de

software: quando o sistema fica lento, basta adicionar mais servidores. Essa

ideia, embora contenha um fundo de verdade, simplifica drasticamente um

problema que é, na sua essência, de arquitetura e não apenas de infraestrutura.

Escalabilidade não se resume a provisionar mais máquinas ou aumentar os

recursos computacionais de forma linear. Um sistema mal projetado, ao receber

mais carga, tende a amplificar seus gargalos em vez de distribuí-los. Conexões

de banco de dados se esgotam, filas internas transbordam, o garbage collector

entra em ciclos frequentes de coleta, e a latência sobe de forma exponencial.

Adicionar servidores a essa equação apenas multiplica o custo sem resolver a

causa raiz.

O problema real de escalabilidade reside em como as partes de um sistema se

comunicam, como o trabalho é distribuído e como os recursos são gerenciados

sob pressão. É uma questão que envolve decisões de design: o uso inteligente

de assincronismo, a adoção de mensageria para desacoplar componentes, a

implementação de padrões de resiliência e a instrumentação adequada para

observar o comportamento em produção

Mostrar mais