Додому Internet e TI Como grandes sites lidam com milhões de visitantes sem travar

Como grandes sites lidam com milhões de visitantes sem travar

É fácil pensar que atender um grande público requer uma sala de servidores do tamanho de um armazém. No entanto, nem sempre é esse o caso. Se o seu site for estático, uma pequena máquina poderá receber centenas de milhares de visitantes. Imagine um Celeron simples de 500 MHz rodando Linux e Apache. Conecte-se a uma linha T3 (45 milhões de bits por segundo). Essa configuração lida com grandes quantidades de tráfego. Os ISPs alugam toda a configuração por menos de US$ 1.000 por mês.

Mas aqui está o problema. Os sites mais populares não são pequenos. Eles rapidamente atingiram a parede. Uma caixa não pode ser expandida indefinidamente.

“Se você tiver que lidar com milhões de visitantes e conteúdo dinâmico, sua máquina irá quebrar.”

Os limites aparecem quando um determinado limite é atingido. Primeiro, talvez você precise oferecer suporte a milhões de visitantes todos os dias. Uma única CPU tem limitações. A segunda é uma falha de hardware. Se um de seus servidores cair, seu site ficará escuro até que você o substitua por um novo e o configure novamente. Terceiro, páginas grandes ou complexas consomem recursos rapidamente. Quarto, se a página tiver que mudar dinamicamente para cada usuário, o servidor terá que trabalhar mais. Finalmente, o processamento em segundo plano adiciona latência. A maioria dos grandes locais atende a todos esses critérios e, portanto, exige infraestrutura extensa.

As três estratégias de escalabilidade mais importantes

Se o orçamento permitir, os engenheiros podem escolher três rotas principais durante o pico de tráfego.

  1. Compre uma máquina enorme com potência e redundância ilimitadas.
  2. Divida a carga entre muitas máquinas menores.
  3. Combine os dois métodos.

A abordagem distribuída é mais comum em grandes aplicações web. Você pode até ter visto isso em ação sem perceber. Se o URL mudar ligeiramente sempre que você visitar e atualizar o site (por exemplo www1.xyz.com e www2.xyz.com ), isso é uma pista. Este site usa uma série de computadores independentes. Todo mundo usa software de servidor web. Todos eles usam a mesma cópia da página do site.

A verdadeira magia está na forma como as solicitações recebidas são distribuídas. Isso pode acontecer de duas maneiras principais.

Balanceamento de carga baseado em DNS

O Sistema de Nomes de Domínio (DNS) traduz nomes legíveis por humanos em endereços IP. Algumas configurações de DNS usam uma abordagem round-robin. Os servidores DNS percorrem a lista de endereços IP disponíveis sempre que uma solicitação é recebida.

Isso distribui naturalmente a carga. Cada servidor recebe uma parte do tráfego. Eles não conversam entre si sobre a carga. Forneça apenas conteúdo estático ou pré-gerado ao qual eles tenham acesso.

Chave de balanceamento de carga

Uma abordagem mais avançada envolve um balanceador de carga. Todo o tráfego da rede chega primeiro ao switch central. Esta máquina atua como um policial de trânsito. Encaminha a solicitação para um servidor disponível.

O switch não apenas adivinha. Verifique cada servidor para ver qual deles está menos ocupado. Isso garante uma divisão uniforme do trabalho. HowStuffWorks adotou essa abordagem. O balanceador de carga da empresa distribui o tráfego entre três servidores web diferentes. Se um deles falhar, os outros dois manterão o site no ar. Sem tempo de inatividade para o usuário.

Esta configuração redundante tem vantagens claras. A falha de uma máquina não destrói todo o site. Você também pode aumentar a capacidade em etapas. Precisa de mais potência? Adicione outra caixa. É flexível.

Há uma desvantagem. Essas máquinas distribuídas ainda dependem frequentemente de bancos de dados centralizados para processamento de transações. À medida que o tráfego aumenta, esse banco de dados se torna um gargalo.

Uma máquina enorme

Nem todo mundo distribui. O TerraServer da Microsoft segue o caminho da “máquina única grande”.

TerraServer armazena terabytes de imagens de satélite. Ele lida com milhões de solicitações desses dados. ele usa um enorme hardware de classe empresarial. Veja o Digital AlphaServer 8400, por exemplo. Possui oito processadores de 440 MHz e 64 bits. Contém 10 GB de RAM verificada e corrigida por erros.

Isso é muita potência em um chassi. Isto evita a complexidade da coordenação de rede entre vários servidores. Mas é caro. Se um AlphaServer falhar, o serviço será interrompido.

A escolha depende do seu modelo de negócio. O conteúdo estático favorece configurações simples. Transações dinâmicas exigem redundância. Aplicativos com uso intensivo de dados podem exigir energia bruta.

Se você quiser saber mais, há muitos recursos. O W3C define os padrões. A Microsoft publicou um documento técnico sobre balanceamento de carga do Windows NT. A IBM fornece um livro vermelho sobre balanceamento de servidores. Um artigo sobre servidores web colaborativos distribuídos descreve essa teoria.

Mas a realidade central permanece simples. Escalas de tráfego. Limites de hardware. Engenheiros constroem uma ponte entre os dois. A forma como você o constrói depende da finalidade para a qual seu site realmente será usado.

Exit mobile version