Wednesday, September 3, 2008

Madonna e balanceamento de carga

Até agora não consigo parar de dar risada. É sério. Estava eu lendo a Folha Online, e eis que me deparo com a mensagem sobre a venda dos ingressos do show da Madonna em São Paulo, que, para o dia 20 de dezembro, não exigem cartões de crédito exclusivo do Bradesco. Para quem não sabe, as vendas começam hoje, dia 3 de setembro.

Eu havia lido anteriormente na Folha Online que muitas pessoas estavam tendo problema com congestionamento nos servidores, mas lá fui eu. Como tenho planos de passar o natal no Brasil, pensei que poderia fazer uma paradinha em São Paulo para assistir o show, já que o daqui a Suíça eu não consegui. Quando entro no site principal, eis que me deparo com a seguinte imagem:



Isso é que é balanceamento de carga hein?! Será que alguém da ticket4fun já ouviu falar, mesmo que vagamente, em IPVS ou LVS?

Ainda bem que a tecnologia está aqui para servir os usuários :)

Como eu queria saber quem são os sysadmins da tickets4fun....just4fun!

***************************
Atualizações:
Recebi alguns emails pedindo para explicar melhor o problema ou "funcionalidade" descrita no meu post. Então aqui vai...

Digamos que você tenha um servidor na internet, e este tem capacidade para 50 usuários simultâneos. O seu serviço (neste caso a venda de ingressos) vai funcionar perfeitamente, até que você atinja os 50 usuários simultâneos. Se você tem 320 usuários simultâneos, com simples matemática, você chega a conclusão que precisa de 7 servidores, e vai ainda ficar com folga, já que 7 servidores, considerando que cada um atende 50 usuários, conseguiríamos atender 350 usuários.

Bom, para fazer com que isso funcione, sem que o usuário se sinta um idiota procurando por um servidor não carregado (como no caso no site da tickets4fun), você usa uma tecnologia chamada de balanceamento de carga. São basicamente computadores que vão direcionar conexões para todos os backends, baseados em regras pre-definidas, como por exemplo, "envie a próxima requisição para o servidor que tiver menos carregado agora". Quando os 350 usuários excederem, você pode colocar mais servidores para fazer o mesmo trabalho. Como o usuário na realidade só pede conexão ao balanceador de carga, a expansão da infraestrutura seria transparente, e poderia escalar na mesma velocidade que a equipe de administração de sistemas consegue instalar servidores para executar a tarefa.

O que a ticket 4 fun fez foi ignorar a existência dessa tecnologia, e fazer com que os coitados dos usuários tivessem que fazer o papel de balanceadores de carga, procurando na mão por um servidor livre, ao invés de colocar um computador para calcular e fazer este trabalho automaticamente. Obviamente, o usuário não consegue fazer, manualmente, análise de carga nos servidores para decidir qual o melhor deles no momento, então, a não ser que fosse por sorte, a probabilidade de ir parar num servidor ruim é bem grande. (ainda mais considerando que eles disponibilizaram 25 servidores)

O pior de tudo é que este tipo de tecnologia está disponível em software livre, e sem custos de licenciamento NENHUM!

No comments: