En los pocos años transcurridos desde su introducción, el servicio de transmisión de video en línea de Netflix ha crecido hasta contar con más de 50 millones de suscriptores en 40 países. Ya hemos compartido algunas de las mejores prácticas que adoptaron los ingenieros de desarrollo de software de Netflix a medida que pasaban de un proceso de desarrollo monolítico tradicional a la entrega continua y los microservicios, en Adopción de microservicios en Netflix: Lecciones de diseño arquitectónico y adopción de microservicios en Netflix: Lecciones para el diseño de equipos y procesos .
En esta publicación, analizaremos otro factor clave para el éxito de Netflix: su red de distribución de contenidos (CDN), Open Connect . Estamos orgullosos de que NGINX funcione en todos los dispositivos de distribución Open Connect y de que tenga un papel clave en la capacidad de Netflix de seguir el ritmo del crecimiento explosivo del servicio de video. Gleb Smirnoff de NGINX ha trabajado junto al equipo de Open Connect durante más de dos años y en octubre pasado, en nuestra conferencia de usuarios, nginx.conf2014, explicó por qué Netflix eligió NGINX (junto con FreeBSD) para impulsar esta parte crucial de su negocio.
Netflix inicialmente subcontrató la distribución de video en streaming a tres grandes proveedores de CDN (Akamai, Level3 y LimeLight). A medida que el servicio se hizo más popular, Netflix decidió que tenía sentido construir y administrar su propia CDN, por varias razones:
Lo más importante es que Netflix construyó su propia CDN para tener un mayor control sobre la entrega de aplicação y la experiencia del usuario. Para brindar una distribución óptima de contenido multimedia en streaming a los clientes, Netflix necesitaba maximizar su control sobre los tres componentes básicos de la cadena de distribución:
Netflix pudo optimizar Open Connect para la transmisión de video de una manera que no es posible con una CDN genérica proporcionada por un proveedor. Open Connect permite a Netflix ofrecer una experiencia de usuario superior a un costo menor y con mayor visibilidad del rendimiento de la aplicação en todo el mundo.
Desde el principio, el objetivo de Netflix fue, como dice Gleb, “obtener cada vez más gigabits por segundo desde un solo dispositivo”. En concreto, Netflix necesitaba maximizar el número de suscriptores que cada dispositivo podía atender simultáneamente. Los ingenieros de Open Connect anticiparon la necesidad de perfeccionar el software para lograr este objetivo, por lo que decidieron utilizar open source software por su extensibilidad ilimitada.
Como se mencionó anteriormente, Netflix coloca sus dispositivos de transmisión de video en los centros de datos de los ISP de sus clientes cuando es posible. Dado que el software que se ejecuta en los dispositivos estaría en manos de terceros, Netflix eligió proyectos que utilizan una licencia estilo BSD en lugar de la Licencia Pública GNU (GPL).
Los proyectos específicos de código abierto que eligió Netflix fueron:
NGINX como servidor de transmisión multimedia. Su velocidad y estabilidad demostradas fueron importantes porque Netflix quería lanzar Open Connect lo más rápido posible, sin necesidad de modificarlo para empezar. Una vez que la CDN estuvo en funcionamiento, Netflix pudo examinar los patrones de tráfico y ajustar la configuración de NGINX.
Otro beneficio de NGINX es que, aunque el open source software se distribuye bajo una licencia estilo BSD, todos sus desarrolladores principales son empleados a tiempo completo de NGINX, Inc., que brinda soporte de clase empresarial para su producto comercial, NGINX Plus . En este sentido, combina las mejores características del OSS y del software comercial.
El marco flexible de NGINX para ejecutar módulos personalizados también atrajo a Netflix, y el equipo de Open Connect creó módulos específicos para sus necesidades de transmisión de video.
La combinación de FreeBSD y NGINX produce más beneficios:
kqueue
de FreeBSD es una de las mejores API para E/S multiplexada.sendfile
junto con la llamada al sistema aio_read
. En conjunto, las llamadas evitan el bloqueo en la E/S del disco, lo que genera un rendimiento excepcional.Desde su inicio, NGINX fue diseñado para ser adaptable y soportar todos los aspectos de la entrega de aplicação . Para que sea más fácil para nuestros clientes comerciales implementar aplicações similares a Netflix, NGINX Plus combina servicio web, equilibrio de carga, almacenamiento en caché de contenido y transmisión multimedia en un paquete fácil de usar. Conozca nuestros casos de estudio para aprender cómo otras empresas líderes utilizan NGINX Plus para ofrecer sus aplicações con rendimiento, seguridad y escala.
Disfrutamos trabajando en estrecha colaboración con los clientes, brindándoles orientación sobre cómo aprovechar al máximo NGINX Plus en sus arquitecturas de entrega de aplicação específicas. Nuestros equipos de soporte y servicios profesionales pueden ayudarlo con orientación arquitectónica, instalación, configuración, actualizaciones y más. Contáctanos para obtener más información.
"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.