La computación en la nube es un modelo de servicio para computación distribuida a gran escala basada en una infraestructura concentrada y un conjunto de servicios colaborativos sobre los cuales un conjunto de aplicaciones se pueden implementar y ejecutar a través de la red.
Este curso sobre computación en la nube tiene un enfoque principalmente práctico respecto a las tecnologías relacionadas. Si bien los conceptos explicados se aplican a cualquier aplicación, las clases prestan especial atención a la creación de aplicaciones Big Data Analytics en la nube.
En las clases teóricas del curso, los estudiantes aprenderán los principios y el estado del arte de la computación distribuida a gran escala en un modelo basado en servicios. Los estudiantes estudiarán cómo la escala afecta las propiedades del sistema, los modelos, la arquitectura y los requisitos.
En cuanto a los principios, este curso analiza cómo afecta la escala a las propiedades y problemas del sistema (como virtualización, disponibilidad, localidad, rendimiento y adaptación), modelos de sistema, modelos arquitectónicos, entorno y requisitos de aplicación (como tolerancia a errores, distribución de contenido). Este curso también explora el estado del arte en la gestión de recursos de entornos en la nube (compuestos por diferentes tipos de plataformas y organizaciones) para admitir las aplicaciones actuales y sus requisitos.
En las sesiones de laboratorio de este curso, los estudiantes obtendrán una visión práctica de lo último en tecnología de la nube para implementar un prototipo que satisfaga una idea de negocio creada por los estudiantes. Se comenzará a construir una caja de herramientas esencial para dar los primeros pasos en la nube. Luego tendrán la oportunidad de practicar con las API, las puertas en la nube. Todos estos preliminares permitirán que los estudiantes extraigan la avalancha de datos provenientes de la nube o utilicen los nuevos servicios analíticos avanzados que ofrece actualmente la nube. Finalmente, mirarán bajo el capó de estos servicios analíticos de alto nivel en la nube, ya sea en relación con el software o hardware, para comprender cómo cumplir con los requisitos de alto rendimiento.
Profesorado
Responsable
Angel Toribio Gonzalez (
)
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
7.11
Competencias
Competencias Técnicas de cada especialidad
Específicas
CTE1 - Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
CTE6 - Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.
CTE7 - Capacidad para comprender y poder aplicar conocimientos avanzados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.
Competencias Técnicas Genéricas
Genéricas
CG1 - Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la ingeniería informática.
CG3 - Capacidad para dirigir, planificar y supervisar equipos multidisciplinares.
CG4 - Capacidad para el modelado matemático, cálculo y simulación en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación, desarrollo e innovación en todos los ámbitos relacionados con la Ingeniería en Informática.
CG6 - Capacidad para la dirección general, dirección técnica y dirección de proyectos de investigación, desarrollo e innovación, en empresas y centros tecnológicos, en el ámbito de la Ingeniería Informática.
CG8 - Capacidad para la aplicación de los conocimientos adquiridos y de resolver problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y mulitidisciplinares, siendo capaces de integrar estos conocimientos.
Competencias Transversales
Actitud frente al trabajo
CTR5 - Tener motivación para la realización profesional y para afrontar nuevos retos, así como una visión amplia de las posibilidades de la carrera profesional en el ámbito de la Ingeniería en Informática. Tener motivación por la calidad y la mejora continua, y actuar con rigor en el desarrollo profesional. Capacidad de adaptación a los cambios organizativos o tecnológicos. Capacidad de trabajar en situaciones de falta de información y/o con restricciones temporales y/o de recursos.
Básicas
CB6 - Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
Objetivos
Present the student with new execution environments required to manage the computing resources and simplify the development and integration of the different types of applications and services at nowadays Internet-scale systems.
Competencias relacionadas:
CTE1,
CTE2,
CTR6,
CTR1,
Collaborate in the design, implementation and presentation of a cloud computing environment that is required for a class project.
Competencias relacionadas:
CTE1,
CTR3,
CTR5,
CTR6,
CB7,
CG4,
CG5,
CTR1,
Find and understand useful information to create innovative solutions.
Competencias relacionadas:
CTE2,
CTE3,
CB8,
CG5,
Contenidos
Teoría: fundamentos de computación en la nube
Conceptos fundamentales: el efecto de la escala en las propiedades del sistema.
---- Problemas en sistemas a gran escala: virtualización, orientación y composición del servicio, disponibilidad, localidad, rendimiento y adaptación.
---- Modelos para sistemas a gran escala: modelos de sistemas para análisis, modelos arquitectónicos y modelos de servicio / implementación.
---- Técnicas de escala: técnicas básicas, técnicas de computación escalables para modelos arquitectónicos.
---- Middleware y aplicaciones: informática, almacenamiento, web, distribución de contenido, sistemas o servicios de escala de Internet.
---- Requisitos de entorno y aplicaciones.
Sessions de laboratori: Visión práctica de Cloud Computing
Análisis de datos masivos
---- API: las puertas de la nube
---- Capas de software requeridas actualmente en el análisis de datos masivos
---- Requisitos de software nuevos para análisis avanzado
---- Requisitos de hardware nuevos para análisis avanzado
Proyecto: parte experimental
Desarrollo de una aplicación prototipo utilizando los servicios disponibles en la nube (como AWS, Google App Engine, Open Stack, OpenNebula)
---- Desarrollo de una aplicación prototipo utilizando servicios analíticos avanzados ya sea en relación con API o software como servicio.
Actividades
ActividadActo evaluativo
Presentation of the subject and Introduction to Cloud Computing and Big Data Analytics
Conferencias, lecturas y discusión de documentos técnicos y de investigación, Presentación de temas (y documentos) por parte de los estudiantes. Sesiones de laboratorio y un proyecto práctico de clase.
Se requiere que los estudiantes lleven su portátil para desarrollar las sesiones de laboratorio y el proyecto de clase práctica.
Los estudiantes deben responsabilizarse de sus cuentas de Amazon Web Services (proveedor de servicios de computación en la nube).
Método de evaluación
Los alumnos se evaluarán sobre su participación en clase, sesiones de laboratorio, asistencia a clase, lectura y presentación de informes y trabajos y trabajos sobre temas específicos.
La nota final del curso es la media ponderada de las calificaciones de los siguientes componentes obtenidos en cada parte del curso:
· Sesiones de laboratorio: 40%
· Lecturas de artículos / presentaciones y tareas: 10%
· Proyectos del curso: 30%
· Examen final: 20%
Para poder defender públicamente el proyecto del curso, los estudiantes deben haber asistido al menos al 70% de las clases y los equipos deben haber entregado a tiempo las actividades planificadas durante el curso. El proyecto del curso es el resultado del trabajo en equipo, que se reflejará en la calificación otorgada al grupo en su totalidad. Cada miembro del grupo será responsable de una parte del proyecto y podría ser calificado individualmente por su contribución.
Conocimientos generales de:
- Redes TCP/IP
- Administración básica de sistemas operativos y uso del sistema operativo desde los programas
- Desarrollo de programas
Conocimiento básico de:
- Línea de comandos de Unix.
- Lenguaje de programación Python.
- Sistema de control de versiones Git.
Advertencia. Se supone que los estudiantes deben tener los conocimientos anteriores antes de comenzar las sesiones de laboratorio. Se proporcionarán materiales complementarios antes de la clase para ayudar a los estudiantes a cumplir con los requisitos anteriores.