Open Innovation Campus

Digital Life

Improvement in the performance and user experience of the Global Video Platform Orchestrator Service

Unavailable

Resources

El alumno tendrá a su disposición el código fuente de los componentes de Orquestador, así como toda la documentación técnica generada hasta la fecha.

Are you interested?

If you are a professor or university student and you are interested in participating in the TUTORING program, register your information so that we can start the program.

Student registration
Academic registration

Subject

Mejoras de rendimiento y experiencia de usuario en Orquestador de Servicios

Context

La Plataforma Global de Video de Telefónica permite acceder a contenidos de video y televisión a los clientes de Telefónica. Dicha plataforma incluye un sub-sistema basado en micro-servicios, llamado Orquestador, que permite centralizar todas las peticiones de datos que mandan las aplicaciones que se ejecutan en los dispositivos (PC, SmartPhone, Tablet, STB, etc.). El Orquestador permite centralizar la autenticación de las aplicaciones (usando tokens JWT), simplificar la lógica de las aplicaciones (ejecutando cierta lógica específica de las aplicaciones en el backend), hacer un control de flujo de peticiones recibidas (para evitar sobrecargas en el backend), reduciendo el número y diversidad de llamadas hasta el backend desde las aplicaciones, y, sobre todo, gestiona y centraliza el acceso a diversas APIs de backend (API de usuarios, API de contenidos, API de configuraciones, API de recomendaciones, etc.). Esta última característica es la más importante del Orquestador y para llevarla a cabo existe un micro-servicio llamado API HUB.

API HUB es el encargado de acceder a distintas fuentes de datos (APIs de Backend de la plataforma de video), obtener datos específicos según los parámetros recibidos y el usuario que hace la llamada y componer una respuesta que generalmente contiene gran cantidad de datos. API HUB se basa en NodeJS y GraphQL y para que su rendimiento sea aceptable se han tenido que implementar distintas políticas de cacheo de datos y optimizaciones diversas. Aun así, el throughput de cada instancia de API HUB es reducido y para conseguir el rendimiento necesario se debe ejecutar decenas de instancias del mismo micro-servicio (usando un balanceador para el reparto de la carga). 

Challenge description

Partiendo del Orquestador se plantea realizar un proyecto cuyo objetivo es mejorar el sistema actual para que tenga mejor rendimiento y así ofrecer una mejor experiencia de usuario a los clientes de Telefónica. Para conseguir este objetivo se deberán estudiar y analizar distintas técnicas que se podrían aplicar al sistema actual. Por ejemplo, aplicar técnicas de envío progresivos de datos desde el backend a las aplicaciones, mejorar las estrategias de cacheo de datos en memoria, mejorar en el acceso a cachés externas de datos, aplicar nuevas capacidades que ofrece GraphQL, etc. Las técnicas seleccionadas se aplicarán al código de los micro-servicios y se medirá el impacto en rendimiento de dichas mejoras.