Cada PoP Possui uma Célula do Plano
Tesselação de Voronoi
Coloque N pontos (PoPs: Pontos de Presença) em um plano. Desenhe fronteiras de região de tal forma que cada ponto no plano seja atribuído ao PoP mais próximo. O resultado é um diagrama de Voronoi: o plano é particionado em N células, uma por PoP, cada uma contendo todos os pontos mais próximos do seu PoP do que de qualquer outro.
Geometria da CDN: cada solicitação do usuário é roteada para o PoP mais próximo. Cada PoP atende a uma célula do plano geográfico. As fronteiras das células são as bissetrizes perpendiculares das linhas entre PoPs vizinhos.
Leitura geométrica:
- Adicionar um PoP reduz as células dos vizinhos (& cria uma nova célula)
- Remover um PoP força sua célula a ser redistribuída para os vizinhos (pico de capacidade nos vizinhos)
- Um usuário próximo a uma fronteira de célula pode alternar entre PoPs à medida que o balanceamento de carga muda
- Uma falha em um PoP amplia a célula efetiva de cada vizinho durante a interrupção
Consequência operacional: quando um PoP falha, sua carga não desaparece; ela migra para os PoPs vizinhos. Se os vizinhos forem dimensionados apenas para sua célula normal, o pico os fará falhar em seguida (falha em cascata de PoPs). Provedores de CDN maduros dimensionam cada PoP considerando o pico de falha dos vizinhos.
A Desigualdade Triangular Que Você Não Pode Burlar
A Física Define o Piso
A luz viaja a ~300.000 km/s no vácuo. Em fibra óptica, cerca de 200.000 km/s devido ao índice de refração. Isso significa:
- ~1.000 km de fibra = ~5 ms em um sentido = ~10 ms ida e volta
- Costa a costa dos EUA (~5.000 km) = ~50 ms de RTT mínimo
- EUA para a Europa (~8.000 km) = ~80 ms de RTT mínimo
- Antípodo (metade do caminho ao redor do mundo) = ~200 ms de RTT mínimo
Este é um limite inferior. O RTT real é sempre maior (saltos de roteador, comutação, enfileiramento, congestionamento). Nenhum aplicativo pode ser mais rápido do que a física permite.
Desigualdade Triangular
Para três nós A, B e C, a desigualdade triangular afirma que d(A,C) <= d(A,B) + d(B,C): um caminho direto é mais curto (ou igual) a qualquer caminho indireto.
Leitura de rede: se seu serviço roteia A -> B -> C em vez de A -> C diretamente, a latência é pelo menos a soma das latências das duas pernas. Frequentemente é maior devido ao processamento em B.
Leitura arquitetural: cada indireção (proxy, balanceador de carga, salto de CDN) adiciona pelo menos uma perna de ida e volta à latência percebida pelo usuário. O benefício da CDN vem de encurtar a perna do usuário (PoP mais próximo que a origem), mesmo que o número total de saltos aumente.
Armadilhas multi-região: um serviço que lê da região A, mas grava na região B incorre na latência de A para B em cada gravação. Se A e B estiverem a 100 ms de distância, cada gravação leva no mínimo >= 100 ms. Bancos de dados estendidos pagam esse piso a cada vez.
Pague o Piso
Um serviço é executado em duas regiões: US-East (us-east-1) e EU-West (eu-west-1). As duas regiões estão a aproximadamente 5.500 km de distância. O serviço possui um banco de dados primário em US-East. Os usuários da UE têm suas solicitações atendidas por backends em EU-West, mas cada gravação requer uma chamada de volta para o primário em US-East.
Design de Capacidade Geográfica
Síntese
Agora você pode ler células de Voronoi como bacias de PoP, calcular pisos de latência da velocidade da luz e aplicar a curva de filas na camada de proxy.
Aplique os três.
Uma equipe planeja a cobertura de CDN para um serviço com usuários em três continentes: América do Norte (60% dos usuários), Europa (30%) e Ásia (10%). Eles têm orçamento para 6 PoPs. Cada PoP pode atender a uma célula estável com 70% de utilização sem ultrapassar o joelho da curva de enfileiramento.
Encerrando o Curso Complementar
Encerrando o Curso Complementar
Você concluiu as cinco lições companheiras de geometria de sistemas distribuídos:
- Proxies & Origins: grafos direcionados, contagem de saltos, fan-in / fan-out, indireção
- Escala Horizontal Stateless: Lei de Little como área, curva de fila e seu ponto de inflexão
- Separação de Ingresso e Egresso: estrutura bipartida, eliminação de vértice de corte, tolerância a particionamento
- Modos de Falha e Raio de Impacto: centralidade de intermediação, corte mínimo, diâmetro
- Observabilidade e Capacidade (esta lição): células de PoP de Voronoi, piso do triângulo de latência, design de capacidade geográfica
O fio condutor: sistemas distribuídos possuem estrutura geométrica. Toda arquitetura é um grafo. Todo piso de latência é uma desigualdade triangular. Toda decisão de capacidade é uma curva e um ponto de inflexão. Uma vez que você enxerga a geometria, as decisões operacionais decorrem dela.
Junto com as cinco lições principais (cs_distsys_*), você possui um modelo mental funcional de um sistema distribuído em escala web e a disciplina baseada em teoria dos grafos para raciocinar sobre ele.
Muito bem.