MÓDULO VI: SERVICIOS Y APIS DE COMPUTACIÓN BIG DATA
Presentación y contextualización
Una vez que el alumno ha recibido formación en conceptos Big data, Bases de datos NoSQL, framework Hadoop, etc, se inicia el módulo de servicios y arquitecturas avanzadas e infraestructura en la nube en el que se explicarán las bases para el diseño e implementación de modelos avanzados de arquitecturas Big data, incluyendo bases de diseño como escalabilidad, pipelines, arquitecturas lambda y kappa, diseños real-time o Streaming. Adicionalmente, se mostrarán diferentes alternativas de las infraestructuras proporcionadas por las grandes compañías asociadas a la nube (IBM, Google, Amazon, Microsoft) y los servicios que proporcionan en el área de la analítica y los datos masivos (Big Data).
A efectos prácticos, el módulo se divide en dos partes/submódulos correspondientes a:
- Arquitecturas avanzadas
- Servicios/Infraestructuras en la nube
Para los dos módulos se proponen trabajos prácticos. Por ejemplo, en el caso del submódulo B) un caso de uso real, en el que se os guiará para montar una arquitectura distribuida avanzada utilizando componentes y mecanismos explicados en clase y otros nuevos que se introducirán junto con la práctica, como Information Retrieval o Integración Continua (CI). En el caso del submódulo B, se asociarán talleres prácticos de uso de los recursos disponibles en las propias plataformas en la nube: IBM Cloud y Google Cloud (en este último caso con la plataforma de formación de Google Qwiklabs).
El objetivo principal es que el alumno vea de un modo práctico la aplicación de los conceptos estudiados y comprenda así conceptos avanzados de escalabilidad, real-time o Streaming, además de su implementación en proyectos propios o sobre despliegues en la nube.
Requisitos y/o recomendaciones
El submódulo A requiere nociones básicas de:
- JSON
- APIs HTTP.
- Contenedores Dockers
- Neo4J
Dado que cada una de las herramientas que se verán deben de ser instaladas y configuradas en diferentes formas. Se usará Docker como tecnología de virtualización ligera y mediante la cual Se dispondrá de un contenedor donde empaquetar la instalación de cada producto y ejemplos que se verán en las clases. Para un uso rápido y cómodo de Docker se debería disponer de alguna distribución Linux durante las sesiones (aunque si se dispone de una versión Windows 10 Profesional, es posible instalar Docker para Windows), bien como sistema operativo principal o instalado como máquina virtual mediante VirtualBox. Esta máquina será facilitada por el profesor en caso necesario.
Para el caso del submódulo B, puesto que es una revisión profunda de los servicios/arquitecturas para Big Data y analítica de datos en la nuevo, se deberán haber adquirido los conocimientos explicados en este master sobre tecnologías de Big Data necesarios para el seguimiento del submódulo (Spark, Hadoop, etc.)
Competencias que se adquieren
- Conocer y comprender el concepto de Arquitectura escalables, Workflow/Pipeline, Streaming, modelos lambda y kappa, entre otras.
- Conocer casos de uso de éxito y en que se fundamentan.
- Capacidad de planificar a alto nivel una solución escalable a un problema dado.
- Capacidad de diseñar una solución aplicando tecnologías concretas
- Capacidad de ejecutar la solución y ponerla en funcionamiento.
- Comprender problemas reales que se presentan a la hora ejecutar los diseños.
- Identificar cuando hay que aplicar soluciones escalables.
- Conocer cómo se llevan a cabo los despliegues de este tipo de soluciones.
- Ser capaces de analizar las ventajas e inconvenientes de las diferentes soluciones en la nube para los diferentes dominios
- Conocer y desarrollar soluciones Big Data en la nube mediante soluciones de terceros
- Ser capaz de Integrar modelos de datos corporativos en entornos híbridos/públicos de manera eficiente y productiva
- Valorar las capacidades económicas y de inversión necesaria para la puesta en marcha y sostenimiento de soluciones Big Data en la nube.
Contenidos
En la asignatura se tratarán los siguientes contenidos:
MODULO A:
- Arquitecturas avanzadas Big Data
- Fundamentos de diseño de arquitecturas. Escalabilidad
- Características real-time
- Workflows o pipelines
- Arquitecturas Lambda y Kappa
- Streaming
- Ejemplos
- Práctica de laboratorio
A partir de un enunciado (requisito abierto) se irá modelando y ejecutando una arquitectura con diversos componentes.
El resultado final puede describirse como un análisis de sentimiento sobre datos en tiempo real y reporting mediante algoritmos de tipo “sliding window” y persistencia en bbdd NoSQL.
Se explicarán o introducirán las siguientes tecnologías:
- Information retrieval
- APIs HTTP
- Oauth
- Apache Storm
- Spouts, Bolts
- Maven
- Python
- Procesos ETL
- Neo4J
- Solr
- Implementación y despliegue sistematizado
- CI / CD
- Git, Jenkins, Nexus
MODULO B:
- Servicios e infraestructuras en la nube asociados a Big Data y Analítica de datos
- Productos de analítica y ML de IBM: Watson Studio y Watson Analytics
- Servicios cognitivos de IBM: Watson Cognitive Services
- IBM e infraestructura Big Data en la nube: BigInsights
- Marcos analíticos de Big data en Amazon AWS
- Almacenamiento de datos y modelos de bases de datos para datos masivos en AWS
- Amazon Machine Learning
- Implementación de infraestructura BigData en Azure: Hortonworks Data Platform for Windows (HDInsight)
- Azure Machine Learning
- Implementación de soluciones Big Data en Google Cloud Platform: Dataproc, Dataflow y BigQuery
- Soluciones de análisis, visualización y almacenamiento de datos en GDP: Dataprep, Data Studio y Big Table
- Machine Learning en GDP
- Prácticas de laboratorio
- Se trabajarán diferentes talleres de uso de los productos/herramientas en aquellas plataformas en las que se disponga de créditos de funcionamiento disponibles.
A continuación, detallamos el plan de trabajo de las sesiones del módulo.
IBM Cloud: Herramientas ML/Análisis
- Watson Studio
- Demostración/Características:
- Modelos automáticos
- Notebooks
- Flujos visuales
- Talleres y ejemplos prácticos
Arquitecturas escalables.
- Lectura
- Diseño
- Ejemplos prácticos
- Arquitecturas avanzadas: Lambda / Kappa
- Práctica 1/5: enunciado y diseño.
- Enunciado y exposición inicial
- Análisis de propuestas
- Primer diseño de alto nivel
Information Retrieval
- Teoría:
- Information retrieval
- NLP y NER
- Práctica 2/5: fuentes de datos y racionalización
de la arquitectura.
- NLP y NER con Stanford NLP
- API Twitter
- Aplicación al diseño, identificación de necesidades de escalado.
Más funcionalidades y más servicios en la nube
- IBM Watson Analytics y Big Insights
- Soluciones Amazon AWS para infraestructura y Machine Learning
- Microsoft Azure y servicios en la nube para Big Data y Machine Learning
Escalado horizontal – Apache STORM.
- Teoría ( breve )
- Práctica
3/5: Escalado horizontal.
- Primer pipeline con datos -> Storm -> NLP
- Análisis de resultados, próximos pasos.
ETL y Persistencia – Neo4J / Solr ( parte 1 )
- Teoría ( breve ).
- Práctica 4/5: ETLs
- Pipeline con ETL primera aproximación.
- Pipeline con ETL revisión.
- Análisis de resultados, lecciones aprendidas.
- Teoría: Despliegue ( CI/CD )
- Práctica 5/5: Arquitectura completa, revisión de
resultados.
- Interfaz de usuario
- Arquitectura completa en modo streaming.
- Análisis y discusión de los resultados.
- Propuestas de evolución.
Implementación de soluciones Big Data en Google Cloud Platform: Dataproc, Dataflow y BigQuery
Soluciones de análisis, visualización y almacenamiento de datos en GDP: Dataprep, Data Studio y Big Table
Machine Learning en GDP
Talleres y ejercicios prácticos
Bibliografía
Libros
- T. Dunning & E. Friedman. Streaming Architecture. O’Reilly, 2016
- Harrison et al. Next Generation Databases: NoSQL, NewSQL, and Big Data. 2015. Apress
- Nathan Marz, James Warren. Big Data: Principles and best practices of scalable realtime data systems 1st Edition. 2015. Manning publisher.
- Rafal Leszko. Continuous Delivery with Docker and Jenkins. Packt.
- Trey Grainger y Timothy Potter , Solr in Action. 2014. Manning publisher.
- Alfio Gliozzo y otros autores, Building Cognitive Applications with IBM Watson Services: Volumes 1 to 7.
- IBM Data Engine for Hadoop and Spark, disponible en http://www.redbooks.ibm.com
- Aurobindo Sarkar y Amit Shah. Learning AWS – Second Edition, Packt Publishing, 2018.
- Vinit Yadav. Processing Big Data with Azure HDInsight: Building Real-World Big Data Systems on Azure HDInsight Using the Hadoop Ecosystem. Apress, 2017.
- Zoiner Tejada. Mastering Azure Analytics, 1st Edition. O’Reilly Media, 2017.
- S .P. T. Krishnan y Jose L. Ugia Gonzalez. Building Your Next Big Thing with Google Cloud Platform: A Guide for Developers and Enterprise Architects. Apress, 2015.
- Thirukkumaran Haridassy Eric Brown. Learning Google BigQuery. Packt Publishing, 2017.
Artículos
- R. Cattell. Scalable SQL and NoSQL Data Stores. SIGMOD Record 39(4), 2010
- Chen et al (2016) Realtime data processing at Facebook, SIGMOD’16 Pages 1087-1098
- Wolfram Wingerath, Felix Gessert, Steffen Friedrich, and Norbert Ritter. Real-time stream processing for Big Data. Information Technology 2016; 58(4): 186–194
- Neo4j: Neo4j in Action: https://neo4j.com/books/neo4j-in-action-book/
- Docker in Action. Manning: http://amzn.eu/0SrpEzY
Recursos de apoyo y Webgrafía
- Neo4J: https://neo4j.com/
- Docker: https://docs.docker.com/
- Apache Storm: http://storm.apache.org/
- Twitter API: https://developer.twitter.com/en/docs/tweets/filter-realtime/api-reference/post-statuses-filter.html
- Sorl: http://lucene.apache.org/solr/
- Neo4j: Neo4j in Action: https://neo4j.com/books/neo4j-in-action-book/
- Docker in Action. Manning: http://amzn.eu/0SrpEzY
- IBM Cloud: https://console.bluemix.net/
- Amazon Web Services, AWS: https://aws.amazon.com/es/
- Microsoft Azure: https://azure.microsoft.com/es-es/
- Google Cloud Platform: https://cloud.google.com/
- Qwiklabs, https://qwiklabs.com/