English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

visitante
1 / ?

Cada PoP Tem uma Célula do Plano

Tesselamento de Voronoi

Coloque N pontos (PoPs: Pontos de Presença) em um plano. Desenhe limites de região de forma que cada ponto no plano seja atribuído ao mais próximo PoP. O resultado é um diagrama de Voronoi: o plano é partitionado em N células, uma por PoP, cada contendo todos os pontos mais próximos de seu PoP do que de qualquer outro.

Geometria CDN: cada solicitação de usuário roteia para o PoP mais próximo. Cada PoP serve uma célula do plano geográfico. As fronteiras das células são os bissectores perpendiculares das linhas entre PoPs vizinhos.

Leitura Geométrica:

- Adicionar um PoP diminui as células de seus vizinhos (& cria uma nova célula)

- Remover um PoP força sua carga a redistribuir para vizinhos (surto de capacidade nos vizinhos)

- Um usuário perto de uma fronteira de célula pode alternar entre PoPs à medida que a distribuição de carga muda

- Uma falha de um PoP amplia todas as células efetivas dos vizinhos durante a interrupção

Consequência Operacional: quando um PoP falha, sua carga não desaparece; migra para PoPs vizinhos. Se os vizinhos forem dimensionados apenas para sua célula normal, o surto quebra-os em seguida (falha cascata de PoP). Provedores de CDN maduros dimensionam cada PoP com surto de falha de vizinho em mente.

Células de Voronoi em torno dos PoPs; uma falha de PoP amplia as células dos vizinhos

Um CDN executa 4 PoPs servindo a América do Norte: Leste, Oeste, Mountain, Midwest. Cada um é dimensionado para ~25% do tráfego total dos EUA. O PoP Mountain falha. Prediga: (1) quais PoPs vizinhos absorvem a carga redistribuída, e em aproximadamente que proporção, e (2) o que acontece se essos vizinhos fossem dimensionados exatamente para 25% cada um, sem espaço para expansão.

A Desigualdade Triangular que Não Pode Ser Enganada

Física Define o Piso

A luz viaja a ~300.000 km/s no vácuo. Em fio, cerca de 200.000 km/s devido ao índice de refração. Isso significa:

- ~1.000 km de fio = ~5 ms para ida = ~10 ms para ida e volta

- Lado a lado nos EUA (~5.000 km) = ~50 ms RTT mínimo

- EUA para a Europa (~8.000 km) = ~80 ms RTT mínimo

- Antipodal (meio em torno do mundo) = ~200 ms RTT mínimo

Este é um piso. O RTT real sempre é maior (salto de roteador, troca, filas, congestionamento). Nenhuma aplicação pode ser mais rápida do que a física permite.

Triângulo de Desigualdade

Para três nós A, B, C, o triângulo de desigualdade diz que d(A,C) <= d(A,B) + d(B,C): uma rota direta é mais curta (ou igual) do que qualquer rota indireta.

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 duas latências de percurso. Geralmente mais devido ao processamento em B.

Leitura arquitetural: cada indireção (proxy, balanceador de carga, salto no CDN) adiciona pelo menos uma perna de volta ao latência percebida pelo usuário. O benefício do CDN vem da redução da perna do usuário (PoP mais próximo do origem), mesmo que o total de saltos aumente.

Armadilhas de múltiplas regiões: um serviço que lê da região A, mas grava na região B incorre na latência A-to-B em cada gravação. Se A & B estão a 100 ms de distância, cada gravação leva >= 100 ms mínimo. Bancos de dados estendidos pagam este piso a cada vez.

Triângulo de Latência: A-B-C definido pela distância física

Pague o Chão

Um serviço opera em duas regiões: US-East (us-east-1) & EU-West (eu-west-1). As duas regiões estão a cerca de 5.500 km de distância. O serviço tem um banco de dados primário nos EUA-East. Os usuários na UE têm suas solicitações atendidas pelos backends EU-West, mas cada escrita requer uma chamada de volta para o banco de dados primário nos EUA-East.

Calcule a latência do chão para uma escrita de usuário na UE (ida e volta do navegador do usuário na UE para o backend EU-West para o primário nos EUA & de volta). Compare com uma leitura de usuário servida inteiramente do estado cacheado no EU-West. Então, proponha uma mudança arquitetural que reduz a latência do chão para escritas de usuários na UE.

Design de Capacidade Geográfica

Síntese

Agora você pode ler células de Voronoi como coletas de PoP de Pop, calcular pátios de latência de velocidade da luz e aplicar a curva de fila no nível de proxy.

Aplique os três.

Uma equipe planeja a cobertura do 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 servir uma célula estável em 70% de utilização sem cruzar o joelho da curva de fila.

Projete a localização dos PoP: (1) como você distribuiria 6 PoPs nas três continentes, (2) para a menor participação de usuários (Ásia em 10%), qual é o piso de latência para um usuário na Ásia sendo atendido por um PoP na Europa se não houver PoP na Ásia (suponha uma distância de ~9000 km) e (3) qual espaço de capacidade você precisaria por PoP para sobreviver a uma falha de um único PoP sem cascata?

Encerrando o Curso Companheiro

Encerrando o Curso Companheiro

Você concluiu as cinco lições de geometria-de-* companheiras:

- Proxies & Origins: grafos direcionados, contagem de saltos, fan-in / fan-out, indireção

- Stateless Horizontal Scaling: Lei de Little como área, curva de fila e seu joelho

- Ingress & Egress Separation: estrutura bipartida, eliminação de vértices de corte, tolerância a partições

- Failure Modes & Blast Radius: centralidade entre vértices, min-corte, diâmetro

- Observabilidade & Capacity (esta): células de PoP de Voronoi, piso triangular de latência, design de capacidade geográfica

A linha de fundo: sistemas distribuídos têm estrutura geométrica. Cada arquitetura é um gráfico. Cada piso de latência é uma desigualdade triangular. Cada decisão de capacidade é uma curva e um joelho. Quando você vê a geometria, as decisões operacionais seguem daí.

Juntamente com as cinco lições principais (cs_distsys_*), você tem um modelo mental funcional de um sistema de computação distribuído na web e a disciplina geométrica para raciocinar sobre ele.

Bem feito.