Pasar al contenido principal

Arquitectura de Computadores de Altas Prestaciones

Créditos
6
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos , pero tiene capacidades previas
Departamento
AC
Web
https://ccbda-upc.github.io/mei/
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

Otros

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
7.11

Competencias

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.
  • CTE2 - Capacidad de comprender y saber aplicar el funcionamiento y organización de Internet, las tecnologías y protocolos de redes de nueva generación, los modelos de componentes, software intermediario y servicios.
  • CTE3 - Capacidad para asegurar, gestionar, auditar y certificar la calidad de los desarrollos, procesos, sistemas, servicios, aplicaciones y productos informáticos.
  • Genéricas

  • 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.
  • CG5 - Capacidad para la elaboración, planificación estratégica, dirección, coordinación y gestión técnica y económica de proyectos en todos los ámbitos de la Ingeniería en Informática siguiendo criterios de calidad y medioambientales.
  • Espíritu emprendedor e innovador

  • CTR1 - Conocer y comprender la organización de una empresa y las ciencias que rigen su actividad; capacidad de comprender las reglas laborales y las relaciones entre la planificación, las estrategias industriales y comerciales, la calidad y el beneficio. Desarrollar la creatividad, el espíritu emprendedor y la tendencia a la innovación. Conocer y entender los mecanismos en que se basa la investigación científica, así como los mecanismos e instrumentos de transferencia de resultados entre los diferentes agentes socioeconómicos implicados en los procesos de I+D+i.
  • Trabajo en equipo

  • CTR3 - Ser capaz de trabajar como miembro de un equipo, ya sea como un miembro más, o realizando tareas de dirección con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
  • 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.
  • Razonamiento

  • CTR6 - Capacidad de razonamiento crítico, lógico y matemático. Capacidad para resolver problemas dentro de su área de estudio. Capacidad de abstracción: capacidad de crear y utilizar modelos que reflejen situaciones reales. Capacidad de diseñar y realizar experimentos sencillos, y analizar e interpretar sus resultados. Capacidad de análisis, síntesis y evaluación.
  • Básicas

  • CB7 - Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
  • CB8 - Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • Objetivos

    1. 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,
    2. 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,
    3. Find and understand useful information to create innovative solutions.
      Competencias relacionadas: CTE2, CTE3, CB8, CG5,

    Contenidos

    1. 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.
    2. 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
    3. 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

    Actividad Acto evaluativo


    Presentation of the subject and Introduction to Cloud Computing and Big Data Analytics


    Objetivos: 1
    Teoría
    4h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Virtualization


    Objetivos: 1
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Cloud Computing Architecture


    Objetivos: 1 3
    Teoría
    6h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    12h

    Best Practices for creating SaaS


    Objetivos: 2 3
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Cloud Security


    Objetivos: 1 3
    Teoría
    4h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    8h

    Shared Knowledge on current trending topics


    Objetivos: 1 3
    Teoría
    4h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    12h

    Collaborative class project


    Objetivos: 2
    Teoría
    5h
    Problemas
    0h
    Laboratorio
    11h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    36h

    Lab 1: Basic knowledge toolbox


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 2: Doors in the cloud


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 3: Basic use of the cloud


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 4: Use of services programmatically through their API


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 5: Deploy a custom web app using additional cloud services


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 6: Run a custom web app in the cloud


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 7: Continuous Integration, Continuous Delivery, and Observability


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Lab 8: Serverless applications


    Objetivos: 2 3
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    2h

    Metodología docente

    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.

    Bibliografía

    Básico

    Capacidades previas

    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.