Está en la página 1de 39

Cómo funciona el streaming de

videos de Netflix
Ejemplo de una red distribuida
Datos de Netflix
• Netflix acumula 209 millones de clientes,
de los cuales más de 74 millones
corresponden a Norteamérica.
• Netflix está disponible en más de 200 países.
• Netflix obtiene casi 3.000 millones de dólares en beneficios por trimestre.
• Netflix añade más de 5 millones de nuevos suscriptores por trimestre.
• Netflix reproduce más de mil millones de horas de vídeo cada semana. A modo de
comparación, YouTube transmite mil millones de horas de vídeo todos los días,
mientras que Facebook transmite 110 millones de horas de vídeo a diario.
• Netflix reprodujo 250 millones de horas de vídeo en un solo día en 2017.
• Netflix representa más del 37% del pico de tráfico de Internet en los Estados Unidos.
https://www.businessinsider.es/10-datos-curiosos-netflix-
• Netflix planea gastar 7.000quizas-aun-no-conoces-901231
millones de dólares en nuevo contenido en 2018.
Algo de historia de Nexflix
• Fue un negocio mediante una tienda online donde el cliente tenía que
pagar una tarifa plana al mes y podía quedarse con la copia de la película
el tiempo que quisiera pero para ver otra película debía retornar, en un
sobre prepagado, la copia que ya tenía (Bloomberg, 2015).

A principios de 2000 los ingresos de Netflix eran de 5 millones de


dólares mientras que los de Blockbuster, la empresa líder en el sector
de alquiler de películas en tiendas físicas, eran de 4.500 millones de
dólares. (Bloomberg, 2015).
Algo de historia de Nexflix
• Fue un negocio mediante una tienda online
donde el cliente tenía que pagar una tarifa plana al mes y podía quedarse con
la copia de la película el tiempo que quisiera pero para ver otra película debía
retornar, en un sobre prepagado, la copia que ya tenía (Bloomberg, 2015).

A principios de 2000 los ingresos de Netflix eran de 5 millones de


dólares mientras que los de Blockbuster, la empresa líder en el sector
de alquiler de películas en tiendas físicas, eran de 4.500 millones de
dólares. (Bloomberg, 2015).

ANÁLISIS DEL USO DE ESTRATEGIAS DE CRECIMIENTO EN


NETFLIX. TRABAJO FIN DE GRADO. CURSO ACADÉMICO
2015/2016 Alumna: Emma Leticia Rufete Vicente.
En 2008, Netflix empezó a trasladarse a AWS

• En 2007 Netflix presentó su servicio de reproducción de vídeos a la


carta que permitía a los suscriptores ver series de televisión y
películas a través del sitio web de Netflix en sus ordenadores o
mediante el software de Netflix en varias plataformas compatibles,
incluyendo smartphones y tabletas, reproductores de contenidos
digitales, videoconsolas y smarts TVs.
Las tres partes de Netflix:
• Netflix está dividido en tres partes:
el cliente,
el servidor backend
y la red de distribución de contenidos (CDN "content delivery network"
en inglés).
• El cliente es la interfaz de usuario en cualquier dispositivo utilizado
para navegar y reproducir vídeos de Netflix: puede ser una aplicación
para iPhone, una página web desde el ordenador de escritorio o
incluso una aplicación en una Smart TV.
Sistemas distribuidos
• Definiciones
• «Un Sistema distribuido es una colección de computadoras
independientes que aparecen ante los usuarios del Sistema como una
única computadora» Tanenbaum.
• «Sistemas cuyos componentes hardware y software, que están en
computadoras conectadas en red, se comunican y coordinan sus
acciones mediante el paso de mensajes, para el logro de un objetivo.
Se establece la comunicación mediante un protocolo preestablecido»
Coulouris.
EVOLUCIÓN
•.

•Procesamiento central (Host).- Refiere a uno de los primeros modelos de


computadoras interconectadas, llamados centralizados, donde todo el
procesamiento de la organización se llevaba a cabo en una sola computadora,
normalmente un Mainframe, y los usuarios empleaban sencillas computadoras
personales.
Algunos problemas de este modelo son:
• Cuando la carga de procesamiento aumentaba se tenía que cambiar el hardware
del Mainframe, lo cual es más costoso que añadir más computadores personales
clientes o servidores que aumenten las capacidades.
• El otro problema que surgió son las modernas interfases gráficas de usuario, las
cuales podían conllevar a un gran aumento de tráfico en los medios de
comunicación y por consiguiente podían colapsar a los sistemas.
EVOLUCIÓN
•.

•Grupo de Servidores.- Otro modelo que entró a competir con el


anterior, también un tanto centralizado, son un grupo de
computadoras actuando como servidores, normalmente de archivos o
de impresión, poco inteligentes para un número de minicomputadores
que hacen el procesamiento conectados a una red de área local.
Algunos problemas de este modelo son:
Podría generarse una saturación de los medios de comunicación entre
los servidores poco inteligentes y los minicomputadores, por ejemplo
cuando se solicitan archivos grandes por varios clientes a la vez, podían
disminuir en gran medida la velocidad de transmisión de información.
• La Computación Cliente Servidor.- Este modelo, que predomina en la actualidad, permite
descentralizar el procesamiento y recursos, sobre todo, de cada uno de los servicios y de
la visualización de la Interfaz Gráfica de Usuario. Esto hace que ciertos servidores estén
dedicadossólo a una aplicación determinada y por lo tanto ejecutarla en forma eficiente.

Definición:
Sistema en donde el cliente es una máquina que solicita un determinado servicio y se
denomina
servidor a la máquina que lo proporciona. Los servicios pueden ser:
• Ejecución de un determinado programa.
• Acceso a un determinado banco de información.
• Acceso a un dispositivo de hardware.
La presencia de un medio físico de comunicación entre las máquinas, es un elemento
primordial, y
dependerá de la naturaleza de este medio la viabilidad del sistema.
• Servidores de archivos.- Proporciona archivos para clientes. Si los archivos no fueran tan grandes y
los usuarios que comparten esos archivos no fueran muchos, esto sería una gran opción de
almacenamiento y procesamiento de archivos. El cliente solicita los archivos y el servidor los ubica y se
los envía.
• Servidores de Base de Datos.- Son los que almacenan gran cantidad de datos estructurados, se
diferencian de los de archivos pues la información que se envía está ya resumida en la base de
datos. Ejemplo: El Cliente hace una consulta, el servidor recibe esa consulta (SQL) y extrae sólo la
información pertinente y envía esa respuesta al cliente.
• Servidores de Software de Grupo.- El software de grupo es aquel, que permite organizar el trabajo de
un grupo. El servidor gestiona los datos que dan soporte a estas tareas. Por ejemplo: almacenar las
listas de correo electrónico. El Cliente puede indicarle, que se ha terminado una tarea y el servidor se lo
envía al resto del grupo.
• Servidores WEB.
• Servidores de correo.-
• Servidor de objetos.- Permite almacenar objetos que pueden ser activados de manera remota. Los
clientes pueden ser capaces de activar los objetos que se encuentren en el servidor.
• Servidores de impresión.-
• Servidores de aplicación.- En el pasado refería a un servidor que se dedicaba a una única
aplicación. Era básicamente una aplicación a la que podían acceder los clientes. En la actualidad
refiere más a un servidor Web con capacidad de procesamiento, por lo que suele ser a la vez
servidor Web con algunas funciones de lógica de negocio.
PROTOCOLO

Definición:
• Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre
procesos que realizan una determinada tarea. Se requieren dos partes:
• Especificación de la secuencia de mensajes que se han de intercambiar.
• • Especificación del formato de los datos en los mensajes.

Un protocolo permite que componentes heterogéneos de sistemas distribuidos puedan desarrollarse


independientemente, y por medio de módulos de software que componen el protocolo, haya una
comunicación transparente entre ambos componentes. Es conveniente mencionar que estos
componentes del protocolo deben estar tanto en el receptor como en el emisor
MIDDLEWARE

Definición:
Es un término que abarca a todo el software necesario para el soporte de
interacciones entre Clientes y Servidores principalmente en aplicaciones
distribuidas. Se puede considerar como el enlace que permite que un
cliente obtenga un servicio de un servidor. Normalmente se define como
una capa de software cuyo propósito es ocultar la heterogeneidad y
proveer de un modelo de programación conveniente para los
desarrolladores de aplicaciones. Se encuentra representado por procesos
u objetos que actúan en un conjunto de computadoras y que se
comunican con el fin de proporcionar soporte para compartición de
recursos en un sistema distribuido
OPERACIÓN Y CARACTERÍSTICAS DE LOS SISTEMAS DISTRIBUIDOS.

:Heterogeneidad: Se refiere a que se usan diferentes marcas de tecnologías en equipos de comunicaciones de redes de
datos, equipos de cómputo y aplicaciones de software para prestar las mismas funcionalidades y exista intercomunicación
entre estos al realizar un sistema distribuido. Internet es un ejemplo de la gran variedad de hardware y software que se usa
para la red de comunicación y para la implementación de servicios.

- Escalabilidad: Indica la posibilidad de añadir nuevos servicios y ponerlos a disposición de los usuarios para su uso. También
pueden ser escalables a nivel hardware por la inserción de más computadoras o equipo de comunicaciones a la red. Un
sistema que pueden crecer, en el sentido de estar distribuido en diferentes ubicaciones también se dicen que es escalable
incluso es parte de la escalabilidad que este sistema sea administrado de manera ordenada desde varias ubicaciones.
- Seguridad: Entre los recursos de información que se ofrecen y se mantienen en los sistemas distribuidos, muchos tienen un
alto valor intrínseco para su propietario o sus usuarios. Por esto su seguridad es de considerable importancia. La seguridad
de los recursos de información tiene tres componentes: confidencialidad (protección contra el descubrimiento por
individuos no autorizados), integridad (protección contra la alteración o corrupción) y disponibilidad (protección contra la
interferencia de uso de los servicios o recursos). Ponemos dos ejemplos donde se puede apreciar la delicadeza de datos
que circulan por la red de un sistema distribuido por lo que es importante considerar mecanismos de seguridad en sus tres
componentes: a) Un médico puede solicitar acceso a los datos hospitalarios de un paciente o enviar modificaciones sobre
de estos; b) en comercio electrónico y banca, los usuarios envían su número de tarjeta de crédito a través de Internet.
- Extensible: Se refiere más al crecimiento de las capacidades del software, por ejemplo una aplicación que se le puede
insertar más funcionalidades o puede incorporar plug-in para ofrecer otras funcionalidades, se dice que es extensible.
• Tratamiento de Fallos: Los sistemas distribuidos a veces fallan. Cuando aparecen fallos de
hardware o software, los programas pueden producir resultados incorrectos o pudieran
parar antes de haber completado su función, transacción, cálculo, etc. Como característica,
los fallos en los sistemas distribuidos son parciales, es decir, algunos componentes fallan
mientras otros siguen trabajando, para lograr esto, es necesario tener en cuenta que
siempre se debe contar con técnicas para tratar fallos como son:
• Detección de Fallos: Por ejemplo se pueden usar sumas de comprobación (checksum) para
detectar datos corruptos en un mensaje o un archivo. Es difícil detectar algunos otros fallos
como la caída de un servidor remoto en Internet, es más fácil detectarlos de manera local
pero lo importante es entender que si se monitorea un servicio es porque a partir de los
resultados del monitoreo se deben toman acciones.
• Enmascaramiento de fallos: Algunos fallos que han sido detectados se pueden ocultar o
atenuar, por ejemplo, los mensajes se pueden retransmitir cuando falla la recepción; otro
ejemplo, los archivos con datos, pueden escribirse en una pareja de discos de forma que si
uno se llega a dañar se tiene el otro.
• Tolerancia a fallos: la mayoría de los servicios de Internet tienen fallos y muchos veces es
mejor diseñar al cliente de tal forma que los tolere, por ejemplo, si un cliente Web no
puede conectarse con el servidor, no se bloqueara indefinidamente, más bien dará aviso al
usuario para que lo intente posteriormente o que un correo electrónico que no sale del
cliente de correo, el mismo cliente lo encole y lo trate de reenviar posteriormente.
• Recuperación frente a fallos: Se refiere a que ante la presencia de un fallo podamos
recuperarnos posterior al fallo, por ejemplo si hay corrupción en la información o deterioro
en los sistemas de almacenamiento estos se puedan recuperar.
• Redundancia: Esto implica que los sistemas tengan componentes redundantes para que en
caso de un fallo de uno de estos, el otro componente siga ofreciendo el servicio. Por ejemplo,
que existan dos rutas para alcanzar un servidor en Internet; otro ejemplo, el Sistema de
Nombres de Dominio, DNS, tiene sus tablas en dos servidores.
• Transparencia: Es ocultarle al usuario y al programador de aplicaciones, los componentes que
tiene un sistema distribuido de tal forma que vea al sistema como una sola entidad y su
acceso a ella sea lo más homogéneo posible. Por ejemplo el usuario trata los sistemas de
almacenamiento remoto y local de igual forma, imprime de forma local o remota de la misma
forma, para referirse a una cuenta de correo o a una computadora es de la misma forma.
• Concurrencia: Es poder compartir simultáneamente un recurso y/o funcionalidad del sistema
distribuido entre varios usuarios sin que el sistema se colapse o que el recurso al que acceden
los usuarios se corrompa. Por ejemplo, en una subasta por internet, en el momento de cierre
de esta, varios usuarios mandaran sus ofertas, estas se procesaran, se almacenaran en disco y
cuando se consulten deben mostrar veracidad. Hay técnicas que permiten el poder compartir
un recurso como es la técnica de los semáforos.
Un corte en el servicio hizo que Netflix se pasara a AWS

• Netflix se pasó a AWS porque quería una infraestructura más fiable y


eliminar cualquier tipo de fallo que pudiera ocurrir en su sistema.
AWS ofrece bases de datos, almacenamiento y centros de datos de
mucha confianza.
• Netflix quería tener computación en la nube para poder prescindir de
la creación de programas monolitos poco fiables, así como convertirse
en un servicio global sin tener que construir sus propios centros de
datos.
Localizaciones de Nexflix en el mundo
Tolerancia a fallas de Nexflix
• Pongamos un ejemplo: digamos que estás viendo un nuevo episodio
de House of Cards en Londres, Inglaterra. Debido a que está más
cerca de Londres, es probable que el dispositivo desde el que estás
viendo Netflix esté conectado a la región de Irlanda.
• ¿Qué sucede si se cae toda la región de Irlanda? ¿Significa que
Netflix no te va a funcionar? ¡Por supuesto no! Tras detectar el error,
Netflix te redirige a una de las regiones de Estados Unidos y tu
dispositivo pasará a transmitir información a esa región en vez de la de
Irlanda.
¿Qué ocurre en el sistema distribuido de Neflix antes de que le des
play?

• Todo lo que no tenga que ver con la transmisión de vídeo se lleva a


cabo en AWS, esto incluye computación escalable, almacenamiento
escalable, lógica empresarial, bases de datos descentralizadas
escalables, procesamiento y análisis de big data, recomendaciones,
transcodificación y cientos de otras funciones.
Computación escalable y almacenamiento escalable

• La computación escalable es EC2 y el almacenamiento escalable es S3.


El dispositivo desde el que te conectas a Netflix (iPhone, TV, Xbox,
teléfono Android, tableta, etc.) se comunica con un servicio de Netflix
que se ejecuta en EC2.
Base de datos descentralizadas escalables

• Netflix usa DynamoDB y Cassandra para sus bases de datos


descentralizadas. Una base de datos almacena datos: tu información de
perfil, información de facturación, todas las películas que has visto.

• Descentralizada. Descentralizada significa que la base de datos no se


ejecuta en una gran computadora, sino que utiliza muchas. Hay copias de
tus datos en varios ordenadores, de modo que si uno o incluso dos
equipos que contienen tus datos fallan, tus datos estarán seguros. De
hecho, hay copias de tus datos en las tres regiones por lo que si una
región falla, tus datos estarán allí cuando la nueva región esté lista para
comenzar a usarlos.
Codificacion de videos de Nexflix
• En total, Netflix admite 2200 dispositivos diferentes. Cada dispositivo
tiene un formato de vídeo idóneo para ese dispositivo en particular: si
estás viendo Netflix en un iPhone, se utilizara un archivo de vídeo que
te aporte la mejor experiencia de visualización para el iPhone. Netflix
llama a todos los diferentes formatos para un vídeo su perfil de
codificación.
¿De cuántos archivos codificados estamos hablando?

• ¡Para 'The Crown' Netflix tiene cerca de 1.200 archivos!


• La segunda temporada de 'Stranger Things’ se grabó en 8K y cuenta
con nueve episodios. Los archivos de vídeo originales eran de varios
terabytes y fueron necesarias 190.000 horas de CPU (21 años) para
codificar una sola temporada. ¿El resultado? ¡9.570 archivos
diferentes de vídeo, audio y texto!
Open Connect Appliances
• Netflix desarrolló su propio sistema de
ordenadores para el almacenamiento
de vídeo al que llama Open Connect
Appliances o OCAs.
Dónde sitúa Netflix sus servidores (OCAs)?
• ¿Netflix distribuye grandes cantidades de tráfico de vídeo desde miles
de servidores en más de 1.000 localizaciones por todo el mundo. En el
siguiente mapa se muestran dichas localizaciones:
Usar ISPs para crear una red de distribución

• Un ISP es tu proveedor de Internet: la empresa que te vende la


conexión Internet, ya sea total play, Telmex o cualquier otro de los
miles de servicios.

• los ISPs están localizados por todo el mundo y están cerca de los
consumidores. Poniendo los OCAs en los centros de datos de los ISPs
Netflix está por todo el mundo y cerca de sus clientes.
Usar IXPs para crear una red de distribución

• Un punto de
intercambio de
Internet es un centro
de datos donde los
ISPs y las redes de
distribución de
contenidos
intercambian tráfico
de Internet entre sus
redes.
Los vídeos se almacenan en la caché de los OCAs a diario

• Netflix tiene todo este


contenido de vídeo en S3 y
cuentan con todos estos
servidores de vídeo por todo
el mundo.

• Netflix utiliza un proceso al


que llama caché proactiva
para copiar de forma eficaz el
vídeo a los OCAs.
https://docs.aws.amazon.com/es_es/AmazonS3/latest/
userguide/tutorial-s3-cloudfront-route53-video-streaming.html
Netflix almacena sus vídeos en cachés según sus predicciones de lo
que vas a ver

• Netflix conoce en cada sitio del mundo con un alto nivel de precisión
lo que van a ver sus suscriptores y cuándo lo van a ver. ¿Recuerdas
que habíamos dicho que Netflix era una compañía basada en datos?

• Netflix utiliza los datos de popularidad para predecir qué vídeos van a
ser probablemente vistos mañana en cada localización. En este caso,
localización significa un conglomerado de OCAs situados dentro de un
ISP o de un IXP. Netflix copia los vídeos pronosticados a uno o más
OCAs en cada localización, algo que se conoce como
preposicionamiento.
SERVIDORES CACHE

• Una cache es un almacén de objetos de datos utilizados recientemente.


Los datos son almacenados en un medio que responde más
rápidamente por lo que se recuperan más rápido que si se obtuvieran
de la fuente original. Cuando se recibe un objeto nuevo en la
computadora, se almacena en la cache reemplazando, si es necesario el
objeto existente. Si un servicio cliente necesita un objeto, el servidor
cache lo buscará primero en su repositorio, si lo tiene lo proporcionara
al cliente.
• Los navegadores Web (Internet Explorer, Firefox, Google Chrome, etc.)
mantienen en disco duro un repositorio de páginas Web recientemente
visitadas.

Tomado de los apuntes del profesor Fernando Noya


Netflix explota un sistema de caché escalonada.
• Los OCAs más pequeños de los que hablábamos
antes están en los ISPs y IXPs. Sin embargo, hay
otras localizaciones que sí que tienen grandes
OCAs con todo el catálogo y obtienen sus
vídeos desde S3.

• Cada noche, cada servidor OCA se activa y le


pregunta a un servicio en AWS cuáles son los
vídeos que debería tener almacenados. El
servicio en AWS le manda al OCA una lista de
vídeos que debería tener según las predicciones

• Cada OCA es responsable de asegurarse de que


tiene todos los vídeos de su lista. Si un OCA en
la misma localización tiene uno de los vídeos
que debería tener, entonces lo copia desde el
OCA local. De lo contrario, buscará el vídeo y lo
copiará desde un OCA cercano.
Alojamiento de OCAs: ¿Qué ganan las ISPs?

• ¿Por qué le viene bien a un ISP poner un servidor OCA dentro de su red?
A primeras parece algo demasiado generoso, pero es algo que hacen
por su propio interés.
• Si tu ISP es Total play, entonces es posible que te conectas a la red de
Total play utilizando un cable de fibra óptica. La red de Total play es su
propia red; pero esa red no es Internet.
• Por ejemplo, supongamos que quiero hacer una búsqueda en Google y
tecleo la pregunta en mi navegador y le doy a enter. Mi solicitud a
Google primero pasa por la red de Total play despues mi solicitud tiene
que pasar por la red de Google y ahí es donde interviene Internet.
Alojamiento de OCAs: ¿Qué ganan las ISPs?

• ¿Por ejemplo, supongamos que quiero hacer una búsqueda en Google


y tecleo la pregunta en mi navegador y le doy a enter. Mi solicitud a
Google primero pasa por la red de Total play despues mi solicitud tiene
que pasar por la red de Google y ahí es donde interviene Internet.
• Cuando mi solicitud a Google ha seguido la ruta a través de Internet ya
no se encuentra en la red de Total play ni en la de Google, sino que está
en lo que se conoce como la infraestructura básica de Internet o
backbone, Internet está entrelazado a base de muchas redes privadas
que eligen interactuar entre sí. Los IXPs de los que hablábamos antes
son una de las muchas redes que conectan entre sí.
• Lo que Netflix ha hecho con Open Connect es situar los servidores de OCAs dentro de las
redes de ISPs. Esto significa que si veo un vídeo de Netflix estaré comunicándome con un
servidor OCA de la red de Totalplay. Todo mi tráfico de vídeo está en la red de Total play y
nunca llega a pasar por Internet.

• La clave de la transmisión de vídeo es estar tan cerca del usuario como sea posible y en este
caso no utilizar la infraestructura básica de Internet. Las solicitudes se cumplen con una
parte local de la red.

• ¿Por qué es algo bueno? Recuerda que dijimos que Netflix ya consume más del 37% del
tráfico de Internet de los Estados Unidos. Si los ISPs no cooperaran, Netflix usaría aún más
ancho de banda e Internet no podría soportar tanto tráfico de vídeo. Los ISPs tendrían que
añadir mucha más capacidad de red.

También podría gustarte