Open Innovation Campus

Hogar Digital

Mejoras de rendimiento y experiencia de usuario en Orquestador de Servicios de la Plataforma Global de Vídeo

Asignado

Recursos

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.

Conoce a todos los tutores

¿Te interesa?

Si eres profesor o estudiante universitario y tienes interés en participar en el programa TUTORÍA, registra tus datos para que podamos iniciar el programa.

Registro Alumnos
Registro Profesores

Temática

Mejoras de rendimiento y experiencia de usuario en Orquestador de Servicios

Introducción al desafío

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). 

Desafío planteado

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.