Aunque mucha gente lo sospecha, creo que nadie se atreve a decirlo publicamente por temor a la ola de críticas, pero a la luz de las evidencias, al parecer los problemas de escalabilidad de Twitter estan directamente relacionados con el framework que se utilizó para su desarrollo Ruby On Rails, que ha tenido tanto momentum actualmente.
Por qué digo ésto, pues por el post que he leído el día de hoy en el blog "Datawocky" de Anand Rajaraman, el artículo en cuestión tiene un título bastante descriptivo "SMS Gupshup de la India tiene tiene tres veces más usuarios que Twitter y sin caídas". Rajaraman, tiene ciertamente una visión muy próxima a dicha empresa de la India, pues está en contacto con los fundadores de la misma, y como dice en su post, las estadísticas muestran de que hay algo malo con Twitter, aquí las comparaciones:
SMS Gupshup | ||
Número de Ususarios: | más de 1 millón | 7 millones |
Mensajes enviados diariamente: | 3 millones | más de 10 millones |
Lo más sorprendente es que tanto SMS Gupshup y Twitter usan servidores con aquitecturas x86, corriendo Linux y usando MySQL como el motor de base de datos. Pero a diferencia de Twitter, SMS Gupshup usa una arquitectura de tres capas con un servidor de applicaciones JBoss entre el servidor de base de datos y el servidor web.
Para aquellos que no lo sepan JBoss corre sobre Java, no precisamente uno de los lenguajes más veloces para desarrollar aplicaciones, otros Start-up usan también Linux/MySQL y han podido escalar bien sin problemas, es más AdSense corre sobre servidores x86 y usa MySQL como DB, y sirve literalmente miles de millones de páginas diariamente. La pregunta es entonces qué es lo diferente en Twitter, la respuesta es simple y evidente Ruby On Rails (RoR).
Buscando en Google sobre malas experiencias con Ruby On Rails, encontré un artículo de Derek Sivers, titulado "7 razones por las que volví a PHP luego de 2 años con Ruby". Es un largo y detallado artículo publicado en Septiembre del año pasado en O’Reilly, básicamente explica que uno de los problemas con RoR es que requiere mucho más hardware para servir el mismo tipo de tráfico que un servidor LAMP corriendo una aplicación equivalente.
Es más encontré también un post en el popular blog de tecnología TechCrunch, titulado "Twitter dijo estar abandonando Ruby On Rails", en dicho post escrito por el mismo Michael Arrington, se puede leer lo siguiente: "Hemos escuchado de múltiples fuentes que: después de más de dos años de un muy notorio problema de escalabilidad, Twitter esta planeando abandonar Ruby on Rails como su framework web e iniciaría un desarrollo desde cero con PHP o Java (otra alternativa sería permanecer con el lenguaje de programación Ruby y abandonar el framework Rails)".
En el mismo artículo de Arrintong, se menciona que otros websites que usan RoR son Scribd, Hulu y la popular aplicación Facebook Friends For Sale. Ciertamente RoR es un framework controversial, muchos desarrolladores dicen que tiene fallas estructurales de diseño que lo hacen imposible de escalar, e incluso el mismo desarrollador de Mongrel, el webserver de Ruby On Rails, Zed Shaw publicó un post en su blog titulado "Rails es un Gueto", luego de abandonar la comunidad de RoR.
Al parecer todo apunta a RoR como una de las razones de los problemas que afronta Twitter, claro cuando el website no es muy visitado, y se tiene suficiente dinero para comprar abundantes servidores, RoR puede seguir operando, pero para aplicaciones web muy populares al parecer RoR es una mala elección. Espero que los que esten haciendo uso del framework actualmente no se sientan ofendidos, pero he tratado de ser lo más imparcial posible.