Aprendiendo de las caídas de servicio de Skype

Skype ha sido noticia de nuevo tres años después de su última caída del servicio. Y en un momento horrible, ya que están preparando su salida a bolsa…

Hace unos años me tocó hacer un análisis de la arquitectura de Skype para una operadora que estaba interesada en conocer su funcionamiento sobre las emergentes redes de datos 3G. Las operadoras ya intuían hace años que Skype era una seria amenaza para sus intereses, y de ahí su interés. Aprendí mucho sobre el funcionamiento de la red P2P subyacente, y muchas cosas sorprendentes. Recomiendo esta magnífica presentación del Black Hat Europe 2006. Canela fina.

Desde el punto de vista de arquitectura software el producto es simplemente acojonante. Sus diseñadores se adelantaron 10 años a los problemas que hoy conocemos como ‘Neutralidad de la Red’ y construyeron su software con los principios que hoy asumimos para las soluciones Grid y Cloud. Su software está diseñado para seguir funcionando ante fallos y cualquier eventualidad en su red P2P… ¿Entonces qué ha pasado? Bueno… desde el punto de vista de arquitectura de sistemas, trabajaron con una pre-requisito muy arriesgado: no queremos tener que gestionar y administrar nuestra infraestructura. Y este es el truco: el precio que pagan los usuarios por usar Skype es que ‘ceden’ su hardware a la Red de Skype para dar servicio.

Desde el punto de vista económico parece un negocio redondo: “podemos ofrecer servicios a cientos de millones de personas de manera gratuita gracias a un software resiliente a fallos, los ordenadores de los usuarios donde se ejecuta, y la red de banda ancha que empezaba a cubrir el globo”. El coste del servicio tiende a cero, y Skype se puede mantener gracias a otros servicios de valor añadido como SkypeIn o SkypeOut que sí usan la infraestructura y por lo tanto pagan por ella. Brillante… ¿no? Bueno, las cosas no son siempre tan bonitas…

Skype no es una red pura P2P, ya que necesita de servicios de autenticación y autorización de usuarios que se encuentran centralizados y gestionados por Skype Inc. Creo que tienen más de 250 millones de usuarios registrados, y es fácil ver conectados diariamente a varias decenas de millones. Estos servicios son los que nos identifican en la red de manera única y nos permiten acceder a los servicios premium (con estos no voy a meterme). Durante la caída del año 2007, una actualización de Microsoft Windows que hizo reiniciar de manera masiva a ordenadores de todo el mundo hizo que estos servicios colapsaran por no estar dimensionados para soportar tal avalancha de peticiones de autenticación y autorización concurrentes. Es decir, todos los clientes skype del mundo empezaron a logarse en la red al mismo tiempo. Y Skype no pudo con ello. También hace 3 años la red tardó en recuperarse.

Para que Skype funcione es necesario que haya un número suficiente de lo que ellos llaman ‘supernodos’. En realidad un supernodo no es mas que un ordenador cualquiera que se conecta a internet de manera directa, sin un firewall. Estos nodos hacen de ‘intermediarios’ entre los clientes que se encuentran detrás de los firewalls de empresas y particulares. Los supernodos mantienen el ‘directorio’ de usuarios de Skype y su localización de manera distribuida. Hay una buena explicación de su funcionamiento en este blog. La caída de servicio esta vez se achaca a un fallo en el software que hace que los supernodos ‘casquen’ al cabo de unos minutos de funcionamiento. Es decir, Skype se quedó huérfano de intermediarios que gestionaran su infraestructura: Skype dejó de existir. Rápidamente se solucionó el problema software, se distribuyó y los ingenieros de sistemas levantaron ‘meganodos’ que hicieron las labores de los supernodos.

En 2007 esto nos hizo reflexionar sobre el impacto de las actualizaciones Over The Air (OTA) en dispositivos móviles y especialmente en los M2M y los procedimientos a seguir, ya que se trata de un problema similar. Una de las diferencias de una arquitectura Grid sobre una Cloud es precisamente que los recursos están garantizados en esta última. Skype tiene una arquitectura donde es imposible garantizar un Nivel de Servicio, ya que no se tiene control sobre la arquitectura que la soporta. Y esta es una de las causas para el fracaso del Grid y el éxito del Cloud. En el Cloud Computing es posible definir Niveles de Servicios ya que se tiene control de la infraestructura.

¿Y ahora qué hará Skype? Lo primero es mandar un mensaje de confianza… que tiene que salir a Bolsa. Luego, debería plantearse realmente si debe invertir en construir una capa de ‘supernodos’ en una nube pública que le permita mantener un nivel mínimo de servicio de manera permanente: el impacto económico no creo que sea muy grande, y seguro que es menor que el coste en imagen que está sufriendo.

Related Articles