Caso práctico: Netflix y Amazon Kinesis Data Streams

Netflix es una de las redes de televisión por Internet líderes del mundo, con más de 100 millones de miembros en más de 125 países que disfrutan cada día de 125 millones de horas de programas de TV y películas, incluidos documentales, películas y series originales. Los miembros pueden ver lo que quieran, cuando y donde lo deseen, desde prácticamente cualquier pantalla conectada a Internet.

Supervisión de aplicaciones a escala masiva

Netflix emplea Amazon Web Services (AWS) para prácticamente todas sus necesidades de informática y almacenamiento, incluidas las bases de datos, el análisis, los motores de recomendación, la transcodificación de vídeo y más; cientos de funciones que en total usan más de 100 000 instancias de servidor en AWS.

Esto da como resultado un entorno de red dinámico y extremadamente complejo en el que las aplicaciones se comunican de manera constante dentro de AWS y en Internet. La supervisión y la optimización de su red es fundamental para que Netflix siga mejorando la experiencia de sus clientes, aumentando la eficiencia y reduciendo los costes. En especial, Netflix necesitaba una solución para incorporar, aumentar y analizar los múltiples terabytes de datos que su red genera diariamente como registros de flujos de Virtual Private Cloud (VPC). Esta solución permitiría a Netflix identificar las oportunidades de mejora del rendimiento, por ejemplo, determinando aquellas aplicaciones que se comunican entre regiones y colocándolas. La empresa también podría aumentar el tiempo de actividad al detectar y mitigar rápidamente el tiempo de inactividad de las aplicaciones.

Cada registro contiene información sobre las comunicaciones entre dos direcciones IP. Sin embargo, en un entorno dinámico como el de Netflix, donde una dirección IP puede alternar entre aplicaciones de un día para otro, o incluso de un minuto a otro, las direcciones IP no tienen mucho significado. «Las fuentes de los datos que teníamos antes de comenzar esta iniciativa eran unilaterales«, indica John Bennett, ingeniero ejecutivo de software en Netflix. «Sabíamos que una aplicación se conectaba a otras, pero no conocíamos ambos lados de la conversación y no sabíamos cómo optimizar esas comunicaciones o la ubicación de las aplicaciones en la red».

Netflix se propuso establecer una nueva fuente de datos que proporcionara más información sobre la comunicación entre las aplicaciones y las regiones combinando los registros de flujos de VPC con los metadatos de las aplicaciones.

Centralización de los registros de flujos con Amazon Kinesis Data Streams

Desde el principio, AWS permitió a Netflix experimentar con distintos enfoques para analizar sus datos de red. «Al comienzo del proceso de diseño, fue importante la flexibilidad para probar distintas maneras de procesar los datos», afirma Bennett. «Probamos varios diseños y usamos muchos productos de AWS para llegar aquí».

La solución que finalmente implementó Netflix, conocida internamente como Dredge, centraliza los registros de flujos con Amazon Kinesis Data Streams. La aplicación lee los datos de Amazon Kinesis Data Streams en tiempo real y enriquece las direcciones IP con los metadatos de las aplicaciones para proporcionar una imagen completa del entorno de red. «Por lo general, los datos se incorporan a una base de datos para crear un índice que permita las consultas rápidas«, dijo Bennett. «Dredge fusiona los registros de flujo con los metadatos de las aplicaciones transmitiéndolos e indexándolos sin usar una base de datos, lo que elimina mucha complejidad».Los datos enriquecidos llegan a una aplicación de análisis de código abierto llamada Druid. Netflix usa la funcionalidad de consultas de OLAP de Druid para dividir los datos rápidamente en regiones, zonas de disponibilidad e intervalos de tiempo. Esto facilita su visualización y permite obtener información sobre cómo se comporta y funciona la red.

AWS fue una elección lógica para Dredge, en parte porque los datos ya residen en la nube de AWS. «Hubiera sido difícil publicar, transmitir y consumir esa cantidad de información desde un sistema externo como Kafka», indica Bennett. «Bastaron unas llamadas a la API para centralizar múltiples terabytes de registros de flujos en Amazon Kinesis Data Streams. Ahora podemos centrarnos en obtener más información de los datos en vez de solo acceder a ellos«.

La escalabilidad de Amazon Kinesis Data Streams es la adecuada para la aplicación de Dredge por la naturaleza elástica y cíclica del uso de la red en Netflix. «Cuando se trata de nuestros datos de red, es más rentable poder ajustar la escala, lo que no es tan sencillo con otras alternativas a Amazon Kinesis Data Streams», afirma Bennett.

Diagrama de la arquitectura

Mejorar la experiencia de los clientes con supervisión de la red en tiempo real

La solución basada en Amazon Kinesis Streams de Netflix demostró ser altamente escalable, procesando por día miles de millones de flujos de tráfico. Generalmente, alrededor de 1000 fragmentos de Amazon Kinesis trabajan en paralelo para procesar la transmisión de datos. «Amazon Kinesis Data Streams procesa múltiples terabytes de datos de registros por día y, sin embargo, los eventos se muestran en nuestros análisis en cuestión de segundos», indica Bennett. «Podemos descubrir y responder a los problemas en tiempo real, garantizando una alta disponibilidad y una gran experiencia de los clientes».

Ahora, Netflix puede identificar nuevas maneras de optimizar sus aplicaciones, por ejemplo, trasladando una aplicación de una región a otra, o cambiando a un protocolo de red más adecuado para un tipo específico de tráfico. «Nuestra solución creada en Amazon Kinesis nos permite identificar maneras de aumentar la eficacia, reducir los costes y mejorar la resiliencia para reforzar la experiencia del cliente», afirma Bennett.

Aunque una solución de transmisión de datos no es nueva para el sector de TI, es una innovación en el espacio de red. «Netflix invierte mucho en AWS en parte porque sintetiza la red subyacente, por lo que no tenemos que lidiar con conmutadores y routers», indica Bennett. «Ahora podemos supervisar, analizar y optimizar a un nivel más alto de la pila. Esto jamás hubiera sido posible usando nuestros centros de datos».

Beneficios del uso de AWS

  • Procesa y enriquece múltiples terabytes por día, representando miles de millones de eventos, con tiempos de respuesta inferiores a 1 segundo para las consultas de análisis
  • Muy rentable en comparación con las demás soluciones
  • Libertad para experimentar con la arquitectura del sistema y llegar a la solución más efectiva
  • La incorporación de datos se inicia con unas pocas llamadas simples a la API
  • Una solución altamente elástica, con cerca de 1000 fragmentos de Amazon Kinesis que trabajan en paralelo

TE PUEDE GUSTAR

EVENTOS

RECIBE NUESTRA NEWSLETTER

*Email:

*Nombre:

*Empresa:

Cargo:

Sector:
     

Please don't insert text in the box below!

ESCUCHA NUESTRO PODCAST

SÍGUENOS EN RRSS

MÁS COMENTADOS

Scroll al inicio
Resumen de privacidad

Las cookies y otras tecnologías similares son una parte esencial de cómo funciona nuestra web. El objetivo principal de las cookies es que tu experiencia de navegación sea más cómoda y eficiente y poder mejorar nuestros servicios y la propia web. Aquí podrás obtener toda la información sobre las cookies que utilizamos y podrás activar y/o desactivar las mismas de acuerdo con tus preferencias, salvo aquellas Cookies que son estrictamente necesarias para el funcionamiento de la web de BigDataMagazine. Ten en cuenta que el bloqueo de algunas cookies puede afectar tu experiencia en la web y el funcionamiento de la misma. Al pulsar “Guardar cambios”, se guardará la selección de cookies que has realizado. Si no has seleccionado ninguna opción, pulsar este botón equivaldrá a rechazar todas las cookies. Para más información puedes visitar nuestra Políticas de Cookies. Podrás cambiar en cualquier momento tus preferencias de cookies pinchando en el enlace “Preferencias de cookies” situado en la parte inferior de nuestra web.