TecnoXplora » Internet

¿QUÉ HAY DETRÁS DE SU PROPUESTA INTERNET.ORG?

A fondo: el ambicioso plan de Facebook para llevar internet a todo el mundo

Como tienes un móvil con conexión a internet y todos los meses te sobra la mitad de la tarifa de datos, se te olvida: en otros lugares del mundo hay personas que pagan por cada mega que consumen y aún no tienen un teléfono inteligente. Para que puedan acceder a los mismos servicios que tú, las 'apps' de empresas como Facebook deben ser ligeras y ahorrativas. El ancho de banda no lo regalan...

Mark Zuckerberg

Mark Zuckerberg Flickr

Publicidad

A finales de agosto, Facebook hizo pública una alianza con otras seis grandes empresas tecnológicas para proporcionar acceso a la Red a las dos terceras partes de la población mundial que aún no están conectadas. Nacía así internet.org, una ambiciosa iniciativa de la que en un primer momento se dieron a conocer pocos detalles.

¿Cómo lo piensan hacer?, nos preguntábamos. Y ahora, tan solo un mes después, comenzamos a tener respuesta. Hay dos claves: reducir el coste de gestionar y proporcionar grandes volúmenes de información y, aún más importante, minimizar el consumo de datos de las aplicaciones.

“Si la industria logra funcionar diez veces mejor en cada una de estas áreas... Entonces es económicamente razonable ofrecer servicios básicos a todos aquellos que no puedan permitírselo”, afirma la red social en un documento de 70 páginas que acaba de hacer público. En él se detallan las iniciativas que ya han llevado a cabo y las que aún tienen que poner en marcha para hacer económicamente viable este proyecto.

Al estilo Hip Hop

La web y los servicios de Facebook siempre han estado programados en PHP. Desde los primeros días, cuando Zuckerberg y un reducido grupo de ingenieros manejaban un servidor de 85 dólares al mes y tenían que hacer frente a un vertiginoso aumento de los registros en el seno de la Universidad de Harvard.

Como ellos mismos explican en el documento, PHP era el lenguaje perfecto para la filosofía de modificaciones rápidas y constantes (“move fast and break things”, muévete rápido y rompe cosas) que siempre ha caracterizado a la red social, porque es un código flexible y que se escribe rápido. Sin embargo, llegó un momento en el que la web crecía tan deprisa que PHP, por sus limitaciones, se estaba convirtiendo en un obstáculo. No de cara al ingeniero, sino de cara al servidor.

Así que, en lugar de reescribir toda la página en otro lenguaje, decidieron crear una herramienta capaz de convertir el PHP en C++, el lenguaje en el que se desarrollan la mayoría de programas para ordenador. ¿Qué consiguieron con eso? Que Facebook pudiera seguir creciendo sin que se disparase el coste de los servidores, se perdiera velocidad de carga o se viera mermado el rendimiento. Para que os hagáis una idea, según sus propias estimaciones, el C++ les permitía procesar un 50% más de tráfico que el PHP utilizando las mismas máquinas.

Pero todavía se podía mejorar. ¿Cómo? Hablando a las máquinas directamente en su propio idioma, sin el paso intermedio del C++. Para ello, pusieron en marcha un servidor virtual que convertía el PHP de la página directamente en lenguaje de máquina. Asi nació Hip Hop Virtual Machine (HHVM), que incrementó el rendimiento de Facebook, según sus cálculos, en un 500%. Y eso sin que los programadores tuvieran que renunciar a la velocidad de desarrollo que permite el PHP.

¿Sabéis cuál es la buena noticia? Que tanto Hip Hop como HHVM son de código abierto y cualquier desarrollador los puede reutilizar.

Eficientes servidores

Si cambiando el código se puede aumentar la eficiencia y promover el ahorro, imaginad lo que se puede hacer modificando los propios servidores. Desde que Facebook comenzó a explorar la idea de abrir su primer 'data center' allá por 2009, el tráfico de la red social ha pasado de unos 200 millones de usuarios a más de 1.000 millones, un crecimiento que hubiera sido insostenible (por extremadamente caro) si hubieran seguido alquilando los equipos y las instalaciones.

Sin embargo, comenzaron a construir los suyos propios, siempre partiendo de un principio de eficiencia y buscando la innovación en tres áreas que hacen posible reducir los costes: refrigeración, transformación de energía y lo que ellos denominan diseño “sin vanidades”, es decir, sin elementos que no sean estrictamente funcionales. Además, mejoraron herramientas existentes o desarrollaron otras nuevas para gestionar el tráfico, como Corona, AvatarNode, Giraph, Presto y Morse. Aquí no entramos en detalles, porque se trata de una cuestión muy técnica. Basta con saber que todas estas medidas han permitido a Facebook manejar la gigantesca carga que tienen que soportar sus servidores con el mínimo desembolso posible.

Air Traffic Control

De cara al usuario, el gran objetivo de Facebook es minimizar el consumo de datos de las aplicaciones y servicios que ofrece la compañía, pensando sobre todo en los mercados emergentes. Ya en su momento analizamos las razones de negocio que hay tras estas buenas intenciones, y que se resumen en atraer nuevos usuarios tras haber tocado techo en las economías avanzadas. Sin embargo, y más allá de esa cuestión, es cierto que la red social está dando pasos para facilitar el acceso a internet –o al menos a 'su' internet- a las personas de países en vías de desarrollo.

Ahora nos vamos a centrar en cómo lo hacen y una de las herramientas más interesantes que han desarrollado a este efecto es Air Control Traffic. Como Facebook no puede tener ingenieros diseminados por todo el planeta y los que tiene en California no pueden estar en todas partes a la vez, tuvieron que buscar una forma de simular las condiciones de conectividad de otros lugares desde su sede en Menlo Park.

Gracias a esta infrastructura, los empleados de la red social tienen control sobre múltiples aspectos de la conexión de sus dispositivos: ancho de banda, latencia, pérdida de paquetes, paquetes corruptos y ordenación de los paquetes, entre otras cosas. De esta forma, pueden simular las condiciones de redes 2G, EDGE, 3G o 4G desde una conexión WiFi para vivir en sus propias carnes la experiencia de utilizar la 'app' de Facebook desde otros puntos del globo.

Adopción del formato WebP

“Nuestro objetivo es proporcionar un buen producto, pero escalado de una forma que permita un funcionamiento adecuado en redes constreñidas y en entornos donde el precio es una cuestión sensible”, afirma la compañía en el estudio. Por eso decidieron optimizar la forma en que la red social gestiona las imágenes y ahora descargan en el dispositivo del usuario fotos con una resolución distinta en función de si está conectado a una red WiFi (mayor) o a una red móvil (menor).

Además, hay que tener en cuenta el tamaño de las pantallas. No tiene sentido que en un terminal que mide 320 píxeles en su lado más largo se cargue una fotografía de 960 x 960 px, porque aumentaría el tiempo de carga y el consumo de datos, pero no la calidad percibida por el usuario.

Estas fotos están en WebP, ¿notas la diferencia?

Otra medida importante que han tomado en este sentido es la adopción del formato WebP, desarrollado por Google, en su aplicación para Android. Este formato permite reducir el peso de la imagen sin una pérdida notable de calidad, sobre todo en fotos pequeñas (por debajo de 180 x 540 px). Por eso es ideal para reducir el ancho de banda consumido en dispositivos móviles (alrededor de un 20%), pero no tanto para mostrar imágenes grandes en tabletas u ordenadores (donde siguen reinando el JPEG y el PNG).

Facebook for Every Phone

Como ya os contamos en otra ocasión, se trata de la aplicación de la red social para los 4.000 millones de teléfonos 'estúpidos' que todavía hay en el mundo. Está pensada para usuarios de países emergentes, que todavía utilizan terminales antiguos, con procesadores de poca potencia, y mayoritariamente se conectan a través de redes 2G.

Publicidad