martes, 27 de octubre de 2009

Cómo logra funcionar Facebook con 300 millones de usuarios - parte dos

El vicepresidente de ingeniería, Mike Schroepfer, revela los trucos que hacen que la mayor red social del mundo siga funcionando.


TR: ¿Qué ocurre cuando se añaden nuevas características al sitio?

MS: Añadir o cambiar una característica al sitio puede afectar de forma bastante dramática al comportamiento del usuario, lo que tienen implicaciones también dramáticas en la arquitectura del sistema. Te daré un ejemplo muy simple. En febrero de este año añadimos la característica “Me gusta”. Es una forma de aprobar algo con un solo botón, para que el usuario pueda decir “Esto me gusta.” Hubo grandes debates internos acerca de si la característica de “Me gusta” acabaría con los comentarios. Resultó ser algo adictivo; la cuota de comentarios se mantuvo igual y el “Me gusta” se hizo una de las acciones más comunes del sistema.

Esto suena muy trivial, pero uno de los retos a la hora de construir sistemas complejos y escalables es que siempre es más fácil leer datos de una base de datos que almacenarlos. Cada vez que hago clic en el botón “Me gusta”, tenemos que registrar esa acción permanentemente en algún lugar. Si construyésemos el sistema asumiendo que la mayoría del tiempo íbamos a estar leyendo datos, al cambiar las características del producto nos obligaríamos a dejar de asumir algo así. Creo que ponemos mucho esfuerzo en no asumir demasiadas cosas y estar listos para rediseñarlas al mismo tiempo que cambiamos el núcleo del producto. Esto es algo de gran importancia.

TR: ¿Y qué pasaría si se adjuntasen estas nuevas características a la arquitectura ya existente?

MS: Creo que una de las cosas más interesantes es que podemos encender y apagar las características. Pasar de cero usuarios a 300 millones de usuarios en una tarde para una característica totalmente nueva es una locura. Y nosotros somos capaces de hacer algo así puesto que, en general, toda la infraestructura está compartida. Puedes encender la característica y pasar del 1 por ciento de adopción al 100 por ciento en un día sin tener que percibir mucho tiempo de espera.

TR: Pero el problema no sólo reside en el cambio y en la complejidad—también está el problema del almacenamiento. Facebook trabaja con toneladas de fotos. ¿Ese sistema se construyó desde un principio para que pudiese hacerse más grande?

MS: Especialmente ahora—con las cámaras en los teléfonos y la integración directa a través de las aplicaciones de los smarphones—se suben y comparten muchísimas fotos en el sitio. La primera versión del almacenaje de fotos la construimos utilizando dispositivos normales de almacenaje para redes, con servidores web. Eso resultaba funcional, pero no lo suficientemente funcional, y también era muy caro. Hicimos algunos ajustes a ese sistema para mejorar el rendimiento y conseguimos que fuese cinco o seis veces más rápido que la versión original. Después pasamos a construir nuestro propio sistema de almacenaje llamado Haystack, y que está construido completamente utilizando hardware común y corriente. Consiste en un grupo de unidades estáticas y una caja Intel con una pila a medida encima que nos permite almacenar y servir las fotos usando directamente las distintas capas de almacenamiento. Esto es menos costoso y más rápido que los productos a la venta en el mercado. Hemos invertido muchísima energía en el almacenaje de fotos porque la escala de la que estamos hablando es simplemente impresionante.

TR: ¿Se tiene siempre la certeza de que se van a lograr implementar correctamente los cambios que se realizan en la arquitectura?

MS: Ha habido un par de casos en los que hemos iniciado proyectos que no estábamos seguros si podríamos llevar a cabo—hay uno del que no puedo hablar porque lo vamos a anunciar más tarde este año. Hay casos en los que vamos a intentar hacer algo que mucha otra gente ha intentado hacer antes, pero que nosotros pensamos que podemos hacer mejor. Creo que el valor y la predisposición para llevar a cabo la inversión es lo realmente importante en este caso, puesto que si no se dan esos dos factores ningún plan, por bueno que sea, te va a ayudar a llegar donde quieres llegar.

No hay comentarios:

Publicar un comentario