Entrevista de diseño de sistemas: Diseña Netflix
«Diseña Netflix» es un problema dominado por la lectura en el que un hecho lo determina todo: servir video a escala global es mucho más un problema de entrega de contenido y almacenamiento que de cómputo. El entrevistador quiere verte separar el plano de control (navegación, búsqueda, recomendaciones) del plano de datos (transmitir los bytes en sí) y razonar sobre cómo entregar petabytes cerca de los usuarios.
Trabájalo en orden: aclara los requisitos, estima la escala, diseña el pipeline de subida/transcodificación, luego la ruta de reproducción a través de una CDN, y termina con el bitrate adaptativo y los compromisos. La guía a continuación sigue esa estructura para que practiques el razonamiento, no memorices una arquitectura.
1. Aclarar los requisitos
Separa lo funcional de lo no funcional y acota con precisión. El núcleo es: los usuarios navegan un catálogo y reproducen video sin problemas en distintos dispositivos y condiciones de red.
- Funcional: navegar/buscar el catálogo, iniciar la reproducción, calidad adaptativa, continuar donde lo dejaste, multi-dispositivo.
- No funcional: disponibilidad muy alta, baja latencia de arranque, reproducción fluida (sin rebuffering), alcance global.
- Fuera de alcance (dilo explícitamente): los detalles internos del ML de recomendaciones, la facturación, los detalles de DRM — menciónalos y pospónlos.
2. Estimar la escala
Las cifras justifican el diseño orientado a CDN. Supón cientos de millones de suscriptores y muchos millones de streams concurrentes en el pico. Un solo stream consume varios Mbps, por lo que la salida agregada es de decenas de terabits por segundo, imposible de servir desde unos pocos centros de datos centrales, lo que motiva de inmediato el caché en el borde.
3. Pipeline de ingesta y transcodificación
Los masters subidos se procesan fuera de línea, no en la ruta de reproducción. Cada título se transcodifica en muchas renditions — varias resoluciones y bitrates — y se segmenta en fragmentos pequeños (de unos pocos segundos cada uno) para el streaming adaptativo.
- Granja de transcodificación: convierte el master en renditions H.264/H.265/AV1 en varios bitrates; es trabajo por lotes embarazosamente paralelo.
- Segmentación y empaquetado: divide cada rendition en segmentos cortos con un manifiesto (HLS/DASH) que los describe.
- Guarda las salidas en almacenamiento de objetos (tipo S3) como fuente de verdad, y luego empuja el contenido popular al borde.
4. CDN y la ruta de reproducción
La reproducción se sirve desde el borde, no desde el origen. Los segmentos de video se almacenan en caché en nodos de CDN físicamente cercanos a los usuarios (Netflix opera sus propios equipos Open Connect dentro de los ISP). El cliente obtiene el manifiesto y luego recupera los segmentos del nodo de borde saludable más cercano.
El plano de control (catálogo, búsqueda, perfiles de usuario, 'continuar viendo') es un conjunto separado de servicios API sin estado respaldados por sus propias bases de datos y cachés — devuelve metadatos y una URL de manifiesto, y está completamente desacoplado de la entrega pesada de bytes.
- Caché de borde (CDN/Open Connect): sirve la gran mayoría de los bytes; preposiciona los títulos populares por región antes de la demanda.
- Almacenamiento de origen: almacén de objetos que respalda los fallos de caché.
- APIs del plano de control: catálogo, autorización de reproducción, marcadores — payloads pequeños, escalados horizontalmente, con caché por delante.
5. Streaming de bitrate adaptativo
La reproducción fluida bajo redes variables viene del cliente, no del servidor. El reproductor monitorea el throughput y el nivel de buffer, y cambia la calidad del segmento hacia arriba o abajo entre segmentos usando la lista de renditions del manifiesto — mayor bitrate en conexiones rápidas, menor para evitar el rebuffering en las lentas.
6. Compromisos que hay que verbalizar
Cierra con las tensiones que escucha un entrevistador: el costo de almacenamiento de precalcular todas las renditions frente a la latencia de transcodificar al vuelo (Netflix precalcula — el almacenamiento es más barato que el retraso de arranque); cachear todo frente a cachear lo popular en el borde (un catálogo de cola larga no puede vivir entero en cada borde); y consistencia fuerte frente a eventual para datos del plano de control como 'continuar viendo' (eventual está bien). Nombrar esto es lo que hace que la respuesta sea senior.
Practica el diseño de sistemas de Netflix con ayuda en tiempo real
El asistente de entrevistas de diseño de sistemas de Natively puede mantenerte estructurado durante una ronda en vivo, sugiriendo la siguiente dimensión a cubrir y mostrando los compromisos en tiempo real, todo en tu propio dispositivo.
