Arquitectura de sistemas: Título: AnalyticsMOOC

Anuncio
Arquitectura de sistemas:
Título: AnalyticsMOOCSolución TIC Big Data para
entornos MOOC
Número de expediente: TSI100105-2014-192
Código: AVZ14002 Edición: 1
Fecha: 11/12/2014
Persona de Contacto: Carlos Vicente Corral
Telefónica Learning Services
Cuadro de control de firmas
EDICIÓN
FECHA
ELABORADO
1
Diciembre
2014
Carlos Vicente Corral
APROBADO POR
2
3
4
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 1
Telefónica Learning Services
Control de cambios
Cumplimentar sólo en caso de cambios sobre la primera edición del documento
Edición
Fecha
Apartados
que cambian
Descripción del cambio
1
2
3
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 2
Telefónica Learning Services
Índice
1.
OBJETIVO DEL DOCUMENTO ................................................................................................. 3
2.
ARQUITECTURA DEL SISTEMA PROPUESTA ....................................................................... 3
3.
DESCRIPCIÓN DE LAS TECNOLOGÍAS ELEGIDAS PARA EL PROYECTO. ........................ 6
3.1.
BASE DE DATOS DISTRIBUIDA. ..................................................................................................................... 6
3.2.
SISTEMA DE CONTADORES. ......................................................................................................................... 6
3.3.
SISTEMA DE LEARNING ANALYTICS EN DIFERIDO. .......................................................................................... 6
3.4.
SISTEMA DE MACHINE LEARNING. ............................................................................................................... 6
3.5.
SISTEMA DE REPORTING. ............................................................................................................................ 7
3.6.
SISTEMA DE DASHBOARD EN TIEMPO REAL. ................................................................................................. 7
1.
Objetivo del documento
El presente documento describe la arquitectura de sistemas y arquitectura de software
necesario para ampliar Wemooc, en una solución basada en Big Data y Learning Analytics.
Los objetivos del proyecto son:

Modificar la arquitectura del sistema para poder escalar de forma lineal. Ello implica
sobre todo cambiar el sistema de base de datos, por una base no distribuida.

Realizar un sistema de learning analytics sobre los datos que almacena Wemooc.
Existirán tres subsistemas:
o Un sistema de analíticas en tiempo real basado en dashboards.
o Un sistema de analíticas en procesos batch, que calculan analíticas complejas.
o Un sistema de recomendaciones de cursos para los usuarios basados en
algoritmos de Machine Learning.
Es importante además que los desarrollos que se realicen y el cambio de arquitectura sean
optativos a Wemooc, es decir, que en proyectos sencillos, pueda seguir usándose con bases
de datos relacionales estándar, y que en lo posible los sistemas de learning analitics sigan
funcionando en dicho caso.
Este punto es especialmente complejo, ya que implica modificar el código también de Liferay
en algunos puntos.
2.
Arquitectura del sistema propuesta
La arquitectura del sistema se refleja en el siguiente diagrama.
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 3
Telefónica Learning Services
Para poder explicar los cambios, empezamos una comparación con la arquitectura actual:
El funcionamiento de la actual arquitectura tiene cierta escalabilidad en algunos puntos:
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 4
Telefónica Learning Services

Es posible aumentar el rendimiento de la parte de frontend ampliando el número de
servidores Liferay y o Apache.

Puede configurarse el buscador en cluster.

Es posible ampliar la parte de SQLServer con un sistema de cluster basado en mirror.
Los problemas que tiene el sistema actual son los siguientes:

Por el propio diseño de las bases de datos relacionales, estas no pueden hacer un
escalado lineal del número de escrituras por segundo que se realizan, y tienen
problemas a la hora de manejar tablas con miles de millones de registros. Esto se
puede remediar con mecanismos de sharding pero hace muy complejo el desarrollo, y
por otro lado, dificulta enormemente el poder extraer informes del sistema. Es por tanto
necesario cambiar, sobre todo para las tablas que más crecen, el sistema de
persistencia, por uno plenamente distribuido que permita escalar linealmente.

Muchos de los datos del sistema, p.e. la entrega de tareas P2P, se almacenan en el
sistema de ficheros. Actualmente para mantener la coherencia del cluster, se utilizan
carpetas compartidas por NFS, pero este sistema tiene limitación de escalabilidad.

Actualmente los informes que existen por defecto, atacan directamente a la base de
datos de producción o a un mirror, pero este sistema empieza a tener problemas de
escalado. Por otro lado, el hecho de disponer de un sistema de base de datos
distribuido NoSQL impide utilizar este mecanismo para realizar agrupaciones de datos,
y es necesario utilizar soluciones Big Data para ello. Por otro lado, el sistema es muy
poco flexible, y permite pocos estudios.
Los cambios realizados en la arquitectura son los siguientes:

Utilizar la base de datos Cassandra para el almacenamiento de los datos
transaccionales. Esto permite escalar linealmente el sistema, pero como contra, no
permite utilizar SQL y sistemas tradicionales para la extracción de informes.

Sustituir el sistema actual de informes, por un sistema de BI como Pentahoo. Esto
permite diseñar informes interactivos para poder estudiar los datos de una forma más
flexible. Esto implica 2 componentes más.
o Un componente de Liferay que permita visualizar los dashboards e informes de
Pentahoo como parte de la solución entera.
o Una base de datos DataWarehouse, que contengan los datos precocinados para
los informes.

Dado que es prácticamente imposible trabajar directamente con Cassandra con fines
estadísticos, es necesario implementar una serie de trabajos que permitan extraer de la
misma, aquellos datos precocinados con los que se alimenta el DataWarehouse. La
solución elegida es SPARK, un sistema de trabajos de Big Data que tiene una buena
conectividad tanto con Cassandra como con Bases de datos Relacionales. Con
SPARKML además se realizarán los procesos de machine learning que se necesitan
para realizar los procesos de recomendaciones.

Aparte de este sistema, se necesitan algunos datos en tiempo real de la plataforma que
permitan tener una visión de lo que está pasando en el momento en la plataforma.
Estos contadores se almacenarán como contadores distribuidos de Cassandra, y habrá
unos procesos periódicos de SPARK cada pocos minutos que realizarán el cálculo de
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 5
Telefónica Learning Services
los mismos, para ser visualizados directamente desde unos portlets desarrollados al
efecto, sin necesidad de pasar por el dashboard de Pentahoo.

3.
Finalmente habrá que modificar el sistema de almacenamiento de ficheros por uno que
permita escalado lineal. En este caso tendremos 2 opciones. Una es usar sistemas de
Amazon, que tiene el problema de que ata la solución a un proveedor. Alternativamente
se proporcionará un sistema que usa cassandra como repositorio de ficheros para
Liferay.
Descripción de las tecnologías elegidas para el
proyecto.
A continuación se listan las tecnologías elegidas para diseñar la arquitectura, y su uso.
3.1.
Base de datos Distribuida.
Se utilizará Apache Cassandra como base de datos distribuida en lugar de una base de datos
Relaciona, como MySQL, que es la usada habitualmente. En todo caso, no se almacenará en
cassandra todos los contenidos de la base de datos relacional, sino solo aquellas tablas que
tienen el mayor crecimiento que son a su vez, aquellas que acumulan las trazas de las
actividades de los usuarios.
3.2.
Sistema de contadores.
Para los principales datos del dashboard se implementará un sistema de contadores en tiempo
real. que permitan disponer de forma inmediata de las principales métricas de seguimiento de
los cursos a varios niveles. Estos contadores, se implementarán como contadores distribuidos
de cassandra.
3.3.
Sistema de learning analytics en diferido.
Este sistema el responsable de realizar los cálculos distribuidos de las diferentes learning
analítics y reports que se definan. Se utilizará Apache Spark, ya que la integración con
Cassandra es muy buena, el rendimiento es muy superior a Hadoop u otros sistemas
similares, y es posible montarlo de forma distribuida de forma sencilla. En este sistema se
crearán los trabajos de cálculo de las principales learning analitics, que posteriormente serán
almacenados como datos precalculados, para su posterior visualización en el sistema de
reporting.
3.4.
Sistema de Machine Learning.
El sistema de Machine Learning escogido para implementar las recomendaciones
personalizadas será SPARML. Se realizará un proceso diario que calcule las recomendaciones
en base a los cursos que haya hecho o visto, y la categorización de los mismos para
personalizar las recomendaciones. Adicionalmente se montará un sistema de mailing para
enviar periódicamente las recomendaciones a los usuarios.
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 6
Telefónica Learning Services
3.5.
Sistema de reporting.
El sistema de Reporting se utilizará la suite de BI de Pentaho. Se implementarán una serie de
Dashboards contra el sistema de Data Warehouse. Se desarrollará además una serie de
portlets en Liferay que permitan acceder a dichos dashboards desde el portal, sin necesidad
de cambiar de entorno.
3.6.
Sistema de Dashboard en tiempo real.
Este sistema será desarrollado internamente como una aplicación de Liferay compuesta de
una serie de portlets que permitan la visualización integrada de dicha información en el
sistema, a partir de los contadores actualizados en tiempo real. Se utilizará una suite de
componentes gráficos que permiten la recarga dinámica para ver la evolución al instante de
determinados parámetros.
AVZ14002
Edición: 1
Arquitectura de Sistemas
Propiedad de Telefónica Learning Services.
Prohibida cualquier reproducción, distribución o comunicación pública, salvo
autorización expresa.
Fecha:11/12/2014
Página 7
Descargar