(continuação da parte 4)
Em sua palestra na PUC, Luiz André Barroso explicou também que as necessidades computacionais do Google são explosivas e baseiam-se no seguinte tripé:
* Mais dados
* Mais queries
* Melhores resultados
Cada novo serviço que o Google lança aumenta ainda mais sua fome computacional. "
Mais dados" porque a web não pára de crescer, assim como os blogs e as caixas individuais de correio. "
Mais queries" porque o número de usuários do Google não pára de aumentar e quanto mais contentes eles estiverem com o serviço, a tendência é que o sistema cresça ainda mais rápido. "
Melhores resultados" porque a equipe do Google permanece continuamente pesquisando novas maneiras de atender às queries da forma ainda mais rápida e precisa.
As metas que o Google propõe a si mesmo impõem um terrível desafio para a plataforma computacional da empresa. Os camaradas querem criar a maior infraestrutura de computadores do mundo, simplesmente isso. E mais: precisam se certificar de que terão grana para montar e dar manutenção a esse sistema gigantesco. Para tanto, é necessário que eles se superem para tornar ultra-eficiente sua infraestrutura computacional através da atuação nas seguintes áreas:
* Projeto e arquitetura de servidores
* Eficiência do suprimento e uso de energia
* Software de sistemas
* Sistema de redes em grande escala
* Ajuste fino e otimização de desempenho
* Gerenciamento de sistemas
* Automação de reparos
Com relação à filosofia de projeto do arcabouço de hardware, a equipe do Google dá preferência a servidores de baixo custo. Nada de monstrengos ou super-computadores caríssimos. Acreditemos: eles não poderiam pagar. Os projetos só se tornam viáveis se forem baseados em PC's comuns. Mas há outros motivos.
O desempenho de uma única máquina hiper-poderosa não interessa a eles. O grande "problema Google" pode ser (e é) quebrado em probleminhas menores, ou seja, uma tarefa gigantesca pode ser particionada em vários
threads de processamento, o que está de pleno acordo com a tendência moderna de chips multicore (múltiplos núcleos).
De acordo com o palestrante, outro aspecto da questão é que um hardware super-robusto torna os programadores preguiçosos. Além disso, se considerarmos que até as mais confiáveis plataformas acabam um dia dando pau, torna-se clara a necessidade de um software tolerante a falhas que, por sua vez, pode rodar em componentes de baixo custo.
Flagrante das entranhas do Google em 1999. Observar que as placas eram separadas por tabuletinhas furrecas, algumas das quais encurvadas.
Os racks do Google são feitos por eles mesmos usando placas-mãe comuns de PC. Os dispositivos de armazenamento e de rede também são do tipo baratinho. Roda tudo em Linux e o software é todo feito "em casa".
Quando apagam as luzes na sala dos servidores, é assim que o Google fica durante a noite. Que visú, hein rapaziada?
Mesmo assim, digo, agindo
a la "mão-de-vaca", os custos da rede Gigabit de um cluster do Google são bem altos. Existe uma grande defasagem entre os melhoramentos na razão custo/eficiência no universo dos servidores e o no universo do hardware de redes. Luiz André reclama que a indústria de redes não está motivada a atender os requisitos específicos de uma operação gigantesca como a do Google. Em função disso, a equipe interna tem que rebolar para produzir o que o mercado não oferece. E tudo isso sem quebrar as finanças.
Há uma outra questão que atormenta a empresa -- Energia. Nas últimas duas décadas a indústria dos computadores deu pouca atenção à variável eficiência energética. A loucura imposta pelo mercado impulsionando as empresas na busca pelos MegaHertz criou sistemas cada vez mais ineficientes com relação ao consumo de energia. Este descaso inevitavelmente terá impacto no custo dos equipamentos no futuro.
No gráfico acima vê-se três curvas representando desempenho ao longo de três gerações de plataformas Google. A curva de cima é a de desempenho puro. A segunda é desempenho versus preço de servidor. A mais de baixo é a curva de desempenho versus Watt (potência). Nota-se que esta terceira está quase estagnada. Em resumo, os servidores ficaram mais poderosos, o preço deles proporcionalmente diminuiu, mas a eficiência energética continuou a mesma.
Luiz André deu um claro exemplo com um servidor de alto-volume Xeon com CPU dual. O sistema consome 250 Watts. Considerando que para refrigerar 1 Watt de potência é necessário gastar mais 1 Watt, então para refrigerar essa engenhoca é preciso dispender 500 Watts. Ou seja, fazendo as contas, o palestrante conclui que em quatro anos de funcionamento, o gasto energético com este servidor equivalerá a 50% do seu preço da máquina. E isso sem levar em conta os custos com distribuição de energia, no-breaks e suprimento energético de backup. E também sem considerar as deficiências no suprimento de eletricidade nem as assustadoras previsões de aumento no custo da energia.
O gráfico acima é um tanto inquietante. Considerando que o preço de um servidor se manterá constante lá pela casa dos US$ 3.000 (a reta vermelha horizontal), tem-se quatro curvas distintas contemplando cenários de futuros aumentos no custo energético. A curva de cima (preta) representa um aumento de 50%, a segunda (azul) 40%, a terceira (verde) 30% e a de baixo (amarela) representa um custo 20% maior que o atual. Agora observe bem os pontos onde essas curvas cruzam a linha vermelha horizontal: são os momentos em que o custo do hardware será igual ao custo da energia gasta para mantê-la funcionando. Se o aumento no custo energético for de 20%, este ponto acontecerá em cerca de 4,3 anos. No entanto, se o aumento for de 50%, o ponto de equiparação ocorrerá 1 ano e meio.
O Google está com suas atenções voltadas para este problema. No curto prazo, a solução para o mercado é investir pesadamente na tecnologia de chips multiprocessados. Todavia, a longo prazo serão necessárias mudanças fundamentais tecnológicas para que a situação não chegue a um ponto crítico.
Neste sentido, o Google está trabalhando bem de perto com os fabricantes de processadores de modo a promover projetos mais energeticamente eficientes. Além disso vem particpando da bolação de novos servidores e fontes de alimentação mais otimizados em termos de consumo elétrico. Graças a estes esforços, o Google tem obtido excelentes resultados especialmente na tecnologia de data centers, com foco na distribuição eficiente de energia e numa refrigeração mais otimizada.
Barroso encerrou sua brilhante apresentação lembrando que atrás de cada serviço oferecido pelo Google existe uma coleção de difíceis problemas técnicos que precisam ser resolvidos em diversos níveis: algoritmos, aprendizado pela máquina, compiladores, engenharia mecânica, estatística, estruturas de dados, hardware, inteligência artificial, interfaces com usuário, linguagens de programação, projeto de produtos, recuperação de informações, redes, sistemas distribuídos e tolerância a falhas, apenas para citar alguns.
Ele ressaltou que o sentimento geral na empresa é que ela está apenas começando. Há grandes oportunidades para crescimento em todos os serviços Google atuais, ainda existem um monte de serviços inovadores que a empresa ainda não está oferecendo e, o mais importante de tudo, ainda há muita diversão pela frente.
Termina aqui então esta série, com aplausos de pé ao brilhante Luiz André Barroso pela notável palestra com que nos brindou naquela tarde na Gávea.