Este diagrama muestra la arquitectura de procesamiento de datos y microservicios
utilizada por Netflix para manejar el flujo de datos y solicitudes desde los usuarios hasta
el backend, y viceversa. Aquí te lo explico en detalle:
1. Dispositivos de usuario:
• Los usuarios acceden al contenido de Netflix a través de diferentes dispositivos
como teléfonos móviles, laptops, consolas de videojuegos, etc.
• Estas solicitudes pasan a través de un Load Balancer (representado como "ELB"
en el diagrama), que distribuye el tráfico de manera equilibrada entre varios
servidores para manejar eficientemente las solicitudes entrantes.
2. Open Connect:
• Es una plataforma de entrega de contenido que Netflix utiliza para distribuir su
contenido de manera eficiente. Esta plataforma está conectada al Load Balancer,
que gestiona la distribución del contenido directamente a los usuarios finales.
3. Netty Server:
• Este componente maneja las solicitudes de los usuarios después de que han
pasado por el Load Balancer.
• Aquí se aplican diferentes filtros, tanto de entrada (inbound filter) como de salida
(outbound filter), a las solicitudes.
4. Zulu:
• Zulu es un enrutador de solicitudes que actúa como un gateway para las
aplicaciones microservicios de Netflix. Se encarga de la gestión de las solicitudes
HTTP, controlando el tráfico hacia los microservicios.
5. Microservicios:
• Netflix utiliza una arquitectura basada en microservicios, donde cada
componente es un servicio independiente que se comunica con otros a través de
interfaces bien definidas.
• Critical Micro Services: Son servicios críticos que manejan funciones esenciales
de la aplicación.
• Service Client: Es un cliente que interactúa con los microservicios, usando
mecanismos de resiliencia como Hystrix (un library que permite la tolerancia a
fallos en sistemas distribuidos).
• EV Cache y Cassandra: Estos componentes son sistemas de almacenamiento y
caché que manejan los datos requeridos por los microservicios.
• MySQL Billing Info: Los datos de facturación de los usuarios se almacenan en
una base de datos MySQL.
6. Chaos Monkey y TITUS:
• Chaos Monkey: Es una herramienta que Netflix usa para probar la resiliencia de
su infraestructura, simulando fallos aleatorios.
• TITUS: Es la plataforma de contenedores de Netflix, que gestiona la ejecución de
aplicaciones en un entorno de nube.
7. Procesamiento de Video:
• El diagrama también muestra el flujo para la validación y transcodificación de
nuevos videos. Este flujo incluye un Transcoder que trabaja con colas de trabajo
asíncronas para procesar videos en paralelo.
• El contenido transcodificado se almacena en Amazon S3 (un servicio de
almacenamiento en la nube).
8. Procesamiento de Eventos y Monitoreo:
• Los datos de eventos generados por el sistema son manejados por Kafka, un
sistema de mensajería distribuido, y se enrutan a través de Apache Samza para
ser procesados.
• CHUKWA es otro componente que maneja la recopilación y agregación de datos
para análisis.
• Los datos procesados pueden ser almacenados en ElasticSearch para
búsquedas rápidas o en Spark para análisis de datos más profundos.
• Amazon EMR (Elastic MapReduce) también se usa como una plataforma de
análisis basada en Hadoop, que procesa grandes cantidades de datos.
En resumen, este diagrama describe la infraestructura robusta y escalable de Netflix, que
maneja tanto la entrega de contenido a los usuarios como el procesamiento de grandes
volúmenes de datos en un entorno distribuido basado en microservicios.