Todo el mundo habla de Netflix. Ya sea por su imparable expansión mundial (Europa en su foco después de conquistar América) o por su infatigable labor de producción propia (dos temporadas nuevas de sus series cada mes, producciones especificas para cada país...), la compañía creada por Reed Hastings es noticia prácticamente cada día. Pero es que además del dominador del mercado del vídeo bajo demanda, Netflix es una de las grandes tecnológicas de Silicon Valley. En las siguientes líneas os vamos a descubrir las interioridades tecnológicas de la empresa sita en Los Gatos, la soleada California.
Las tripas de Netflix
Antes de ser un videoclub online, Netflix fue un videoclub a domicilio. Los suscriptores entraban en la web, seleccionaban la peli que querían y se la llevaban a casa por mensajero. Cientos, miles de copias de cada película o serie repartidas por almacenes a lo largo y ancho de toda la geografía de los Estados Unidos.
El streaming llegó a Netflix en 1999 y conforme iban mejorando las redes y las velocidades de las líneas, se iba comiendo un pastel cada vez más grande del negocio. Los almacenes físicos se iban haciendo cada vez menos necesarios y había que buscar otras soluciones para almacenamiento y servicio de los contenidos. Sobre todo si pensamos que los días de grandes estrenos, Netflix puede llegar a ocupar más de un 30% del ancho de banda de todos los Estados Unidos sirviendo streaming a sus más de 40 millones de usuarios en ese país. ¿Cómo realizar esto de la mejor y más eficiente manera? En estas estábamos cuando llegó la nube.
Los días de estreno, Netflix ocupa más del 30% del ancho de banda de EEUU
En concreto, Netflix lleva desde 2010 utilizando los servicios en la nube de Amazon, en concreto en Amazon EC2, donde tiene almacenados varios petabytes de información (1 Petabyte = 1024 Terabytes) formada por todos los títulos (tanto series como películas) que ofrece la plataforma en cada momento codificados en más 50 versiones distintas de codecs de vídeo y audio para así poder servirlo a Windows, Mac, Linux, iOS, Android y demás plataformas y dispositivos en los cuales opera actualmente.
Netflix Stack | |
---|---|
Almacenamiento | Amazon |
Bases de Datos | Cassandra, Oracle, MySQL |
Caché | EVCache |
Capa de Presentación | Java, Python, Node.js, HTML5, [React JS(https://facebook.github.io/react/) |
Servidor Web | Nginx |
Otras Herramientas | Hadoop, Sketchy, Asgard |
Esta cantidad ingente de información antes se servía a los distintos proveedores de Internet mediante redes de reparto de contenido (Content Delivery Networks en inglés aunque son más conocidas por sus siglas, CDN) externas como Akamai o Level 3. Eso también pasó ya a mejor vida y desde 2012 utilizan su propio CDN, llamado Open Connect y que tiene buena parte de culpa de la excelente calidad de servicio y alta disponibilidad que Netflix proporciona habitualmente.
Cassandra debe ser capaz de soportar el millón de escrituras por segundo que produce Netflix
A este gran servicio contribuye también de forma crucial el sistema de bases de datos. Así descubrimos que Netflix es uno de los principales valedores de las bases de datos NoSQL ya que utilizan Cassandra para su capa de persistencia. Desarrollada en primera instancia por Facebook y luego continuada por la Fundación Apache, Cassandra se caracteriza por ser distribuida, escalable y ofrecer un gran rendimiento... características esenciales para aguantar las tremendas cifras de Netflix: más de 1 millón de peticiones de escritura por segundo. Por si no fuera suficiente, se utiliza Hadoop (también de Apache) para el procesamiento distribuido y los ingenieros de la casa han desarrollado una capa de memoria caché intermedia llamada EVCache, basada en la popular Memcached y que libera de buena parte de la carga a los servidores.
En Netflix estos ingenieros tienen libertad tanto para realizar estas nuevas herramientas tipo EVCache como para elegir el lenguaje de programación más adecuado según el proyecto, nada de ataduras hacia uno en concreto. De ahí que en sus tripas encontremos desde Java (lenguaje original del Core del proyecto) a Node.js (el back de la actual aplicación) y microservicios y alertas en Python pasando por diversos frameworks Javascript (jQuery, React) para el desarrollo front o Objective-C y Android ya que las aplicaciones que realizan para los distintos dispositivos suelen ser nativas.
Unas aplicaciones, por cierto, creadas sobre la potente y pionera API Restful de Netflix, que lamentablemente se cerró definitivamente al público en 2014, quedando tan sólo para proyectos privados propios como estas apps.
Una mezcolanza de tecnologías y lenguajes que se refleja bien en lo variopinto de las ofertas de trabajo que siempre hay en buen número para trabajar en uno de los equipos de tecnología más envidiado de Silicon Valley.
Netflix y la comunidad
Netflix maneja muchos datos, muchísimos. Y gracias a la minería de datos y el big data, no sólo los guarda si no que los utiliza. Una de las principales maneras de utilizar estos datos es convertirlos en recomendaciones personalizadas para cada suscriptor. Un complejo algoritmo basado en las puntuaciones del resto de suscriptores, las búsquedas de los usuarios, las datos obtenidos de los visionados de streaming y la similaridad entre contenidos y para el que organizaron un concurso, The Netflix Prize, en 2006 que tenía un premio de 1 millón de dólares.
Otra manera de utilizar esta cantidad ingente de datos es la de sacar estudios con los que demostrar su omnipotencia y epatar al neófito. Por ejemplo, gracias a los datos de los visionados de streaming de cada suscriptor pueden determinar cual es el capítulo exacto con el que la gente se engancha a una serie... y lo pueden desglosar por países, por dispositivos, por franja de edad...
En su cuenta de GitHub Netflix tiene más de 100 repositorios públicos
Frente al secretismo que pueden mostrar otras empresas, estar al tanto de la tecnología que usan en Netflix y de sus innovaciones (y del mundo del desarrollo en general) es muy sencillo: tan sólo hay que seguir el blog de su equipo de tecnología. Toda una institución que lleva 5 años sentando cátedra y que ha inspirado a que muchas otras empresas hagan lo mismo y compartan su conocimiento.
Además, este equipo de tecnología no sólo comparte conocimiento sino también código, mucho código... casi 100 repositorios públicos de proyectos en muy diversos lenguajes en su cuenta de GitHub. Porno duro para cualquier developer que se precie. Y si además del software te va el hardware y el cacharreo, no te pierdas The Switch, un proyecto que es mejor verlo a que te lo contemos nosotros:
En definitiva, una estructura sólida, las tecnologías más punteras y vocación por el software libre (casi todas las siglas que hemos ido nombrando a lo largo del artículo pertenecen a proyectos de software libre) y por compartir con la comunidad, estos son los secretos del Netflix que no se conoce, el que hay más allá de 'House of Cards', 'Orange is the New Black' y el hype. ¿Y del futuro qué? Pues del futuro mejor que hable el mismo Reed Hastings, el hombre al que en 1997 le multaron con 40 dólares por devolver tarde una peli al videoclub y que tuvo una visión.
Ver 23 comentarios