Guía docente de Infraestructura Virtual (Especialidad Tecnologías de la Información) (296114N)
Grado
Rama
Módulo
Materia
Year of study
Semestre
ECTS Credits
Tipo
Profesorado
Teórico
Práctico
Prerrequisitos y/o Recomendaciones
No es necesario que los estudiantes tengan aprobadas asignaturas, materias o módulos previos como requisito indispensable para cursar este módulo. No obstante se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica y de rama. En ese sentido, algunas asignaturas previas interesantes son Ingeniería de Servidores, Ingeniería de Sistemas de Información, Arquitecturas y Computación de Altas Prestaciones y Servidores Web de Altas Prestaciones.
Se recomienda que los estudiantes tengan también los siguientes conocimientos prácticos
- Uso de git y GitHub, realización de pull request.
- Organización del trabajo para un proyecto, ya que la asignatura está basada en proyecto.
- Conocimiento de lenguajes de programación de scripting tales como Perl, Javascript o Python.
- Conocimiento del protocolo HTTP y su uso en aplicaciones web
- Conocimiento de estrategias de prueba de aplicaciones.
Todos estos conocimientos están en un "curso 0" en la web. El enlace incluye vídeos y enlaces a otros recursos que se pueden utilizar.
Breve descripción de contenidos (Según memoria de verificación del Máster)
Los contenidos que se impartirán en la asignatura son los siguientes:
- Arquitectura virtual versus arquitectura digital.
- Centro de procesamiento datos versus Centro de procesamiento de datos virtual.
- Hardware de servidores y virtualización de servidores.
- Hardware de almacenamiento y virtualización de almacenamiento.
- Redes y Hardware para E/S, y su virtualización.
- Aplicaciones y ejemplos.
Competencias
Competencias Generales
- CG04. Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas.
- CG06. Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes.
Competencias Transversales
- CT02. Capacidad para tomar decisiones basadas en criterios objetivos (datos experimentales, científicos o de simulación disponibles) así como capacidad de argumentar y justificar lógicamente dichas decisiones, sabiendo aceptar otros puntos de vista.
Resultados de aprendizaje (Objetivos)
El título de Graduado/a en Ingeniería Informática de la Universidad de Granada ha obtenido, con fecha 5 de junio de 2019, el sello Euro-Inf, otorgado por ANECA en colaboración con el Consejo General de Colegios Profesionales de Ingeniería en Informática (CCII) y con el Consejo General de Colegios Oficiales de Ingeniería Técnica en Informática (CONCITI). Esta acreditación garantiza el cumplimiento de criterios y estándares reconocidos por los empleadores españoles y del resto de Europa, de acuerdo con los principios de calidad, relevancia, transparencia, reconocimiento y movilidad contemplados en el Espacio Europeo de Educación Superior.
Objetivos (Expresados como resultados esperables de la enseñanza)
- Conocer la historia de la computación virtual, sus orígenes y razones de su existencia.
- Conocer los conceptos relacionados con el proceso de virtualización tanto de software como de hardware.
- Comprender la diferencia entre infraestructura virtual y digital.
- Justificar la necesidad de procesamiento virtual frente a real en el contexto de una infraestructura TIC de una organización.
- Diseñar, construir y analizar las prestaciones de una aplicación en infraestructura virtual.
- Conocer las diferentes tecnologías y herramientas de virtualización tanto para procesamiento como para comunicación y almacenamiento.
- Instalar, configurar, evaluar y optimizar las prestaciones de aplicaciones sobre infraestructura virtual.
- Configurar los diferentes dispositivos para acceso a los servidores virtuales: acceso de usuarios, redes de comunicaciones o entrada/salida.
- Entender los conceptos necesarios para diseñar, implementar y construir una aplicación sobre infraestructura virtual.
- Documentar, administrar, mantener y optimizar la infraestructura virtual de una aplicación.
- Saber aplicar diferentes tecnologías relacionadas con la virtualización al diseño de aplicaciones en infraestructura virtual: DevOps, contenedores, microservicios, serverless, integración y despliegue continuo y saber aplicarlos en la definición por software de la infraestructura y despliegue de una aplicación.
Objetivos formativos de carácter general (Competencias según BOE de 4 de Agosto de 2009)
- Ser capaz de comprender el entorno de una organización y sus necesidades en el ámbito de las tecnologías de la información y las comunicaciones.
- Ser capaz de seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados.
- Ser capaz de concebir sistemas, aplicaciones y servicios basados en tecnologías de red, incluyendo Internet, web, comercio electrónico, multimedia, servicios interactivos y computación móvil.
Programa de contenidos Teóricos y Prácticos
Teórico
En la metodología de aprendizaje que se va a usar, enseñanza basada en proyectos y objetivos y evaluación formativa, el temario práctico coincide con el teórico y no hay diferentes tipos de clase: en todos ellos se hace breves exposiciones a demanda, especialmente relacionadas con dudas comunes, y trabajo práctico del estudiante ayudado, si es necesario, por el profesorado.
- Conceptos básicos de desarrollo de aplicaciones en la nube: herramientas de desarrollo, conceptos básicos de desarrollo ágil, especificaciones a través de historias de usuario, concepto de cliente, problema, lógica de negocio.
- Diseño dirigido por dominio, aplicación de conceptos del dominio del problema al código. Código limplio. Buenas prácticas en desarrollo de aplicaciones. Trabajo en equipo.
- Automatización de tareas de desarrollo. Flujos de trabajo. Gestión de dependencias
- Conceptos de control de calidad: pruebas y su relación con el desarrollo ágil.
- Infraestructura virtual para aplicaciones: aislamiento de recursos mediante contenedores.
- Integración y despliegue continuo, servicios auxiliares para el despliegue, observabilidad.
- Programación de servidores en la nube, interfaces REST.
Práctico
Como se ha indicado en el apartado anterior, la asignatura es práctica y los conocimientos teóricos se imparten con el objetivo de que se tengan los conocimientos prácticos para hacer una serie de productos mínimamente viables que componen el proyecto. Estos se organizan en una serie de objetivos o niveles alcanzados por el proyecto
Estos objetivos se irán entregando periódicamente y serán los que contribuirán a la evaluación del porcentaje de la asignatura principal, tras el objetivo cero: Uso básico de herramientas, problema a resolver. Los niveles de consecución del proyecto serán los siguientes:
- Historias de usuario y planificación.
- Modelización del problema.
- Automatización de las tareas.
- Tests unitarios para la clase/s diseñadas.
- Técnicas de virtualización: Contenedores para pruebas.
- Integración continua.
- Servicios esenciales.
- REST. Diseño de interfaces. Arquitectura limpia.
- Implementación de REST. Despliegue en la nube.
Bibliografía
Bibliografía fundamental
- Temario de la asignatura
- Aprende a programar la nube, Amazon, 2015
- Cloud Computing Explained: Implementation Handbook for Enterprises, de John Rhoton. Recursive Press, 2013 Edition
Bibliografía complementaria
- Infrastructure as Code (IAC) Cookbook, Stephane Jourdan and Pierre Pomes, Packt, 2017
- Cloud Computing, A Practical Approach, Toby Velte, Anthony Velte, Robert Elsenpeter. McGraw-Hill Osborne Media; 1 edition (September 22, 2009)
Enlaces recomendados
- Repositorio con sesiones de la asignatura, cambia cada año y se crea al principio de las clases.
- Material de la asignatura y material adicional, https://jj.github.io/IV
- Cloud Computing. Wikipedia.
- Azure, plataforma cloud de Microsoft
- Colección de artículos relacionados con el tema
Metodología docente
- MD01. Lección Magistral (Clases Teóricas-Expositivas)
- MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo).
- MD03. Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías).
- MD04. Actividades no presenciales Individuales.
- MD05. Actividades no presenciales Grupales.
- MD06. Tutorías Académicas.
Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)
Evaluación Ordinaria
Se trata de enseñanza basada en proyecto, usando evaluación formativa. En este apartado se examinará como se ponen en práctica los conocimientos teóricos, y tendrá una ponderación del 70%, con diferente ponderación para cada objetivo dependiendo del trabajo necesario para completar el mismo (en media; cada objetivo alcanzado tendrá la misma puntuación para cada estudiante). Cada uno de los objetivos tiene una serie de subobjetivos a superar, y se puede entregar tantas veces sea necesario, sin fecha tope de entrega. En todas las entregas se llevará a cabo evaluación formativa: En este método el estudiante no recibe calificación, sino que tiene que superar una serie de objetivos con la ayuda del profesor; es decir, cada objetivo está superado o no, y la calificación correspondiente estará relacionada con el trabajo necesario para llevar a cabo el objetivo y será igual para toda la clase.
El estudiante tiene que superar tales objetivos presentando de forma telemática al sistema de evaluación de la asignatura los hitos, que serán pre-evaluados automáticamente, y el profesor ayudará a que esos objetivos se alcancen, sin que en ningún momento se ponga una nota parcial en cada objetivo. No es necesario superar cada objetivo para pasar al siguiente, pero sí es imprescindible que esta pre-evaluación se haya superado para entregar, y que se evalúe, el siguiente objetivo.
En su caso, la parte de trabajo autónomo y los seminarios se evaluarán teniendo en cuenta la asistencia a los seminarios, los problemas propuestos que hayan sido resueltos correctamente y entregados por los estudiantes, las aportaciones para crédito extra que se hayan propuesto durante el curso y, en su caso, las entrevistas efectuadas durante el curso, la cooperación con el resto de los estudiantes tanto en clase como en los grupos de Telegram (de pertenencia voluntaria) creados, la originalidad y grado de terminación del proyecto presentado y la presentación oral de los trabajos desarrollados. Todos estos aspectos se valorarán con un 30% de la nota; de los cuales un 10% como máximo (un punto de los 10 de la calificación final) por la presentación oral del proyecto (optativa) desarrollado a lo largo del curso. Para que esta parte sea calificada se podrá exigir un mínimo de objetivos cumplidos, sea consecutivos (por ejemplo, hasta el 5º objetivo) sea por esfuerzo acumulado (por ejemplo, objetivos que sumen un mínimo de 4 puntos sobre 7).
Es imprescindible que se alcance una cantidad de objetivos determinada para entender que el estudiante haya superado la asignatura. En todo caso, a solicitud del estudiante se podrá calificar este 30% adicional, pero en ningún caso la suma podrá suponer el aprobado en la asignatura, ni en la convocatoria ordinaria ni en la extraordinaria, ya que la puntuación en los diferentes apartados irá ponderada por el número de objetivos conseguido.
La calificación global corresponderá a la suma de las notas alcanzadas en los dos apartados, proyecto y trabajo autónomo, una vez ponderadas por el porcentaje indicado. Todo lo relativo a la evaluación se regirá por la normativa sobre planificación docente y organización de exámenes vigente en la Universidad de Granada.
-
El sistema de calificaciones se expresará mediante calificación numérica de acuerdo con lo establecido en el art. 5 del R. D 1125/2003, de 5 de septiembre, por el que se establece el sistema europeo de créditos y el sistema de calificaciones en las titulaciones universitarias de carácter oficial y validez en el territorio nacional.
Evaluación Extraordinaria
Se hará mediante la entrega de los hitos/objetivos del proyecto en la fecha que se establezca, opcionalmente acompañada de su defensa oral, que en este caso podrá ser obligatoria si se alcanzan los mismos criterios indicados en la convocatoria ordinaria. Alternativamente, se podrá solicitar a los profesores un proyecto específico, diseñado por el profesorado, en el cual sí se podrá alcanzar el 100% de la nota máxima en cada uno de los hitos.
El porcentaje de nota mediante la calificación del proyecto será, como máximo, el 70% de la nota final igual que en la convocatoria ordinaria. Para el 30% restante se calificará de la misma forma que en la convocatoria ordinaria, incluyendo la presentación, originalidad, y asistencia a seminarios y a clase durante el periodo lectivo, autonomía en el aprendizaje, y contribución al aprendizaje del resto de la clase en los diferentes espacios habilitados para ello. En general, son los mismos criterios que en la convocatoria ordinaria.
Evaluación única final
El profesorado planteará en el momento de la aprobación de la solicitud de evaluación única un proyecto que tendrá los mismos objetivos que la evaluación regular, y que habrá que entregar de la misma forma, con entrega final (y defensa opcional y puntuable) durante el período de evaluación única final. Parte de esta evaluación puede ser oral, para que el estudiante explique las decisiones tomadas.
Se hace notar que la única diferencia entre esta evaluación única final y la regular es que el estudiante deberá seguir un proyecto planteado por el profesor (es decir, se evita el envío del objetivo 0). En el resto deberá hacerlo como el resto de los estudiantes, enviando los objetivos del uno hasta el que se establezca como mínimo para aprobar usando el mismo sistema. Como no se requiere ni plazo fijo para entrega (salvo la secuencia) ni ninguna actividad presencial y la evaluación es formativa, esta es la única forma de tratar de la misma forma a todos los estudiantes de la asignatura.
Información adicional
Se usará la forja de código y facilidades adicionales como sitio central de la asignatura en github.com. Los ejercicios de los estudiantes se liberarán como software libre y se hará una introducción a la creación de aplicaciones de software libre y al desarrollo de software colaborativo usando el mismo.
- Enseñanza invertida (Clases teóricas-expositivas) (grupo grande)
- Descripción: Se presentan en la web los objetivos de cada sesión y el material necesario para alcanzarlos. Los estudiantes examinando el material y buscando información por su cuenta, cubren objetivos a su propio ritmo. El profesor y el alumnado resuelve las dudas técnicas o prácticas que surjan.
- Propósito: Transmitir los contenidos de la materia motivando al alumnado a la reflexión, facilitándole el descubrimiento de las relaciones entre diversos conceptos y formarle una mentalidad crítica. La enseñanza invertida favorece el aprendizaje autónomo y auto-administrado y en el primer año, tras las encuestas realizadas, la mayoría de los estudiantes lo han preferido sobre el sistema de clase magistral.
- Contenido en ECTS: 30 horas presenciales (1.2 ECTS)
- Competencias: TI1,TI2,CB3,E4,E6,T2,TI6
- Actividades prácticas (Clases prácticas de laboratorio) (grupo pequeño)
- Descripción: Actividades a través de las cuales se pretende mostrar al alumnado cómo debe actuar a partir de la aplicación de los conocimientos adquiridos. Las prácticas son hitos de un proyecto relacionado con la asignatura y al final de la misma se podrá llevar a cabo una experiencia práctica en un lugar de trabajo real colaborando sobre proyectos propuestos por clientes reales.
- Los hitos del proyecto se entregan a través de GitHub, en un sistema de integración continua que avisa de errores obvios y es previo oa la corrección del profesor. De esta forma el estudiante tiene orientación sobre su aprendizaje antes de enviarlo todo. Una vez corregidos, se pueden volver a enviar con penalización.
- Propósito: Desarrollo en el alumnado de las habilidades instrumentales de la materia.
- Contenido en ECTS: 15 horas presenciales (0.6 ECTS)
- Competencias: TI2,CB3,E4,E6,T2,TI6
- Seminarios (grupo pequeño)
- Descripción: Modalidad organizativa de los procesos de enseñanza y aprendizaje donde tratar en profundidad una temática relacionada con la materia. Incorpora actividades basadas en la indagación, el debate, la reflexión y el intercambio.
- Propósito: Desarrollo en el alumnado de las competencias cognitivas y procedimentales de la materia.
- Contenido en ECTS: 10 horas presenciales (0.4 ECTS)
- Competencias: TI1,CB3
- Actividades no presenciales individuales (Estudio y trabajo autónomo)
- Descripción: 1) Actividades (guiadas y no guiadas) propuestas por el profesor a través de las cuales y de forma individual se profundiza en aspectos concretos de la materia posibilitando al estudiante avanzar en la adquisición de determinados conocimientos y procedimientos de la materia, 2) Estudio individualizado de los contenidos de la materia 3) Actividades evaluativas (informes, exámenes, …)
- Propósito: Favorecer en el estudiante la capacidad para autorregular su aprendizaje, planificándolo, diseñándolo, evaluándolo y adecuándolo a sus especiales condiciones e intereses.
- Contenido en ECTS: 45 horas no presenciales (1.8 ECTS)
- Competencias: CB3,T2
- Actividades no presenciales grupales (Estudio y trabajo en grupo)
- Descripción: Actividades (guiadas y no guiadas) propuestas por el profesor a través de las cuales y de forma grupal se profundiza en aspectos concretos de la materia posibilitando a los estudiantes avanzar en la adquisición de determinados conocimientos y procedimientos de la materia.
- Propósito: Favorecer en los estudiantes la generación e intercambio de ideas, la identificación y análisis de diferentes puntos de vista sobre una temática, la generalización o transferencia de conocimiento y la valoración crítica del mismo.
- Contenido en ECTS: 45 horas no presenciales (1.8 ECTS)
- Competencias: T2, CB3
- Tutorías académicas (grupo pequeño)
- Descripción: manera de organizar los procesos de enseñanza y aprendizaje que se basa en la interacción directa entre el estudiante y el profesor. En el caso de la enseñanza invertida, es imprescindible para adaptar las explicaciones a los requisitos del estudiante. Al principio del curso se concierta una tutoría con todos los estudiantes, para resolver cualquier duda que surja sobre la metodología y el contenido de la asignatura. Adicionalmente, se propone a los estudiantes de cursos pasados que actúen de mentores de estudiantes de cursos actuales, de forma que puedan orientar y ayudar a los estudiantes en los primeros compases de la asignatura.
- Propósito:
- Orientan el trabajo autónomo y grupal del alumnado,
- profundizar en distintos aspectos de la materia y
- orientar la formación académica-integral del estudiante
- Contenido en ECTS: 5 horas presenciales, grupales e individuales (0.2 ECTS)
- Competencias: T2,CB3
Software Libre
git y lenguajes de programación, bibliotecas y herramientas libres.