Netflix mejora la experiencia de sus clientes, aumenta la eficiencia y reduce costes con Amazon Kinesis Data Streams
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.
Netflix está empleando 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… 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», destaca.
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.
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.
Bennett afirma que «por lo general, los datos se incorporan a una base de datos para crear un índice que permita las consultas rápidas. 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.
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».
¿Te gustó este artículo?
Suscríbete a nuestro RSS feed y no te perderás nada.