La respuesta es: Apache Hadoop. No es un secreto que la red social Facebook almacena miles y miles de datos, exactamente unos 100 petabytes (100 millones de Gigabytes) hasta el momento. Tampoco es desconocido, por lo menos por los geeks más curiosos, que Facebook utiliza Apache Hadoop para administrar esos datos y lograr que estén disponibles en milésimas de segundos cada vez que son requeridos.
Apache Hadoop es un framework de software para aplicaciones distribuídas, bajo licencia de software libre. El proyecto Hadoop es un desarrollo de alto nivel Apache que ha crecido con el aporte comunitario del grupo de desarrolladores que lo conforman, entre los que se destacó siempre uno de sus principales usuarios y aportantes: Yahoo!
Este framework permite correr aplicaciones en grandes clusters de hardware dedicado utilizando una arquitectura donde la aplicación se divide en muchos pequeños fragmentos de trabajo, cada uno de los cuales se pueden ejecutar o volver a ejecutar en cualquier nodo del clúster
En la actualidad empresas como AOL, eBay, Fox, IBM, LinkedIn o Twitter entre otras, utilizan Hadoop como solución para sus plataformas multiusuario.
Durante el día de hoy se realizó la primera de dos jornadas de la Cumbre Hadoop, en San José California, donde uno de los ingenieros de Facebook, Andrew Ryan, destacó que la solución a uno de los principales problemas que suele presentar Hadoop fue resuelto con una solución propia.
El problema de Hadoop se llama NameNode, un servicio en la arquitectura Hadoop que, según detallan en GigaOm, “maneja todas las operaciones de metadatos con el sistema de archivos distribuidos, pero que sólo se ejecuta en un único nodo. Si el nodo se cae, también lo hace, para todos los efectos, Hadoop, porque nada basado en HDFS(sistema de archivos propio de Hadoop) se logra ejecutar 100% correctamente”.
Andrew Ryan destacó que la solución de Facebook al problema de disponibilidad generado por NameNode se llama AvatarNode. Ryan comentó que comenzó a construir AvatarNode hace unos dos años (el nombre fue inspirado por el film de James Cameron) y que ahora está en producción.
La función de AvatarNode es sustituir a NameNode con una arquitectura de dos nodos, en la que uno actúa como una versión de espera si el otro baja. En la actualidad, el proceso de conmutación por error es manual, pero Ryan aseguró que “estamos trabajando para mejorar aún más AvatarNode e integrarlo con un marco general de alta disponibilidad que nos permita la conmutación por error desatendida, automatizada y segura.”
La solución de Facebook no es la definitiva ni la mejor que se pueda lograr de momento para la limitación de NameNode, pero según aclara Ryan, a pesar de que sólo el 10% de las paradas no planificadas de Facebook podrían evitarse con AvatarNode, más del 50% de los tiempos de inactividad planificados para el futuro podrán ser tolerados por esta arquitectura de alta demanda.
Facebook no es la única empresa en resolver este problema. La empresa Appistry presentó un sistema de archivos totalmente distribuido hace un par de años que incluía la distribución de Hadoop MAPR, el cual también proporciona un sistema de archivos de alta disponibilidad.
En tiempos de mega redes de datos y servicios en la nube, conocer desarrollos como éstos y que estén diseñados en plataformas libres nos permite tener un mejor panorama de lo que vendrá en el futuro de la distribución y administración de datos a gran escala.