Rails escala? Quem se importa!
07 de Maio de 2008
Um verdadeiro flamewar se levantou em torno do assunto na lista rails-br nos últimos dias.
Mas e então, Rails escala? NÃO, assim como PHP ou Java também não escalam. O Rails permite que você faça isso de maneira mais simples que outras tecnologias.
A linguagem/framework não é a única responsável pela escalabilidade. Para escalar um website, você precisa de uma infraestrutura que permita fazer isso. Isso pode ser feito de diversas maneiras, como adicionar múltiplos bancos de dados, adicionar mais servidores, adicionar cache, otimizar pontos críticos de seu código, e por aí vai! Não sou especialista no assunto, mas este é, ao meu ver, o básico para se fazer!
Muitas pessoas citam exemplos de sites com grande volume de acessos, normalmente de fora de país. Não precisamos ir tão longe para ver um exemplo em Ruby on Rails que deu certo. O BlogBlogs, criado pelo Manoel Lemos, possui um widget 1 milhão de visualizações por dia e 35TB de transferência por mês! A maioria dos sites jamais chegará a um nível como este. E se chegar, você provavelmente terá recursos para levar seu site a um próximo nível, contratando pessoas competentes que saberão como lidar com o aumento de tráfego.
Para finalizar, o Google não é feito em Python, o Yahoo! não é feito em PHP, e o Twitter não é feito em Rails. Todos eles são uma mescla de diversas tecnologias, que permitem suportar, em maior ou menor escala, um grande volume de usuários. Alguns fazem isso muito bem, outros nem tanto.
Textos escritos por
Comentários #
Então, mas rails escala?
:D
cara eu só conheço duas coisas que escalam:
* Alpinista
* Deus (onisciencia e onipresença)
de resto nada escala... aliás qual a melhor IDE pra programar rails?
Sem partir para FlameWar, tbm concordo com vc, e sempre parto da premissa de que o que faz uma linguagem otima pra se trabalhar são as pessoas que trabalham com a mesma e também a forma com que trabalham.
Ja vi, aliás vejo com frequencia pessoas cometendo uma estupidez atrás da outra com java, não é a linguagem em si q derrapa e sim a pecinha q fica atrás do comp.
Abraços.
Fabio Nascimento
A única coisa que ficou provado é que os programadores do twitter são ruim... e chorões...
Pessoas que não tem um grau de conhecimento sobre um determinado assunto são influenciadas muito fácil, uma pessoa dessa ouve falar que não escala e já passa a gritar pro mundo ... não escala.
Muito Fácil dizer "Não Escala" o difícil é dizer o por que?
Se tu falar isso no 4 andar do UOL se apanha uHAUHAuHAUH
Opa, belo post Nando. E a coisa é bem por ai mesmo, linguagens (com algumas raras exceções) não são desenhadas para escalar pura e automaticamente, logo escalabilidade não é um problema ou feature de linguagens ou frameworks quando analisados separadamente. Arquiteturas sim são as responsáveis por algo escalar ou não. Em 1999 e por uns 5 anos inteiros me dediquei a um enorme projeto em Java, o projeto do Cartão Nacional da Saúde (http://weblogs.java.net/blog/mlemos/archive/2004/02/more_about_java.html) que foi todo feito em Java e é super complexo (aplicações em saúde geralmente são). Naquela época (99) muita gente disse que seria maluquice pensar num projeto daqueles em Java, pois Java não escalava, haha. E tivemos sim vários problemas de performance, não porque não existiam os JITs do momento, ou porque Java não escalava, mas porque tínhamos arquiteturas indecentes (140 instancias de bancos oracle em 70 servidores, alguns com replicação via linha discada, haha).
Moral da história, este filme é velho. As coisas (linguagens, frameworks, etc) amadurecem, viram a bola da vez, ou o teto de vidro da vez, e depois cedem o lugar para outros. E claro, tem que se pensar na solução adequada para cada problema. O Twitter por exemplo não é uma aplicação puramente WEB, é praticamente um sistema de assinaturas e notificações com um protocolo de comunicações. E claro, C, Java, Erlang, etc fazem muito mais sentido neste tipo de aplicação... e não um web framework. Querem ver uma aplicação em Rails que escala legal e usa uma infra não tão gigante, de um olhada no Friends For Sale (Aplicação para FaceBook) (http://highscalability.com/friends-sale-architecture-300-million-page-view-month-facebook-ror-app).
Ah... e se fosse fácil agente não gostava tanto né... abraços!!!
A questão é: quantas máquinas uma determinada tecnologia necessita para rodar bem?
Uma empresa vai muito além da paixão por determinadas tecnologias. Vai da economia do ponto de partida, no desenvolvimento, ao ponto de manutenção (e não falo em apenas atualizar a aplicação). Se uma determinada linguagem/framework precisa de 1 servidor com configuração X para trabalhar bem e outra precisa de 2 servidores com X+Y, temos que concordar que o valor gasto para manter a segunda tecnologia passa a ser maior. E no final, o que mais importa a uma empresa é o custo.
Agora, multiplique isso para uma grande aplicação, com uma infra-estrutura gigante.
O grande problema Nando é a incompetência dos twitter's, e assim como eles tem muitos outros xiita (como diz o Akita) que só reclamam e não estudam outras possibilidades.
Dá uma olhada em http://blog.iconcreative.net/2008/5/6/rails-escala
[]'s
[...] Simples Idéias. Por Nando Vieira. » Arquivo » Rails escala? Quem se importa! O BlogBlogs, criado pelo Manoel Lemos, possui um widget 1 milhão de visualizações por dia e 35TB de transferência por mês! (tags: simplesideias.com.br 2008 mes4 dia8 at_tecp ruby_on_rails Twitter BlogBlogs escalabilidade) [...]
[...] 2.0 que se preze não sabe desenhar arquitetura que escale, e prefere botar a culpa na linguagem (que não merece) quando é pega com a mão amarela; pelo menos, devemos dar o crédito, eles mesmos confessaram que [...]
Fazendo a conta ali do servidor... não se esquece que a infra geralmente é a parte mais barata.
Se você tem uma linguagem que usa uma maquina X e outra que precisa de uma X+Y, mas leva metade do tempo de desenvolvimento e proporciona um melhor código (mais mantível), com toda certeza eu fico com ela.
(estamos analisando um caso específico de aplicações pra web, esse raciocínio não vale pra tudo)
[...] Railscantscale A (estúpida) controvérsia Twitter, Parte 2 Rails escala, quem se importa? [...]
[...] http://simplesideias.com.br/rails-escala-quem-se-importa/ [...]
[...] feito de diversas maneiras, como adicionar múltiplos bancos de dados, … Veja o post completo clicando aqui. Post indexado de: [...]
[...] This post was mentioned on Twitter by Júlio S. Monteiro, Vinicius Ebersol. Vinicius Ebersol said: RT @jmonteiro: Q:Rails escala? A:Tecnicamente, não. (http://bit.ly/railsnaoescala)... [...]
Deixe um comentário