Como grandes empresas como o YouTube balanceam o tráfego com apenas um IP [duplicado]

7

Examinando os registros A para youtube.com (por exemplo), vejo apenas um endereço IP.

Como isso pode ser possível, dado o volume de tráfego que eles lidam?

Eles usam anycast com balanceadores de carga?

    
por Victor Lft 27.08.2015 / 01:30

3 respostas

15

Existem vários recursos que provavelmente contribuem para o que você está vendo:

  • anycast pode permitir um IP para ser atendido por servidores em vários locais.
  • balanço geográfico fornece IPs diferentes dependendo de qual região você está e qual é a carga nos data centers
  • Os balanceadores de carga geralmente incluem algum tipo de hot failover de IP para melhorar a confiabilidade

O balanceamento de anycast e geo ajudará a distribuir a carga sem que o usuário veja mais de um ou alguns IPs. Os balanceadores de carga ajudarão a confiabilidade em um data center, portanto, esses poucos IPs provavelmente não estarão propensos a pontos únicos de falha.

a realidade não se encaixa na questão

Apesar da pergunta e confirmação nos comentários, vejo mais IPs para o youtube:

$ dig youtube.com A

; <<>> DiG 9.8.1-P1 <<>> youtube.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 195
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;youtube.com.           IN  A

;; ANSWER SECTION:
youtube.com.        300 IN  A   173.194.33.163
youtube.com.        300 IN  A   173.194.33.164
youtube.com.        300 IN  A   173.194.33.165
youtube.com.        300 IN  A   173.194.33.166
youtube.com.        300 IN  A   173.194.33.167
youtube.com.        300 IN  A   173.194.33.168
youtube.com.        300 IN  A   173.194.33.169
youtube.com.        300 IN  A   173.194.33.174
youtube.com.        300 IN  A   173.194.33.160
youtube.com.        300 IN  A   173.194.33.161
youtube.com.        300 IN  A   173.194.33.162

;; Query time: 14 msec
;; SERVER: 172.16.0.23#53(172.16.0.23)
;; WHEN: Wed Aug 26 23:45:18 2015
;; MSG SIZE  rcvd: 205
    
por 27.08.2015 / 01:44
11

Existem várias estratégias em jogo com grandes sites como o youtube:

  • Nem todos recebem o mesmo endereço IP. Solicitações DNS diferentes receberão registros A diferentes retornando. Às vezes, endereços IP diferentes são retornados com base em indicadores geográficos (você obtém um IP "próximo a você") e algumas variações são apenas para fins de balanceamento de carga.

  • Poucas solicitações realmente vão para o site "principal". Se você examinar o conjunto completo de solicitações para a montagem de uma página solicitada em youtube.com , você notará que a grande maioria delas vai para outros domínios, que são tratados separadamente.

  • Muitos e muitos balanceadores de carga. Quando uma solicitação chega a um único endereço IP, balanceadores de carga altamente eficientes e altamente escalonáveis direcionam as solicitações para um número muito grande de servidores Web front-end.

  • Muitas máquinas atendem a uma única solicitação. Os servidores Web frontend fazem muito pouco do trabalho envolvido na manutenção de uma solicitação. Eles são principalmente para análise de HTTP e roteamento para mais camadas de servidores, cada cluster do qual faz uma parte muito pequena e especializada da tarefa maior de gerar uma página. Não tenho uma referência off-hand, mas lembro-me de ter lido um artigo há alguns anos que dizia que cada solicitação de pesquisa do Google faria com que o código fosse executado em mais de cem servidores individuais para gerar a resposta.

Espero que apague as coisas para você um pouco. Se você tiver mais alguma dúvida, provavelmente será melhor criar uma nova pergunta bem especificada, em vez de uma longa discussão nos comentários.

    
por 27.08.2015 / 01:41
4

O Google / Youtube (assim como muitas outras empresas, em particular as CDNs) colocam os servidores com muitos ISPs e, em seguida, o DNS retornará o endereço IP para esses servidores. Isso explica por que algumas pessoas podem ver apenas um IP, e outras vêem uma dúzia.

Assim, o servidor que você vê pode não estar em um data center do Google, mas apenas a alguns quilômetros de sua casa / escritório, onde quer que o terminal principal do ISP esteja. Às vezes, você pode obter uma pista sobre onde o servidor está com o utilitário traceroute (tracert no Windows) e / ou DNS reverso.

Consequentemente, esses servidores também não serverão todo o tráfego no mundo, mas apenas o tráfego de uma cidade e, às vezes, apenas de um ISP dentro dessa cidade.

É claro que esses servidores não possuem todo o conhecimento do Google; eles são um front-end, e provavelmente têm um pouco de cache etc. também. Qualquer coisa que eles não saibam, eles encaminharão para o data center do Google, conforme descrito na seção.

    
por 27.08.2015 / 10:19