La portada de mañana
Acceder
Los técnicos se topan con la resistencia de los gobiernos en la sexta ola
La Constitución que tras 43 años ni se renueva ni se cumple
OPINIÓN | Todos de puente, por Antón Losada

Cómo ganar la ‘hackathon’ de Facebook sin picar ni una línea de código

hackaton

Un ‘hackathon’- o maratón de 'hackers'- tiene como objetivo el desarrollo de aplicaciones innovadoras de forma rápida y gracias a la contribución de varias personas. De hecho, el trabajo colaborativo entre los participantes es absolutamente esencial. Algunos de los más importantes los impulsan u organizan grandes empresas e instituciones como Google, Facebook, la NASA, o el Banco Mundial.

Si por algo son famosos los ‘hackathon’ es porque forman parte de la tradición de Facebook. La intención de la empresa es clara: conseguir nuevas - y buenas - ideas, de las que saldrán, con total seguridad, proyectos importantes. De hecho, de este tipo de eventos han nacido iniciativas como la 'timeline' o el chat de esta red social. Facebook los emplea para dar la oportunidad a sus empleados de sacar su ingenio a la luz y, al mismo tiempo, para después aprovechar esas ideas.

Open Compute Project de Facebook

Con esta intención, hace más de dos años, un grupo de ingenieros de Facebook creó la plataforma Open Compute Project (OCP). El objetivo era poner en marcha una infraestructura de computación eficiente con el menor coste posible. Y, por supuesto, construyendo desde cero el 'software', los servidores y su propio centro de datos. Todo en casa. Y funcionó a las mil maravillas: su 'datacenter' Prineville consume hoy un 38% menos de energía para llevar a cabo el mismo trabajo - y cuesta un 24% menos.

El proyecto basa su trabajo en la creación de aplicaciones de código abierto. Precisamente con la intención de que cualquiera pueda aportar su granito de arena a la tecnología del Open Compute Project, en su página web invitan a todo aquel con los conocimientos adecuados a unirse al equipo.

Y eso es lo que hicieron dos de los trabajadores de la red social de Zuckerberg. Derek Jouppi y Andrew Andrade, sin habérselo siquiera planteado, acabaron participando en un 'hackathon’ oganizado por la Cumbre OCP. Habían oído hablar de estos encuentros y estaban intrigados, pero jamás habían pensado unirse a uno. No obstante, una vez allí, sabían que era una oportunidad que no podían dejar escapar. Y aunque formaban un equipo de dos personas, mientras que el resto de grupos eran numerosos, acabaron apuntándose al concurso.

¿Qué puede hacerse en 24 horas?

Tan pronto como se unieron, tuvieron que decidir qué iban a implementar. Debía de ser, necesariamente, algo que beneficiara al Open Compute y que estuviera terminado y con posibilidades de funcionar en un máximo de 24 horas. Ellos, además, buscaban que fuera “impactante”.

De esta forma, se les ocurrió trabajar sobre la nueva batería BBU (Battery Backup Unit) que utilizan las bandejas de los servidores de Facebook. ¿Por qué? Pues porque creían que era demasiado complejo y llevaba demasiado tiempo averiguar si una de estas baterías tiene un fallo, cuándo se ha producido y por qué.

“Es necesario usar cables, sondas, DMM o un osciloscopio para encontrar una solución que acaba por no servir para mucho”, explican los desarrolladores en el blog de OPC. Como hasta el momento allí nadie había encontrado la forma de comprobar los resultados de la BBU –de forma real y fidedigna-, Derek y Andrew se pusieron manos a la obra para construir algo que sí permitiera obtener conclusiones claras.

¿Qué hicieron?

Estudiaron la posibilidad de usar un acoplador que se uniera a la salida de la batería, procesara señales y ofreciera un diagnóstico sobre el estado de la misma. Más concretamente, utilizaron un microcontrolador ATMEGA, una pantalla LED y otros componentes de menor calibre para diseñar y fabricar un aparato capaz de analizar la batería, propiciando que la gestión del centro de datos fuera más eficiente.

Cuando quisieron llevar su planteamiento a la práctica comprobaron que desde la pantalla de la BBU era imposible trabajar, así que trataron de utilizar una placa de Arduino para simular una BBU. Pero el intento, explican los desarrolladores, fue fallido.

Mientras uno hacía pruebas, el otro intentaba elaborar un esquema del proyecto. Después de dos horas haciendo todo lo posible por hallar la forma de poner en práctica sus ideas, se dieron cuenta de que el planteamiento era erróneo. No tenía sentido y no había suficiente espacio para implementarlo. Se les ocurrió otra solución - un microcontrolador -, pero resultaba demasiado cara. Estaban atascados.

Apostar por la simplicidad

Restaban sólo un par de horas para que finalizase el ‘hackathon’, así que decidieron apostar por la simplicidad al darse cuenta de que habían estado trabajando sin cesar para diseñar algo demasiado complejo. ¿Qué debían hacer? Seguir la filosofía del OCP – de la que se habían desviado - y “eliminar aquello que no contribuyera a la eficiencia del 'datacenter'”.

Dada la correlación entre las patillas de la batería y las del aparato que estaban desarrollando, se les ocurrió que podían conectar ambos dispositivos para que la batería enviara avisos al LED. Este, al recibirlos, produciría señales sobre el estado de la misma, lo que daría "una visualización instantánea a los problemas de la BBU". El coste del dispositivo sería mucho menor y más fácil de operar que el que estaban trabajando en un principio.

Filosofía del código abierto, sin código

“Nuestro truco se había convertido en una herramienta de depuración sin código, que permite a los técnicos solventar con rapidez y eficiencia los problemas de esta batería en sus centros de datos”, explica Andrews.

Plasmaron su diseño de forma rápida sobre el papel. Después, repitieron el mismo proceso sobre una placa base, tratando de obtener la funcionalidad prevista. Por último, crearon una lista con los materiales, componentes y costes derivados de poner en marcha su sistema. Tras varios intentos, fueron capaces de diseñar de forma simple el esqueleto de una “tarjeta de depuración” (así la habían bautizado).

Andrews confiesa que, una vez los jueces contemplaron el resultado, se sintieron “orgullosos de ver cómo el BBU funcionaba y nuestro LED se iluminaba una fracción de segundo más tarde para indicar el estado de la unidad”. Con este trabajo, los desarrolladores lograron producir una herramienta fácil y barata para averiguar si la BBU funcionaba correctamente en un momento dado. O, lo que es lo mismo, asegurarse de que una pérdida de potencia no se traduciría en una pérdida de funcionalidad.

Los desarrolladores reconocen que el trabajo fue posible, en parte, gracias a la cooperación del resto de participantes, con quienes compartían herramientas y aportaciones. “Todo el mundo vivía y respiraba la filosofía del código abierto, el intercambio de conocimientos y la experiencia que se tradució en un buen trabajo”.

Vaya paradoja que, sin escribir ni una línea de código, Andrew y Derek se convirtieran en ganadores de la 'hackathon'.

Etiquetas

Descubre nuestras apps

stats