Marcelio Leal

Indo num caminho que talvez não leve aonde se quer chegar…

Twitter, Ruby on Rails, Escalabilidade e outras coisas…

Posted by marcelioleal em maio 5, 2008

Pela lista PHP-MG vi a notícia que o Twitter (grande case em Ruby on Rails) estava pensando em migrar para outra plataforma: PHP ou Java.

O principal motivo, segundo a notícia, seria a estabilidade e a escalabilidade(A Wikipedia não é o melhor lugar para se um conceito aplicado à este caso, mas em todo caso tá linkado) da plataforma/framework.

O Blog PHPZine explica bem o caso e cita a notícia inicial no Techcrunch. Só discordo quando ele diz que o Ruby on Rails é um divisor de águas. De fato, a sintaxe do Ruby é muito show, porém o Rails não é, e nem foi, algo revolucionário. Muitos outros frameworks e geradores de artefato já executavam a mesma idéia. Porém, ele realmente se tornou o mais famoso e público caso de sucesso destes tipos de aplicações.

No blog do Akita On Rail, ele cita que já foi desmentido esta afirmação e complementa seu artigo expondo seus argumentos em favor da tecnologia. Cito aqui duas afirmações que comento logo abaixo.

A primeira é que escalabilidade é um mito e que qualquer coisa escala. De fato isso não é verdade. Escalabilidade é um requisito não-funcional que envolve custo-benefício, portanto, depende do ambiente que está configurado para aplicação, em especial, as restrições para este ambiente. A escalabilidade tembém varia de acordo com o objetivo do sistema. Portanto, a escalabilidade é um conceito que depende de contextualização.

É um fato que PHP precisa de menos hardware para aplicações Web que JAVA, ou seja, em condições iguais de hardware (hardware limitado – “servidores reais”) e aplicações normais, PHP é mais escalável. Porém essa afirmação pode ser contextada quando precisamos de transações assíncronas, temos maior hardware (grandes servidores SUN), etc.

Jon Udell já havia falado sobre isso, porém é importante dizer que ele não quis afirmar que todas as coisas são escaláveis, mas que não podemos afirmar, como geralmente se afirma, que determinada plataforma não é escalável sem contextualizar.

Outro aspecto importante é se os frameworks influenciam na escalabilidade. É claro que sim, porém menor escala que a plataforma. De fato, não é só trocando o framework que teremos resolvido a maioria dos problemas, porém ele podem de fato ter uma influência direta na performance/escalabilidade. Há algum tempo atrás conversando com o colega Aldrin Leal, discutiamos sobre o overhead que o hibernate adicionava em uma aplicação. Nesta ocasião ele fez alguns testes mudando a máquina virtual, compilando o código, etc. E conseguiu resultados bem melhores que as configurações iniciais.

Da mesma maneira faz diferença, em alguns casos, utilizar o padrão Active Record e o Data Mapper, que são padrões, que geralmente, estão encapsulados pelos frameworks.

Anúncios

2 Respostas to “Twitter, Ruby on Rails, Escalabilidade e outras coisas…”

  1. caike said

    Fala Marcelio!
    Realmente ao começar a ver o Rails eu vi muita coisa que me lembrou o Cake PHP, como as convenções (convention over configuration) de mapeamento objeto-relacional e os scaffolds. Mas se vc for analisar pequenas (grandes?) coisas como a geração automática de alguns artefatos de testes, o servidor ‘embutido’ em cada aplicação e frameworks como o RSpec, vai começar a ver a inovação!
    Nada que não possa ser portado para outras plataformas (ou frameworks!) 🙂
    grande abraço

  2. marcelioleal said

    Tipo, na verdade algumas das características do Cake são baseadas do Rails. Não tinha visto o RSpec, me parece interessante. Vou olhar melhor esse framework. 🙂
    Um abraço ae Caike

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: