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 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.

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

Um CDN opera 4 PoPs atendendo aos EUA continentais: Costa Oeste, Região Serrana, Meio-Oeste e Costa Leste. Cada um é dimensionado para ~25% do tráfego total dos EUA. O PoP da Região Serrana falha. Preveja: (1) quais PoPs vizinhos absorvem a carga redistribuída, & em que proporção aproximada, & (2) o que acontece se esses vizinhos foram dimensionados exatamente para 25% cada, sem folga.

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.

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

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.

Calcule o piso de latência para uma gravação de um usuário da UE (ida e volta do navegador deles para o backend em EU-West, para o primário em US-East e de volta). Compare com uma leitura de um usuário da UE atendida inteiramente pelo estado em cache em EU-West. Em seguida, proponha uma mudança arquitetural que reduza o piso de latência de gravação para usuários da UE.

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.

Projete a colocação dos PoPs: (1) como você distribuiria os 6 PoPs entre os três continentes, (2) para a menor participação de usuários (Ásia, com 10%), qual é o piso de latência para um usuário da Ásia ser atendido por um PoP na Europa, caso não exista um PoP na Ásia (assuma uma distância de ~9000 km), e (3) qual folga de capacidade você exigiria por PoP para sobreviver a uma falha de um único PoP sem causar um efeito cascata?

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.