Rails escala?

Fábio Akita

A duas semanas voltou a tona a discussão de que Rails não escala. Tudo porque alguém ouviu falar que não sei quem tinha falada que o Twitter iriá mudar de Rails para qualquer outra coisa que tenha escalabilidade.

Mais que diabo é escalabilidade? O que torna uma linguagem escalável? Por que de tanto bafafá por causa de um framework?

Eu trabalho quase que 100% em Rails hoje e gosto disto. Apanhei muito das macacas de auditório e ainda hoje escuto muito, mais nada me deixa tão indignado quando falam de escalabilidade. Meu professor de Engenharia de Software, muito competente por sinal, sempre enfatizou que tudo pode escalar, depende somente de como você irá fazê-lo.

Quase sempre será possível adicionar mais hardware ou mais servidores web. A questão então não é se Rails escala, mais sim quantos servidores você irá precisar para um sistema de grande porte, quanto você vai precisar de arquitetura de rede e quantos analista cuidará de tudo isto. Pronto, você acabou de escalar.

Na entrevista (ou besteirol) do Alex Payne, ele salienta o seguinte:

The problem is that more instances of Rails (running as part of a Mongrel cluster, in our case) means more requests to your database. At this point in time there’s no facility in Rails to talk to more than one database at a time.

Na realidade o grande problema são os desenvolvedores deles, os Twitter’s estão mais ligados em publicidade e marketing do que em tecnologia. Uma boa pesquisada no Google e vão ver que é possível fazer com que um cluster conecte ao mais de banco. O resto é balela.

Portanto, o grande problema é que tem muita gente que só quer falar mal, não só de Ruby, mais de tudo que é novo e tem um futuro promissor. Um bando de incompetentes que se escondem atrás de certificações e diplomas comprados.

Assim, Ruby ou qualquer outra linguagem escala basta ser competente.

Update:
Acabei de colocar a foto do Akita dando uma palestra no FISL 2008. Detalhe: juro que não sabia desta foto quando escrevi este post. A foto original está aqui e a dica foi dada pelo Leonardo Torres.

2 Comments on “Rails escala?

  1. Falou tudo que eu queria falar mas não falo porque sempre tem gente que fica mordido. Escalar depende da competência e não da linguagem.

  2. Claro que você não vai querem adicionar RAM ao seu servidor toda vez que precisar escalar.

    Talvez a questão para o Twitter ser um caching melhor, ou menos requests em banco de dados.