Netflix: ¿que sucede cuando haces clic en reproducir?


Este artículo es un capítulo de mi nuevo libro Explain the Cloud to a Ten-Year- Old. La primera opción fue escrita específicamente para aquellos que necesitan una introducción a las nubes. Luego realicé algunas actualizaciones y agregué un par de capítulos: "Netflix: ¿qué sucede cuando presionas inicio?" y "¿Qué es la computación en la nube?" - que ya están un poco más allá del conocimiento de un principiante. Creo que podrán interesar incluso a personas bastante experimentadas.

Entonces, si necesita una buena introducción a las nubes o conoce a alguien que la necesita, eche un vistazo. Creo que te gustará. Estoy orgulloso de lo que hice.

Escribí este capítulo sobre la base de una docena de fuentes, que a veces se contradicen entre sí. Los hechos clave cambian con el tiempo y dependen de quién cuenta la historia y qué audiencia. Traté de hacer una historia coherente siempre que sea posible. Tenga en cuenta que esta no es una guía técnica, es un artículo con imágenes grandes. Por ejemplo, nunca he mencionado microservicios .

Netflix parece tan simple. Haga clic en "reproducir" y el video aparecerá mágicamente. Simple, ¿verdad? Si, no realmente.



Después de nuestras discusiones en el capítulo "¿Qué es la computación en la nube?" puede esperar que Netflix trabaje con video usando AWS. Haga clic en "reproducir" en la aplicación Netflix, y el video almacenado en S3 se transmitirá directamente a su dispositivo a través de Internet a través de Internet.

Un enfoque perfectamente razonable: para un servicio que es mucho más pequeño.

Pero Netflix está completamente equivocado. Todo es mucho más complicado e interesante de lo que puedas imaginar.

Para entender por qué, echemos un vistazo a las estadísticas de Netflix para 2017:

  • Más de 110 millones de suscriptores.
  • Trabaja en más de 200 países.
  • Ingresos de $ 3 mil millones por trimestre.
  • Agrega 5 millones de suscriptores por trimestre.
  • Reproduce más de mil millones de horas de video semanalmente. En comparación, YouTube reproduce mil millones de horas de video todos los días, mientras que Facebook reproduce 110 millones de horas de video todos los días.
  • En un día de 2017, se reprodujeron 250 millones de horas de video.
  • Responsable del 37% del pico del tráfico de Internet en los EE. UU.
  • Planea gastar $ 7 mil millones en contenido nuevo en 2018.

Que aprendimos


Netflix es enorme. Es global, tiene muchos suscriptores, reproduce una gran cantidad de videos y tiene mucho dinero.

Otro hecho pertinente es que Netflix funciona por suscripción. Los suscriptores pagan Netflix mensualmente y pueden darse de baja en cualquier momento. Cuando presiona "reproducir" para relajarse en Netflix, sería mejor si este servicio funciona normalmente. Los suscriptores insatisfechos se dan de baja.

Echa un vistazo más profundo


Netflix es un gran ejemplo de las ideas que discutimos, por lo que este capítulo tendrá mucho más detalles que la descripción de otros servicios en la nube. Una razón para explorar Netflix en profundidad es que proporcionan mucha más información que otras compañías. Las comunicaciones de Netflix se consideran un activo cultural importante, y la compañía mantiene con éxito sus estándares.

Incluso me gustaría agradecer a Netflix por su apertura sobre su arquitectura. Con los años, la compañía dio cientos de conferencias y escribió cientos de artículos sobre los detalles de sus patrones internos de trabajo. Esto ayuda a mejorar toda la industria.

Otra razón para estos detalles detallados es que el servicio de Netflix es simplemente increíble. La mayoría de nosotros lo hemos usado, ¿y quién no estaría interesado en mirar detrás de escena y descubrir cómo funciona?

Netflix se ejecuta en dos nubes: AWS y Open Connect


¿Cómo satisface la empresa a los clientes? Con la ayuda de las nubes. De hecho, dos nubes diferentes: AWS y Open Connect. Ambos deberían trabajar juntos sin problemas para producir muchas horas de contenido de video que satisfaga a los usuarios.

Tres partes de Netflix: cliente, backend, red de entrega de contenido


Puede dividir mentalmente Netflix en tres partes: cliente, backend, red de entrega de contenido (CDN).

Cliente: una interfaz de usuario que se ejecuta en cualquier dispositivo utilizado para ver listas de videos y reproducirlos. Puede ser una aplicación móvil en un teléfono inteligente, un sitio web en una computadora de escritorio o incluso una aplicación en un televisor inteligente. Netflix controla cada cliente en cada dispositivo.

Todo lo que sucede antes de hacer clic en el botón de reproducción ocurre en el back-end que se ejecuta en AWS. Esto incluye cosas como preparar todos los nuevos videos entrantes y procesar solicitudes de todas las aplicaciones, sitios web, televisores y otros dispositivos.

Todo lo que sucede después de hacer clic en "reproducir" se procesa en Open Connect. Esta es la propia red de entrega de contenido de Netflix. Almacena videos en varios lugares del mundo. Cuando hace clic en "reproducir", la transmisión de video proviene de Open Connect a su dispositivo, y el cliente la muestra. No se preocupe, hablaremos de CDN más tarde. Curiosamente, el proceso de lanzamiento de video de la compañía no se llama "haga clic en" reproducir ", sino" haga clic en "iniciar" en el nombre ". Cada industria tiene su propia jerga.

Controlando las tres áreas: cliente, backend, CDN, Netflix logró una integración vertical completa. La compañía controla su experiencia de ver videos de principio a fin. Por lo tanto, simplemente funciona cuando haces clic en "reproducir" en cualquier parte del mundo. Le garantizamos que obtendrá el contenido que necesita, el que desea ver y cuando lo desee.

Veamos exactamente cómo resulta esto.

En 2008, Netflix comenzó a mudarse a AWS


Netflix ha estado operando desde 1998. Al principio, se ocupó del alquiler de DVD por correo. Pero la compañía vio el futuro en la transmisión de video a pedido. En 2007, Netflix presentó su servicio de video a pedido, que permitía a los suscriptores transmitir programas de TV y películas a través del sitio web de la compañía en computadoras personales o mediante el software especial de la compañía en varias plataformas que admite, incluidos teléfonos inteligentes y tabletas, reproductores digitales y juegos. decodificadores y televisores inteligentes.

El futuro para la transmisión de video a pedido puede parecer obvio. En principio, lo fue. Personalmente, trabajé en un par de startups tratando de emitir videos a pedido. Ellos fallaron Y Netflix estaba esperando el éxito. La compañía definitivamente funcionó bien, pero llegó tarde al mercado, lo que la ayudó. Para 2007, Internet era lo suficientemente rápido y económico como para admitir servicios de transmisión de video. Esto no ha sucedido antes. La llegada del tráfico móvil rápido y no muy costoso y la introducción de dispositivos móviles potentes, como teléfonos inteligentes y tabletas, hicieron que fuera más fácil y económico ver videos en tiempo real en cualquier lugar y en cualquier lugar. El momento adecuado es la clave del éxito.

Netflix comenzó con sus propios centros de datos


EC2 recién comenzaba en 2007, casi al mismo tiempo que Netflix estaba comenzando. Por lo tanto, Netflix no pudo comenzar a usar EC2. La compañía ha construido dos centros de datos ubicados cerca. Y experimentaron todos los problemas que discutimos en capítulos anteriores.

La construcción de centros de datos es muy costosa. Toma tiempo ordenar el equipo, su instalación y lanzamiento. Inmediatamente después del lanzamiento, se quedaron sin energía y todo tuvo que comenzar de nuevo. El tiempo dedicado al equipo obligó a la empresa a adoptar una estrategia de escala vertical.

Netflix escribió grandes programas que se ejecutan en grandes computadoras. Este enfoque se llama la construcción de un monolito. Un programa hizo todo. El problema es que si creces tan rápido como Netflix, es muy difícil hacer un monolito confiable. No era confiable.

La denegación de servicio obligó a Netflix a mudarse a AWS


En agosto de 2008, Netflix no pudo enviar DVD durante tres días consecutivos debido a una falla en su base de datos. Eso fue inaceptable. Era necesario resolver algo. La experiencia de construir centros de datos le enseñó a la empresa algo importante: no funcionó bien construir centros de datos. Ella era buena en entregar videos a sus clientes. Necesitaba centrarse en las mejoras en la entrega de video, en lugar de las mejoras en la construcción de centros de datos. La construcción de centros de datos no fue una ventaja competitiva de la empresa, sino la entrega de video.

En ese momento, Netflix decidió mudarse a AWS. AWS apenas comenzaba, por lo que fue una decisión audaz. La compañía se mudó a AWS porque necesitaba una infraestructura más confiable. Netflix quería eliminar todas las debilidades del sistema. AWS ofreció bases de datos altamente confiables, almacenamiento y centros de datos redundantes. Netflix necesitaba servicios en la nube para dejar de construir monolitos poco confiables. Netflix quería convertirse en un servicio global sin construir sus centros de datos. Tales oportunidades en sus antiguos centros de datos no eran ni podían ser.

Netflix eligió AWS porque no quería involucrarse en un trabajo duro indiferenciado. El trabajo duro no diferenciado es lo que hay que hacer, pero eso no le da ninguna ventaja al negocio principal, que consiste en proporcionar una visualización de video de calidad. AWS hace todo este trabajo duro para Netflix. Y esto les da a los netflixers la oportunidad de concentrarse en proporcionar valiosos servicios comerciales.

Trasladar una empresa de sus centros de datos a AWS le llevó más de ocho años. Netflix aumentó el número de clientes ocho veces durante este tiempo. Netflix ahora se ejecuta en varios cientos de miles de copias de EC2.

AWS Netflix más confiable


No es que Netflix nunca haya experimentado problemas con AWS, pero en general, su servicio se ha vuelto mucho más confiable que antes. Ya no verá tales quejas:





La compañía se volvió tan confiable ya que tomó medidas extraordinarias para esto. Opera en tres regiones de AWS: el norte de Virginia, Portland, Oregón y Dublín, Irlanda. En cada uno de ellos, Netflix opera en tres zonas de acceso diferentes.

La compañía no tiene planes de aumentar el número de regiones de trabajo. Agregar nuevas regiones es muy difícil y costoso. La mayoría de las empresas operan en una sola región, sin mencionar dos o tres.

La ventaja de trabajar en tres regiones es que una de ellas puede caerse, y las otras dos caerán en su lugar y atenderán a los clientes de la región afectada. Netflix llama la evacuación de la caída de la región.

Considere un ejemplo. Supongamos que estás viendo un nuevo episodio de "House of Cards" en Londres, Inglaterra. Lo más probable es que su dispositivo esté conectado a la región de Dublín, ya que está más cerca. ¿Qué sucede cuando cae la región de Dublín? ¿Netflix dejará de trabajar para ti? No Una vez que se detecta un problema, Netflix lo redirigirá a Virginia. Su dispositivo se comunicará con la región de Virgin en lugar de Dublín. Puede que ni siquiera note fallas.

¿Con qué frecuencia falla la región de AWS? Una vez al mes Bueno, en realidad la región no falla todos los meses. Netflix realiza pruebas mensuales. Cada mes, Netflix elimina específicamente toda la región, solo para asegurarse de que su sistema maneje fallas regionales. Puede evacuar la región en seis minutos.

Netflix llama a esto un modelo de servicio global. Cada cliente puede ser atendido desde cualquier región. Esto es asombroso. Y esto no sucede automáticamente. AWS no tiene una salsa mágica para manejar el fracaso de las regiones o atender a clientes de diferentes regiones. Netflix hizo el trabajo. La compañía es pionera en la creación de sistemas confiables en varias regiones. No sé de otras compañías que tomarían tales medidas para garantizar la confiabilidad del servicio.

Otra ventaja de trabajar desde estas tres regiones es que Netflix puede cubrir todo el mundo. Netflix realizó controles y descubrió que al iniciar la aplicación en cualquier parte del mundo, en cualquier caso, recibirá un servicio rápido de una de estas regiones.

Netflix ahorra usando AWS


Esto puede sorprender a muchos, pero AWS para Netflix es más barato. El costo de la nube en términos de visualización del video es varias veces menor que cuando se usan centros de datos antiguos. Por qué Debido a la elasticidad de la nube.

Netflix puede agregar servidores según sea necesario y devolverlos cuando no sean necesarios. En lugar de un montón de computadoras adicionales que no hacen nada, solo esperan la carga máxima, la compañía usa exactamente la cantidad de computadoras que necesita y cuando es necesario.

¿Qué sucede en AWS antes de hacer clic en reproducir?


Todo lo que no está relacionado con la presentación del video se procesa en AWS. Esto incluye potencia informática escalable, almacenamiento escalable, lógica de negocios, bases de datos distribuidas escalables, procesamiento y análisis de grandes datos, recomendaciones, transcodificación y cientos de otras funciones. No es necesario que los entienda a todos, pero como esto puede parecerle interesante, los explicaré brevemente.

Computación escalable Potencia y almacenamiento


La potencia informática escalable es EC2 y el almacenamiento es S3. No hay nada nuevo para nosotros aquí. Su dispositivo es un iPhone, TV, Xbox, teléfono inteligente Android, tableta, etc. - se comunica con un servicio que se ejecuta en EC2. Su dispositivo recibe una lista de posibles películas para ver al comunicarse con una computadora que ejecuta EC2. Información detallada sobre el video que su dispositivo recibe allí. Todo funciona igual que en otros servicios en la nube.

Bases de datos distribuidas escalables


Netflix usa DynamoDB y Cassandra como bases de datos distribuidas. Estos nombres no deberían significar nada para usted, solo son bases de datos de alta calidad. Los datos se almacenan en la base de datos. Información sobre su perfil, sobre cuentas, sobre todas las películas vistas: todo esto se almacena en la base de datos. Las bases de datos distribuidas no funcionan en una computadora grande, sino en muchas computadoras. Sus datos se copian en muchas computadoras para que incluso si una o dos computadoras que almacenan sus datos fallan, sus datos estarán seguros. En realidad, todos los datos se copian en las tres regiones. Debido a esto, en el caso de una falla en la región, sus datos estarán disponibles en otra región a la que será cambiado. Y el escalado significa que la base de datos podrá almacenar tantos datos como usted le agregue. Esta es una de las principales ventajas de las bases de datos distribuidas. Si llegan más datos, se pueden agregar más computadoras.

Gran procesamiento de datos y análisis


Big data es solo una gran cantidad de datos. Netflix recopila mucha información. La compañía sabe quién lo vio, cuándo y dónde lo vieron. La compañía sabe qué videos vieron sus clientes, pero no ordenaron. Ella sabe cuántas veces se ha visto cada video, y mucho más.

La recopilación y conversión de todos los datos a un formato estándar se denomina procesamiento. Y extrayendo significado de ellos: análisis. Los datos se analizan para obtener respuestas a preguntas específicas.

Netflix personaliza imágenes especialmente para ti


Aquí hay un gran ejemplo de cómo Netflix lo atrae a ver más películas utilizando las capacidades de análisis de datos. Cuando navega por las listas y elige qué ver, ¿prestó atención al hecho de que para cada película se emite una imagen? Esta es la imagen del título.

La imagen del título debería intrigarte, atraer tu atención y hacerte elegir este video. La idea es que cuanto más intrigante sea la imagen, es más probable que vea el video. Y cuantos más videos vea, menos probabilidades tendrá de darse de baja de Netflix.

Aquí hay un ejemplo de las diversas imágenes de títulos de la serie Stranger Things:



Te sorprenderá que cada imagen para cada video esté seleccionada específicamente para ti. No todos ven las mismas imágenes.

Anteriormente, todos veían las mismas imágenes de título. Así es como funcionó. A los clientes se les mostró una imagen seleccionada al azar de un conjunto, como la que se muestra en la ilustración anterior. Netflix contó todas las vistas de video y grabó qué imagen se mostró al usuario cuando se seleccionó un video. Supongamos, para nuestro ejemplo con la serie, que al mostrar la imagen central del collage, el video se vio 1000 veces. Y al mostrar el resto de las imágenes, solo una vez.

Como la imagen del grupo era mejor que otras para atraer a los usuarios a ver, Netflix tuvo que convertirla en la imagen del título de la serie para siempre. Esto se llama selección basada en datos. Netflix funciona en base al análisis de datos. Los datos se recopilan, en este caso, el número de vistas asociadas con cada imagen, y se utilizan para tomar las mejores decisiones, en este caso, para seleccionar una imagen de título.

Con astucia, pero ¿se puede hacer esto aún mejor? Sí, usando aún más datos. Para este tema, el futuro está en resolver problemas a través del aprendizaje de los datos. Somos personas diferentes ¿Crees que las mismas imágenes nos pueden motivar? Probablemente no. Tenemos diferentes gustos, diferentes preferencias. Y Netflix lo sabe, así que ahora personaliza todas las imágenes que te muestra. Ella está tratando de elegir una imagen que resalte el aspecto más importante del video para usted. ¿Cómo hace ella esto?

Recuerde que Netflix registra y cuenta todo lo que hace en su sitio web. Ella sabe qué películas te gustan, qué actores te gustan, etc. Supongamos que entre sus recomendaciones estaba la película "Good Will Hunting". Netflix debería elegir una imagen de encabezado adecuada. El objetivo es mostrar una imagen que le diga que esta película podría ser de su interés. ¿Qué imagen necesitas mostrar?

Si te gustan las comedias, Netflix te mostrará una imagen con Robin Williams. Si prefieres melodramas, Netflix te mostrará una imagen de Matt Damon y Minnie Driver a punto de besarse.



Con Robin Williams, el servicio te dice que es probable que la película tenga humor, y dado que Netflix sabe que te gustan las comedias, este video es adecuado para ti. Imagen Matt Damon y Minnie Driver envían un mensaje completamente diferente. Si te gustan las comedias y ves esta imagen, lo más probable es que te la pierdas. Por lo tanto, elegir la imagen correcta es muy importante. Envía un fuerte mensaje personalizado sobre el tema de la película.

Aquí hay otro ejemplo: Pulp Fiction:



Si viste muchas películas con Uma Thurman, es probable que veas la imagen del título con Uma. Si ha visto muchas películas con Travolta, es probable que vea la imagen del título con John. ¿Ves cómo elegir la mejor imagen personalizada posible puede aumentar la probabilidad de ver un video en particular?

Netflix apela a su interés al elegir imágenes, pero el servicio no quiere mentirle. No quiere mostrarte una imagen atractiva para hacerte ver un video que no te gusta. No hay incentivo. El servicio no cobra por el número de visitas. El servicio intenta minimizar el arrepentimiento y quiere que te guste lo que estás viendo, por lo que selecciona para ti la mejor imagen de título posible. Y este es solo un pequeño ejemplo de análisis de datos. Netflix usa tales estrategias en todas partes.

Recomendaciones


Netflix generalmente muestra 40-50 opciones de video, pero el servicio tiene ofertas de miles de videos. ¿Cómo decide Netflix qué mostrar? Por aprendizaje automático.

Esto es parte del análisis y procesamiento de big data del que acabamos de hablar. El servicio examina los datos y predice lo que le gustaría. En general, todo lo que ve en la pantalla de Netflix se ha seleccionado específicamente para usted mediante el aprendizaje automático.

Transcodificación del archivo fuente al formato que necesita


Y así llegamos a la forma en que Netflix maneja el video. Antes de que pueda comenzar a mirar en su dispositivo favorito, Netflix debe convertir el video al formato que mejor se adapte a su dispositivo. Este proceso se llama transcodificación. Convierte un archivo de video de un formato a otro, para que el video se pueda ver en diferentes plataformas y dispositivos. Netflix codifica todos sus videos en AWS en 300,000 procesadores simultáneamente. ¡Esto es más que casi cualquier supercomputadora!

Fuente Fuente de datos


¿Quién sube videos a Netflix? Estudios y asociaciones de producción. Netflix llama a esto los datos en bruto. El nuevo video se envía al equipo de contenido para su procesamiento. Viene en alta resolución, muchos terabytes de tamaño. Para imaginar un terabyte de información, imagine 60 pilares de papel, cada uno de los cuales tiene la misma altura que la Torre Eiffel.

Antes de que pueda ver el video, Netflix lo expone a un duro proceso de varios pasos.



Control de calidad


Primero, Netflix pasa mucho tiempo revisando la calidad del video. Está buscando artefactos digitales, cambios de color, cuadros descartados que podrían aparecer debido a intentos de transcodificación anteriores o problemas de transferencia de datos. Si se detecta algún problema, el video es rechazado.

Transportador de procesamiento


Después de confirmar la calidad del video se envía a la tubería de procesamiento. Esta es una secuencia de pasos por los que pasan los datos antes de que puedan usarse, algo así como una cinta transportadora en una fábrica. Se utilizan más de 70 programas de procesamiento diferentes para crear cada video.

El procesamiento de un solo archivo de varios terabytes no es práctico, por lo que el primer paso en la tubería será dividir el video en muchas piezas pequeñas. Las piezas pasan a lo largo del transportador para que puedan codificarse en paralelo, es decir, se procesan simultáneamente.

Mostramos paralelización usando un ejemplo.



Supongamos que tiene cien perros sucios que necesitan ser lavados. ¿Cómo será más rápido hacer esto, si una persona lava un perro tras otro, o si contrata a un centenar de lavadores de perros y los lava todos a la vez?

Obviamente, el proceso será más rápido si cien lavadoras trabajan al mismo tiempo. Esto es paralelismo. Es por eso que Netflix usa tantos servidores EC2. Necesitan muchos servidores para procesar estos archivos de video gigantes en paralelo. Y funciona: la compañía afirma que el archivo fuente puede codificarse y enviarse a la CDN en solo 30 minutos.

Cuando las piezas están codificadas, se verifican para asegurarse de que no tengan nuevos problemas. Luego se vuelven a recopilar en un archivo y se vuelven a verificar.

El resultado es un montón de archivos.


El proceso de codificación crea muchos archivos. Por quéEl objetivo final de Netflix es admitir todos los dispositivos conectados a Internet. La compañía comenzó a operar en 2007 en la plataforma Microsoft Windows. Con el tiempo, se agregaron muchos otros dispositivos: Roku, LG, Samsung Blu-ray, Apple Mac, Xbox 360, LG DTV, Sony PS3, Nintendo Wii, Apple iPad, Apple iPhone, Apple TV, Android, Kindle Fire y Comcast X1.

En total, Netflix admite 2.200 dispositivos diferentes. Para cada uno de ellos hay un formato de video que se ve mejor en él. Si ves Netflix en un iPhone, verás el video que se ve mejor en un iPhone. La compañía llama a todos los diversos formatos de video un perfil de codificación. Netflix también crea archivos optimizados para diferentes velocidades de red. Si mira un archivo en una red de alta velocidad, verá un video de mejor calidad que si lo viera en una red más lenta.

También hay archivos para varios formatos de audio. El audio está codificado en diferentes niveles de calidad y diferentes idiomas. Además, hay archivos con subtítulos. Un video puede tener múltiples subtítulos en diferentes idiomas. Hay varias opciones de visualización diferentes para cada video. Lo que ve depende de su dispositivo, la calidad de la conexión, la tarifa de servicio y la elección del idioma.

Entonces, ¿cuántos archivos hay?


Para la serie, The Crown Netflix almacena alrededor de 1200 archivos. La segunda temporada de Stranger Things tiene aún más archivos. Fue filmado en resolución 8K y tiene nueve episodios. Los archivos de origen ocupan muchos terabytes de datos. Se necesitaron 190,000 horas de procesador para codificar solo una temporada. El resultado son 9.570 archivos diferentes de video, audio y texto.

Ahora veamos cómo Netflix reproduce todos estos archivos.

Tres estrategias diferentes para transmitir video


Netflix tiene tres estrategias diferentes para reproducir video en streaming: su propia CDN pequeña, CDN de terceros y Open Connect. Comencemos con la definición de CDN. CDN es una red de distribución de contenido. Para Netflix, el contenido es, por supuesto, los archivos de video que discutimos en la sección anterior. Compartir significa que los archivos se copian desde una ubicación central a través de la red y se almacenan en computadoras distribuidas por todo el mundo. En Netflix, la ubicación central de almacenamiento de archivos es S3.

¿Por qué crear un CDN?


La idea es simple: debe colocar el video lo más cerca posible de los usuarios, distribuyendo computadoras en todo el mundo. Cuando un usuario quiera ver un video, busque la computadora más cercana a él y organice una transmisión desde allí a su dispositivo. Los mayores beneficios de CDN son la velocidad y la fiabilidad.

Imagina que estás viendo un video en Londres y te lo transmiten desde Portland, Oregon. La transmisión de video debe pasar por muchas redes, incluido el cable submarino, por lo que la conexión puede ser lenta y poco confiable. Al acercar el video a las personas que lo miran, puede hacer que la emoción de ver un video sea más rápida y confiable.

Cada ubicación de la computadora que almacena el video se denomina punto de presencia (PoP). Cada PoP es una ubicación física con acceso a internet. Hay servidores, enrutadores y otros equipos de telecomunicaciones. Hablaremos de PoP más tarde.

El primer CDN era demasiado pequeño.


En 2007, cuando Netflix introdujo por primera vez su servicio de transmisión, tenía 36 millones de suscriptores en 50 países, que veían más de mil millones de horas de video cada mes y que recibían varios terabits de datos por segundo. Para respaldar el servicio, Netflix ha creado su propia CDN simple en cinco ubicaciones diferentes en los Estados Unidos. El catálogo de videos de la compañía era lo suficientemente pequeño y todos los archivos estaban almacenados en todos los lugares.

El segundo CDN era demasiado grande.


En 2009, Netflix decidió usar un CDN de terceros. En ese momento, el costo de CDN comenzó a caer. El uso de redes de terceros fue un movimiento inteligente para Netflix. ¿Por qué perder tiempo y esfuerzo construyendo sus redes si puede llegar de inmediato a cualquier lugar del planeta con CDN existentes?

Netflix ha trabajado para proporcionar servicios CDN con compañías como Akamai, Limelight y Level 3. No hay nada de malo en usar CDN de terceros. De hecho, casi todas las empresas hacen esto. Por ejemplo, la NFL utilizó los servicios de Akamai para presentar competiciones de fútbol americano en vivo. Sin crear sus propios CDN, Netflix liberó tiempo para trabajar en otros proyectos prioritarios.

La compañía dedicó mucho tiempo y esfuerzo a desarrollar clientes más inteligentes. Netflix creó algoritmos que se adaptan a las condiciones cambiantes de la red. Incluso en caso de errores, sobrecargas de la red o del servidor, la compañía quiere que los usuarios tengan la mejor imagen posible. Una de las tecnologías desarrolladas por la compañía, cambiar a otra fuente de video, por ejemplo, a otro CDN u otro servidor, para lograr el mejor resultado.

Al mismo tiempo, Netflix dedica un gran esfuerzo a apoyar todos los servicios de AWS que mencionamos anteriormente. Netflix llama a los servicios de AWS un plano de referencia. El plano de control es un término de red para la parte del sistema que controla todo lo demás. En su cuerpo, su cerebro es el plano de control: controla todo lo demás.

Y luego Netflix decidió que podían mejorar el servicio desarrollando su propia CDN.

Open Connect fue perfecto


En 2011, Netflix se dio cuenta de que, en su escala, necesitaban una solución CDN dedicada para maximizar la eficiencia de la red. La distribución de video es una competencia central de la empresa y puede ser una gran ventaja competitiva. Por lo tanto, Netflix comenzó a desarrollar Open Connect, su propio CDN especial. Comenzó en 2012. Open Connect tiene muchas ventajas:

  • Ella no es tan cara. Los CDN de terceros son más caros. Hacerlo usted mismo significa ahorrar mucho dinero.
  • Mejor calidad Netflix razonó que al controlar toda la ruta del video (transcodificación, CDN, clientes, dispositivos) podría proporcionar una excelente calidad de servicio.
  • . . , .

Los CDN de terceros deben ser compatibles con los usuarios que necesitan acceder a cualquier contenido desde cualquier parte del mundo. La tarea de Netflix fue mucho más simple.

Netflix conoce a sus usuarios con seguridad cuando se registran. Ella sabe qué videos transferir. Solo porque solo necesita transferir grandes transmisiones de video, puede tomar muchas medidas para optimizar de manera inteligente las redes que otras CDN no pueden hacer. Netflix también sabe mucho sobre sus clientes. La compañía sabe qué videos les gustan y cuándo les gusta verlos.

Con ese conocimiento, Netflix ha construido un CDN de alta velocidad. Echemos un vistazo más de cerca a cómo funciona Open Connect.

Abrir dispositivos de conexión


¿Recuerdas cómo discutimos que las computadoras CDN se distribuyen por todo el mundo? Netflix ha desarrollado su propio sistema informático de almacenamiento de video. Netflix lo llama dispositivos Open Connect (dispositivos Open Connect, OCA). Así es como se veía una de las primeras instalaciones de OCA:



En la foto, varios OCA a la vez. Los OCA se agrupan en grupos de varios servidores. Cada OCA es un servidor rápido optimizado para la salida de archivos grandes, con muchos discos duros o unidades flash que almacenan video. Así es como se ve uno de los servidores OCA:



Para diferentes propósitos, hay varios tipos diferentes de OCA. Hay grandes OCA capaces de almacenar todo el directorio de videos de la empresa. Hay pequeños OSA que solo pueden almacenar parte del directorio de video. Las OCA pequeñas se rellenan con archivos de video diariamente durante las horas pico durante el almacenamiento en caché proactivo.

En términos de equipamiento, la OSA no tiene nada sobresaliente. Se basan en componentes de PC convencionales, y varios proveedores los ensamblan en varios paquetes. Puedes comprar las mismas computadoras si quieres. Tenga en cuenta que todas las computadoras de Netflix son rojas. La compañía los ordena específicamente para que coincidan con el color del logotipo.

En términos de software, los OSA usan el sistema operativo FreeBSD y nginx como servidor web. Sí, cada OSA es un servidor web. Las transmisiones de video usan nginx. Si estos nombres no le dicen nada, no se desanime, los incluyo solo para completar la imagen.

La cantidad de OSA locales depende de la confiabilidad que Netflix quiere lograr en un lugar en particular, la cantidad de tráfico que atiende y el porcentaje de tráfico que este centro puede enviar como transmisión. Cuando hace clic en "reproducir", ve una transmisión de video proveniente de un OSA específico, como el anterior, ubicado cerca de usted.

Para la mejor experiencia de visualización, a Netflix le gustaría almacenar el video en caché directamente en su hogar. Pero por ahora, esto no es práctico. La siguiente opción más conveniente es colocar un mini-Netflix cerca de su hogar. ¿Cómo se puede hacer esto?

¿Dónde aloja Netflix el OCA?


Netflix distribuye grandes cantidades de video desde miles de servidores ubicados en más de 1000 centros de datos en todo el mundo. Eche un vistazo a este mapa de ubicación del servidor de video:



Otros servicios de video, como YouTube y Amazon, entregan video a través de sus propias redes. Estas compañías literalmente han construido sus propias redes globales para entregar videos a los usuarios. Es muy complicado y costoso. Netflix adopta un enfoque completamente diferente para construir una CDN.

Netflix no funciona en su red, no funciona desde sus propios centros de datos. En cambio, los proveedores de servicios de Internet (ISP) acuerdan hospedar la OCA. Netflix ofrece a los proveedores de forma gratuita integrar sus servidores en su red, además, coloca el OSA cerca de los puntos de intercambio de tráfico (ubicación de intercambio de Internet, IXP).

Esta estrategia le permite a Netflix no construir sus propios centros de datos, pero la compañía obtiene todas las ventajas de estar en ese centro, simplemente pertenece a otra persona. Ingenioso! Dividamos los últimos párrafos en pasos más simples.

Usando ISP para crear un CDN


ISP es su proveedor de servicios de internet. Este es el que le proporciona Internet como servicio. Puede ser Verizon, Comcast, Beeline o uno de los miles de otros. Lo principal es que los ISP se encuentran en todo el mundo y están cerca de los clientes. Al alojar OCA en centros de datos de ISP, Netflix también se distribuye en todo el mundo y cerca de sus clientes.

Usando IXP para crear un CDN


Un punto de intercambio de tráfico es un centro de datos donde ISP y CDN intercambian tráfico entre redes. Es como ir a una fiesta para intercambiar regalos de Navidad con amigos. Compartir es más fácil si todos se han reunido en un solo lugar.

IXP diseminado por todo el mundo:



Así es como se ve el IXP en Londres:



Si se acerca a estos cables de fibra óptica de color amarillo, esto es lo que verá (basado en el punto de intercambio AMS-IX en Amsterdam):



Cada cable conecta una red a otra. Así es como las diferentes redes intercambian tráfico entre sí. IXP es como un intercambio de carreteras, solo con cables:



Para Netflix, esta es otra ventaja. Los IXP se encuentran en todo el mundo. Al colocar el OSA en IXP, la compañía ya no puede tener sus propios centros de datos.

Video en caché proactivo en OSA


Netflix tiene un montón de videos ubicados en S3. Las computadoras de transmisión de video se encuentran en todo el mundo. Solo falta una cosa: ¡el video en sí! Netflix usa un proceso llamado almacenamiento en caché proactivo para copiar eficientemente el video a OCA.



¿Qué es el caché? caché - caché]? Este es un lugar a menudo ubicado en la tierra donde se almacenan secretamente cartuchos secretos, alimentos y tesoros. ¿Sabes cómo las ardillas esconden nueces para el invierno? Cada lugar donde una ardilla escondía una nuez es un escondite. En invierno, cualquier ardilla puede encontrar un alijo de nueces y masticarlas. Los exploradores del Ártico envían pequeños equipos por delante que almacenan alimentos, combustible y otros suministros a lo largo del camino que siguen. Un equipo más grande corriendo detrás se detiene en cada caché y restaura. Tanto las proteínas como los investigadores del Ártico trabajan de manera proactiva; están haciendo algo por adelantado para prepararse para el futuro.

Cada OCA es un caché de video de lo que probablemente quieras ver. Netflix almacena en caché el video, prediciendo lo que quieres ver. En todo el mundo, Netflix sabe con gran certeza que a sus clientes les encanta mirar. ¿Recuerdas que dijimos que Netflix es una empresa basada en datos? Ella usa datos de popularidad para predecir qué videos es probable que sus clientes quieran ver mañana en cualquier lugar. Por lugar aquí se entiende un clúster OSA ubicado en el ISP o IXP. La compañía copia los videos predichos a uno o más OCA en cada uno de los lugares. Esto se llama un diseño preliminar. El video está alojado en la OSA antes de que alguien lo solicite. Como resultado, los clientes reciben un excelente servicio. El video que quieren ver ya está cerca de ellos, en una forma lista para ver.



Netflix funciona con los llamados caché vinculado. Los OCA pequeños son alojados por ISP o IXP. Son demasiado pequeños para caber en todo el catálogo de videos. En otros lugares, hay OSA que tienen casi todo el directorio de videos de Netflix. Y en otro lugar hay lugares donde el OSA en el que contienen todo el catálogo de Netflix. Reciben video de S3.

Todas las noches, el OSA se despierta y sondea el servicio de AWS para saber qué tipo de videos necesita. El servicio le envía una lista de videos que debería tener, basados ​​en predicciones. Cada OCA es responsable de tener todos los videos en esta lista. Si uno de los OCA en un lugar tiene uno de los videos necesarios, entonces el OCA en caché copiará este video de él. De lo contrario, el video se encontrará y se tomará de algún OSA, ubicado no muy lejos.

Como Netflix predice que será popular mañana, siempre hay una desventaja un día antes de que se necesite el video en la OSA. Esto significa que el video se puede copiar en un momento silencioso, fuera de la carga máxima, lo que reduce en gran medida el uso del ancho de banda del ISP.

Open Connect nunca tiene errores de caché. Una falla es cuando se solicita un video específico de la OSA, y él responde que no lo tiene. Las fallas ocurren en otros CDN porque no pueden permitirse copiar todo el contenido en todas partes. Como Netflix conoce todos los videos que deben almacenarse en caché, sabe exactamente dónde y qué videos están en qué momento. Si un OSA pequeño no tiene el video deseado, estará garantizado por uno de los principales OSA.

¿Y por qué Netflix no copia todos sus videos a todos los OCA del mundo? Su directorio de videos es demasiado grande para eso. En 2013, el volumen del catálogo superó los 3 petabytes; lo que él es hoy, no lo sé, solo puedo asumir eso mucho más. Es por eso que la compañía ha desarrollado un método para seleccionar archivos de video que deben almacenarse en cada OSA, utilizando datos que predicen que los suscriptores querrán verlos.

Toma un ejemplo. "House of Cards" es un espectáculo muy popular. ¿A qué OSA se debe copiar? Lo más probable, en todas partes, ya que los suscriptores de todo el mundo quieren verlo. Pero, ¿qué pasa si el video no es tan popular como el House of Cards? Netflix decide en qué lugares se deben almacenar las copias para satisfacer mejor las necesidades de todos los clientes inmediatos.

En un lugar, los videos más populares se copian a muchos OSA. Cuanto más popular sea el video, más servidores almacenarán una copia del mismo. Por qué Si un video muy popular tuviera solo una copia, la transmisión de video a todos los clientes sobrecargaría el servidor.

Un video no se considera preparado para su distribución si se copia a un solo OSA. Netflix quiere poder reproducir el mismo contenido al mismo tiempo en todo el mundo. Solo cuando hay una cantidad suficiente de OSA con una cantidad suficiente de copias del video para proporcionar la calidad adecuada, el video se considera preparado para su visualización.

Por ejemplo, la segunda temporada del show de Daredevil en 2016 fue la primera vez que Netflix lanzó todos los episodios de la serie en todos los dispositivos en todos los países al mismo tiempo.

Colocación de OSA: ¿por qué los proveedores necesitan esto?


¿Por qué los proveedores aceptan hospedar clústeres de OSA? A primera vista, esto es demasiado generoso, pero será interesante para usted descubrir que el beneficio personal está realmente involucrado aquí. Para entender esto, necesitamos hablar sobre cómo funcionan las redes. En este libro, discutimos que el acceso a los servicios en la nube es a través de Internet. En el caso de Netflix, esto no es así: al ver videos a través de la aplicación Netflix, se comunica con AWS a través de Internet. [no está muy claro qué diferencia tenía en mente el autor // aprox. perev.]

Internet es la interconexión de redes. Tiene un proveedor que brinda acceso a Internet. Recibo mi servicio de internet de Comcast. Esto significa que mi casa está conectada a la red Comcast a través de fibra óptica. La red de Comcast les pertenece: esto no es Internet, Internet es otra cosa.

Supongamos que quiero hacer una búsqueda en Google y escribo una solicitud en el navegador y presiono Enter. Mi solicitud primero pasa por la red de Comcast. Google no se encuentra en la red de Comcast. En algún momento, mi solicitud debe ir a la red de Google. Para esto, está Internet. Internet conecta la red de Comcast a la red de Google. Existen protocolos de enrutamiento que funcionan a la manera de un controlador de tráfico en la calle y tráfico directo de red. Cuando mi solicitud se envía a Internet, se encuentra fuera de la red de Comcast y fuera de la red de Google. Se encuentra en la columna vertebral de Internet . Internet está conectado desde muchas redes privadas que deciden interactuar entre sí. IXP es una de las formas en que las redes se comunican entre sí.

En los Estados Unidos hay un mapa de redes de fibra distantes:



Netflix hizo lo siguiente con su Open Connect: alojó clústeres OSA dentro de las redes ISP. Esto significa que si veo un video de Netflix, estoy hablando con un OSA ubicado en la red de Comcast. Todo mi tráfico de video va en su red y no se conecta.

La clave para escalar la entrega de video es estar lo más cerca posible del usuario. Cuando hace esto, no está utilizando redes troncales de Internet. Las solicitudes se satisfacen en la parte local de la red. ¿Por qué es eso bueno? Recuerde, dijimos que Netflix ya consume más del 37% del tráfico de Internet en los EE. UU. Si el ISP no cooperara con la compañía, usaría aún más Internet. Internet no pudo manejar todo el tráfico. Los proveedores tendrían que agregar más capacidad, lo cual es muy costoso.

Ahora, casi el 100% del contenido de Netflix se transmite dentro de las redes de proveedores. Esto reduce el costo del mantenimiento de la red, ya que no obstruye Internet. Al mismo tiempo, los suscriptores de Netflix reciben videos de alta calidad y el rendimiento de la red mejora para todos. Todos ganan.

Open Connect confiable y resistente


Ya hemos discutido cómo Netflix aumenta la confiabilidad del sistema al trabajar en tres regiones de AWS. La arquitectura Open Connect logra los mismos objetivos. Esto puede no ser obvio, pero los OCA son independientes entre sí. Los OCA funcionan como archipiélagos de entrega de video autónomos. Los suscriptores que reciben video de un OSA no sufren fallas de otro OSA.

¿Qué sucede cuando falla el OSA? El programa cliente que está utilizando cambia instantáneamente a otro OSA y reanuda la visualización. ¿Qué sucede si demasiadas personas usan OCA en un solo lugar? El programa cliente encuentra un OSA menos cargado. ¿Qué sucede si la red utilizada para transmitir video está sobrecargada? Lo mismo: el programa encuentra otro OSA en la red que funciona mejor. Open Connect es un sistema muy confiable y tolerante a fallas.

Netflix controla al cliente


Netflix maneja inteligentemente las fallas porque controla al cliente en todos los dispositivos. La propia empresa desarrolla aplicaciones para Android e iOS, por lo que podemos esperar que las controle. Pero incluso en plataformas como Smart TV, donde Netflix no creó clientes, todavía lo controla porque controla el paquete de desarrollo de aplicaciones (SDK).

Los SDK son un conjunto de programas de desarrollo que le permiten crear aplicaciones. Cada aplicación de Netflix realiza solicitudes de AWS y reproduce videos usando el SDK. Al controlar el SDK, Netflix puede adaptarse constantemente y en tiempo real a redes lentas, OSA fallidos y otros posibles problemas.

Y finalmente: esto es lo que sucede cuando haces clic en "reproducir"

Recorrimos un largo camino hacia esto, y aprendimos mucho. Esto es lo que sabemos en este momento:

  • Netflix se puede dividir en tres partes: backend, cliente y CDN.
  • AWS gestiona todas las solicitudes de los clientes.
  • Todos los videos se transfieren desde el dispositivo Open Connect (OCA) más cercano al CDN.
  • Netflix funciona con tres regiones de AWS y generalmente puede hacer frente a fallas en cualquier región para que nadie se dé cuenta.
  • El nuevo contenido se convierte en la compañía en muchos formatos diferentes, para que pueda elegir la opción más adecuada en función del tipo de dispositivo, la calidad de la red, la ubicación geográfica y la tasa de suscriptores.
  • Todos los días, en Open Connect, la compañía distribuye videos en todo el mundo sin predecir lo que los suscriptores querrán ver en diferentes partes del mundo.

Aquí está la imagen que Netflix describe usando el proceso de reproducción:



Terminemos:

  • Selecciona un video para mirar usando un cliente que se ejecuta en algún dispositivo. El cliente envía una solicitud de reproducción, indicando qué video necesita, al servicio Playback Apps de AWS.
  • No hemos discutido esto antes, pero la mayoría de lo que sucede cuando hace clic en "reproducir" está relacionado con la licencia. No todas las partes del mundo tienen una licencia para ver cada video. Netflix debe determinar si tiene una licencia para ver un video específico. No discutiremos este tema aburrido, pero tenga en cuenta que esto sucede todo el tiempo. Una de las razones por las que Netflix comenzó a crear su propio contenido fue un intento de evitar problemas de licencia [y todavía hay situaciones absurdas en las que la compañía no puede mostrar la serie de producción de Netflix porque le vendió los derechos a un proveedor de contenido local, sin mencionar todos los territorios prohibidos para el trabajo de empresas estadounidenses // aprox. transl.]. Netflix quiere lanzar programas para todas las personas en todo el mundo al mismo tiempo. Crear su propio contenido es la forma más fácil de evitar problemas de licencia.
  • Dada toda la información relevante, el servicio Playback Apps devuelve la URL a varios, hasta diez, servidores OSA. Estas son las mismas URL que puede ver en su navegador. Netflix utiliza su dirección IP e información de su proveedor para determinar qué clústeres de OSA son los mejores para usted.
  • El cliente analiza la situación y selecciona el OCA. Comprueba la calidad de la conexión con cada uno de ellos. Se conectará al OSA más rápido y confiable. El cliente realiza constantemente estas comprobaciones durante la reproducción de video.
  • El cliente está tratando de elegir la mejor manera de recibir contenido del OSA.
  • El cliente se conecta al OSA y comienza a emitir la transmisión de video en su dispositivo.
  • Al mirar un video, ¿ha notado que la calidad de la imagen está cambiando? A veces habrá píxeles, y después de un tiempo la imagen vuelve a ser de alta calidad. Esto se debe a que el cliente se adapta a la calidad de la red. Si la calidad disminuye, el cliente en consecuencia reduce la calidad del video. Si la calidad cae demasiado, el cliente cambiará a otro OSA.

Esto es lo que sucede cuando haces clic en "reproducir" en Netflix. ¿Quién hubiera pensado que algo tan simple, como mirar un video, podría ser tan complicado?

Source: https://habr.com/ru/post/es409583/


All Articles