Вы находитесь на странице: 1из 4

Netflix se muda a la nube

by Yury Izrailevsky
El viaje de Netflix a la nube comenzó en agosto de 2008, cuando tuvimos un problema
muy grave con la base de datos y estuvimos tres días sin poder enviar DVD a nuestros
miembros. Ahí nos dimos cuenta de que teníamos que cambiar de los puntos de error
únicos de escala vertical (las bases de datos relacionales de nuestro centro de datos,
por ejemplo) a otros sistemas en la nube distribuidos, altamente fiables y escalables
horizontalmente. Elegimos Amazon Web Services (AWS) como nuestro proveedor de
la nube porque nos ofrecían la escala más alta y la gama más amplia de servicios y
funciones. Antes de 2015 ya habíamos migrado a la nube la mayoría de nuestros
sistemas, incluidos todos los servicios de cara al cliente. Sin embargo, queríamos
tomarnos el tiempo necesario para determinar una ruta a la nube segura y duradera
para nuestra infraestructura de facturación, así como para todos los aspectos de
nuestra administración de datos de clientes y de empleados. Nos complace anunciar
que, a principios de enero de 2016, tras siete años de esfuerzo, terminamos la
migración a la nube. Y ya apagamos los últimos bits del único centro de datos que
seguía usando nuestro servicio de transmisión.

La mudanza a la nube ha aportado muchas ventajas para Netflix. El número de


usuarios que teníamos en 2008 se ha multiplicado por ocho. Además, son mucho más
activos, como demuestra el número total de visualizaciones, que se triplicó en los
últimos ocho años:
El propio producto de Netflix ha seguido evolucionando con rapidez, al incorporar
muchas funciones nuevas sedientas de recursos, y al depender de volúmenes de datos
cada vez mayores. Nos habría sido dificilísimo sostener un crecimiento tan vertiginoso
de nuestros centros de datos; no habríamos tenido tiempo ni de montar los servidores
en las estanterías. La elasticidad de la nube nos permite agregar miles de servidores
virtuales y petabytes (millones de gigabytes) de espacio de almacenamiento en unos
minutos, y por eso ha sido posible esta expansión. El 6 de enero de 2016, Netflix
amplió su servicio a más de 130 países nuevos, convirtiéndose en una red de televisión
por Internet verdaderamente global. El poder utilizar varias regiones en la nube de
AWS, repartidas por todo el mundo, nos permite cambiar de sitio dinámicamente y
ampliar la capacidad de nuestra infraestructura global. Así podemos crear una mejor
experiencia de transmisión para los miembros de Netflix, independientemente de
dónde se encuentren.

Dependemos de la nube para todo lo que necesitamos en cuanto a informática


escalable y espacio de almacenamiento: nuestra lógica empresarial, las bases de datos
distribuidas y el procesamiento y análisis de grandes datos, las recomendaciones, la
transcodificación y otros centenares de funciones que conforman la aplicación de
Netflix. El video se transmite a través de Netflix Open Connect, nuestra red de
entrega de contenidos que se distribuyen globalmente para enviar de manera eficaz
nuestros bits a los dispositivos de los miembros.

La nube también nos ha permitido aumentar de manera significativa la disponibilidad


de nuestro servicio. En nuestros centros de datos a veces sufríamos apagones y,
aunque pasamos algunos momentos difíciles inevitables en la nube, sobre todo los
primeros tiempos de la migración, hemos apreciado un aumento constante en nuestra
disponibilidad total, cada vez más cerca de nuestra meta de cuatro nueves (99,99 %)
de tiempo de actividad del servicio. Es imposible evitar los fallos en los sistemas
distribuidos a gran escala, ni siquiera si están basados en la nube. Sin embargo, la
nube permite generar servicios de alta fiabilidad a partir de componentes
fundamentalmente no fiables pero redundantes. Al incorporar los principios de la
redundancia y degradación correcta a nuestra arquitectura, y al mantener la
disciplina de simulacros de producción regulares con Simian Army, podemos
sobrevivir a los fallos en la infraestructura de la nube y dentro de nuestros propios
sistemas sin afectar la experiencia de los miembros.
La reducción de costos no fue el motivo principal de nuestra decisión de mudarnos a
la nube. Pero es innegable que nuestros costos en la nube por inicio de transmisión
son mucho menores que los del centro de datos, un efecto colateral más que
bienvenido. Esto es posible gracias a la elasticidad de la nube, que nos permite
optimizar constantemente la mezcla de tipos de instancias, y crecer y disminuir el
espacio que ocupamos casi al instante sin tener que mantener búferes de gran
capacidad. También podemos aprovechar la economía de escala que solo pueden
existir en el gran ecosistema de la nube.

Teniendo en cuenta las ventajas evidentes de la nube, ¿por qué hemos tardado siete
años enteros en terminar la migración? La verdad es que la mudanza a la nube supuso
muchísimo trabajo, y tuvimos que tomar decisiones muy difíciles a lo largo del
camino. Seguramente la manera más sencilla de mudarse a la nube habría sido sacar
todos los sistemas, sin cambiarlos, del centro de datos y soltarlos en AWS. Pero si
hubiéramos hecho eso, nos habríamos llevado con nosotros todos los problemas y las
limitaciones del centro de datos. En cambio, optamos por el enfoque "nativo de la
nube": reconstruimos de manera virtual toda nuestra tecnología y cambiamos
radicalmente nuestra forma de llevar la empresa. Desde el punto de vista de la
arquitectura, migramos de una aplicación monolítica a cientos de microservicios, y
desnormalizamos nuestro modelo de datos usando bases de datos NoSQL. La
aprobación de presupuestos, la coordinación centralizada de versiones y los ciclos de
aprovisionamiento de hardware de varias semanas dieron paso a una entrega continua
y a equipos de ingenieros que toman decisiones independientes con herramientas de
autoservicio en un entorno DevOps de conexión directa, lo que ayuda a acelerar la
innovación. Tuvimos que establecer muchos sistemas nuevos, así como aprender
nuevas habilidades. Transformar a Netflix en una empresa nativa de la nube requirió
mucho tiempo y esfuerzo, pero nos colocó en una posición mucho mejor para seguir
creciendo y convertirnos en una red de televisión global.

La tecnología de transmisión de Netflix ha avanzado muchísimo en los últimos años


y da gusto no sentir las limitaciones que teníamos antes. Dado que la nube es algo
bastante nuevo para muchos en nuestra industria, todavía quedan muchas
inquietudes por contestar y muchos problemas que resolver. A través de iniciativas
tales como Netflix Open Source, esperamos seguir colaborando con mentes
tecnológicas muy brillantes y enfrentar juntos todos estos desafíos.
Entrega de contenido

La nube es solo una parte de la experiencia de usuario de Netflix. Todo lo que ocurre
antes de que accedan tiene lugar en AWS, pero el contenido de video que sigue
proviene de un sistema separado: Netflix OpenConnect, la red de entrega de
contenido (CDN) propiedad de la compañía. Los dispositivos OpenConnect
almacenan el contenido de video y lo entregan a los dispositivos del cliente. Los CDN
están diseñados para ofrecer contenido basado en Internet a los espectadores al
acercarlo a donde estén. Netflix externalizó originalmente la entrega de video en
tiempo real a proveedores de CDN de terceros, pero a medida que la empresa creció,
estos proveedores tuvieron dificultades para soportar el tráfico. Netflix necesitaba
más control sobre el servicio y la experiencia del usuario. La compañía decidió diseñar
un CDN adaptado a sus necesidades. Ahora instala dispositivos OpenConnect que
almacenan y entregan contenido dentro de los centros de datos del proveedor de
servicios de Internet (ISP), lo que aísla el servicio Netflix de la internet más amplia.

Los algoritmos de popularidad y las técnicas de almacenamiento ayudan a distribuir


el contenido de manera que maximizan la eficiencia de la descarga. El sistema reduce
la demanda en la capacidad de la red ascendente y ayuda a Netflix a trabajar más
de cerca con las redes ISP que alojan su tráfico. También permitió a Netflix hacer el
software CDN más inteligente. Ahora, cada vez que un cliente presiona “Play”, su
dispositivo puede obtener su contenido de numerosos lugares en Internet.

Una herramienta de ingeniería de caos de autoservicio llamada Chaos Automation


Platform fue pionera para probar problemas en sus entornos de producción para que
puedan estar seguros de que su software se comportará como lo deseen durante un
fallo. Utilizan el método de ingeniería del caos para garantizar que Netflix pueda
sobrevivir a un fallo en una de las tres regiones de AWS que utiliza. Cada mes,
desactivan una de las regiones y prueban que pueden mover todas los clientes que
estaba sirviendo a otro en seis minutos. Para abrazar el caos sin causar destrucción,
Netflix tuvo que crear una cultura corporativa que respaldara tales ideas.