domingo, 20 de junio de 2010

Twitter y la escalabilidad

A veces, a propósito de los social media, al igual que ocurre con otras aplicaciones de las TIC que generan un fuerte 'buzz', se habla mucho de tecnología, y se nos quieren mostrar como tecnologías fuertemente innovadoras.

Sinceramente, y sin conocer las arquitecturas reales de este tipo de aplicaciones, creo que en realidad tecnológicamente aportan poco o nada nuevo. Lo que son, realmente, son usos originales y de alto impacto de tecnologías ya existentes. Lo original es el uso e impacto social y en el mercado, no la tecnología en sí.

Algunas de estas aplicaciones son, además, al menos desde un punto de vista funcional, relativamente sencillas, en algunos casos, como el de Twitter, extremadamente simples.

Cuando pienso en este tipo de soluciones, y específicamente en Twitter, me imagino un software sencillo y lo único que realmente me resulta admirable desde un punto de vista técnico es su altísima disponibilidad y su formidable tiempo de respuesta, a pesar de los millones de usuarios y de pequeños tweets que maneja. Tampoco creo que esto sea una novedad tecnológica, pero sí el uso hasta el nivel de excelencia de las técnicas de escalabilidad.

Me imagino, no sé si me equivoco, el software de Twitter alojado en enormes CPDs, con bien pobladas granjas de servidores, con un uso sofisticado de técnicas de reparto de carga, alta disponibilidad y sistemas de respaldo. Y me imagino un software que ha sido sometido a las más exigentes pruebas de carga y que ha sido depurado hasta el extremo para resultar extraordinariamente eficiente en el uso de recursos de computación y para exhibir una altísima capacidad de respuesta.

Pero esa idea que me ronda cuando pienso en Twitter, esa admiración por su tecnología de altísimas prestaciones, escalabilidad y disponibilidad, se me está viniendo abajo con los hechos de las últimas semanas. Se achaca al Mundial de Sudáfrica y al enorme incremento de tweets que éste ha supuesto...y tal vez sea así, pero lo cierto es que últimamente, con gran frecuencia, Twitter me ha devuelto un mensaje de error indicando que se encontraba colapsado y que lo intentase más tarde.

He podido observar también mensajes procedentes de TweetDeck, la aplicación desktop que, fundamentalmente es una interfaz de usuario hacia Twitter, quejándose del mal funcionamiento del API de Twitter. No lo sé, pero supongo que el mal funcionamiento del API se podría derivar de los mismos problemas de sobrecarga ante los cuales, quizá, no reaccionaba de forma correcta.

Tal vez estos problemas de sobrecarga sean debidos a un espectacular y no planificado incremento de tweets. Tal vez exista algún vicio oculto no encontrado hasta la fecha o tal vez el hardware que soporta la aplicación fuese insuficiente (por error de diseño, por error de planificación de capacidad o por reducción de costes). Tal vez el problema se encuentre diagnosticado y sea de fácil resolución. Tal vez, incluso, esté resuelto ya.

Sea como fuere, si yo fuese ejecutivo de Twitter, y más si tuviese responsabilidad en el apartado técnico, me cuidaría muy mucho de que estos fallos se reprodujesen. Un problema de escalabilidad persistente, podría ser muy peligroso para una aplicación tan popular y exitosa como es Twitter hasta la fecha.