Resumen
La asignatura se divide aproximadamente a la mitad entre laboratorio y teoría. Se contemplan tres bloques de contenido:
1) Cloud: en la que se analizan las arquitecturas que han llevado a la nube, los modelos actuales. En el laboratorio se usa AWS, Google Cloud
2) Comunicaciones y la nube: representación de datos, uso de REST, colas y otros protocolos para la interacción, envío para persistencia de datos y extracción de datos (construcción de datasets). En el laboratorio se usa AWS, Google Cloud, Spotify u otros sistemas reales.
3) Big data: se analizan las necesidades, el tipo de nodo (hardware) necesario, los sistemas de almacenamiento distribuido, dimensionamiento y arquitectura de centros de datos. En el laboratorio se usa HDFS y Hadoop para entender los principios del Location Aware y MapReduce (una sóla ronda - nodos de cómputo y almacenamiento), Spark para introducir el uso de múltiples rondas de MapReduce, inmutabilidad y restricciones que impone la distribución sobre la manipulación de los datos (nodos de cómputo y RAM y porqué técnicamente facilita Machine Learning), Spark para streaming (nodos de cómputo y RAM y la necesidad de un broker a la entrada - kafka u otros por escalabilidad), uso de programación de alto nivel soportada por un cluster
Programa Computación en la Nube
Introducción a la computación distribuida: Evolución de la computación, Sistemas legados y evolución a sistemas distribuidos, Sistemas Distribuidos y Cloud Computing, Modelos de distribución de cómputo, ¿Qué es cloud computing?, Arquitecturas respecto al despliegue (IaaS, PaaS, SaaS), Aspectos de seguridad y localización en Cloud, Retos y oportunidades, casos de uso, LABS: AWS EC2 (iaas), Google Cloud Compute Engine (iaas), Google App Engine (paas), AWS lambda (paas-serverless)
Comunicaciones y la nube: Protocolos legados, Protocolos actuales (síncronos, asíncronos, mensajería, colas), Representación de los datos, Captura y extracción de datos, Consideraciones arquitectónicas y de red, Retos y oportunidades, casos de uso, LABS: Introducción a REST con FLASK (Google Cloud), Extracción programática vía API (Twitter, Spotify), Extracción forzada de datos vía Scrapping (local), MQTT y otros protocolos IoT/M2M (local)
Big Data: Arquitectura de sistemas de Big Data, Análisis de características hardware de procesamiento/almacenamiento, Anatomía de un centro de datos
Sistemas modernos de almacenamiento distribuido, Sistemas modernos de procesado en lotes, Sistemas modernos de procesado de flujos, Sistemas altamente distribuidos, Retos y oportunidades, casos de uso, LABS: HDFS/HADOOP (cluster local), Big data spark batch (cluster local), Big data spark stream (cluster local), Algoritmos en spark, Spark y cuadernos (pySpark)