Como Funciona la CDN de Facebook

3 minuto(s)

Facebook es una de las redes sociales más populares en el mundo.

Para gestionar los datos de su plataforma, hace uso de tecnologías especiales como una CDN.

En este artículo aprenderás Como Funciona la CDN de Facebook, vamos con ello.

CDN de Facebook funcionando
Las imágenes y videos pueden ser un problema para Facebook si esta no usara una CDN

La información que te compartiré la he obtenido se la misma página oficial de Facebook Research.

Y desmenuzaremos los aspectos más importantes del funcionamiento de su CDN.

Sistema de Caché

Facebook denomina a su propia CDN como FBCDN (Facebook Content Distribution Network).

Su CDN permite que las fotos y videos de los usuarios de Facebook se distribuyan de manera óptima.

Usa los sistemas de caché Haystack, f4 y Memcached (alternativa a Redis) para almacenar la información.

Haystack y f4 almacenan los contenidos en unidades de estado sólido (SSD), basadas en NAND-flash.

Las unidades de estado sólido (SSD), pueden almacenar en caché muchas más fotos que una unidad de memoria DRAM.

Sistema RIPQ

En sus primeras implementaciones de caché, Facebook comenzó usando McDipper y BlockCache.

En la actualidad usa el sistema RIPQ (Restricted Insertion Priority Queue), que permite un almacenamiento en cache avanzado en Flash.

Las palabras Restricted Insertion Priority Queue (RIPQ) traducidas al español significan Cola de Prioridad de Inserción Restringida.

RIPQ le proporciona a Facebook una interfaz de colas o queues con prioridad relativa para sus tareas de cacheado y distribución de contenido.

El sistema RIPQ permite la implementación de grandes clases de algoritmos de almacenamiento en caché como LRU, LRU segmentado y Greedy Dual Size Frequency.

La interfaz del sistema RIPQ proporciona tres operaciones básicas:

  • insert (x, p): Aquí x es un elemento que se desea poner en la cola, es decir insertar en la caché y p es el número de prioridad relativa, entre 0 y 1, para especificar que tan importante es este elemento.
  • increase (x, p’): Aquí se aumenta la prioridad del elemento x desde su valor actual, es decir p, a un valor superior p’.
  • delete-min(): Expulsa de la cola el elemento con el valor de prioridad más pequeño. Solo se llama cuando la cola está llena.

Los algoritmos creados por los ingenieros de Facebook, esta optimizados para funcionar de manera fluida con el sistema RIPQ.

Como Funciona la CDN de Facebook

La FBCDN se encuentra distribuida en diferentes servidores alrededor del mundo.

Cuando el usuario envía una foto, video u otro contenido a su feed o muro de publicaciones.

La información es enviada mediante GraphQL a un servidor con stack LAMPP (Linux, Apache, MySQL, PHP).

Algunos de los datos son almacenados en una base de datos Apache Cassandra y también en MySQL.

El código de Facebook es acelerado por una máquina virtual HipHop (HHVM).

HHVM convierte el código PHP nativo en código de bytes y posteriormente lo transforma en código de máquina legible.

Los contenidos publicados por el usuario son almacenadas en Haystack como objetos.

Luego el sistema RIPQ obtiene esos datos y los coloca en una cola o queue para ser distribuidos en el momento oportuno.

Más adelante estos datos se muestran en la vista Front-End usando GraphQL y la librería React JS.

En la siguiente imagen puedes ver Como Funciona la CDN de Facebook:

Así funciona la CDN de Facebook
Esta infraestructura fue creada en base a experiencias y tropiezos del área de ingeniería de Facebook

Así es Como Funciona la CDN de Facebook.

Conclusión

En este artículo has conocido Como Funciona la CDN de Facebook.

Te dará una idea de como las grandes corporaciones optimizan sus procesos de entrega de contenidos.

Tu también puedes crear este tipo de infraestructura, solo debes ser disciplinado y constante.

Nota(s)

  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.