Última revisión realizada: 26/05/2022

Denominación de la asignatura: Herramientas de Automatización de Despliegues
Postgrado al que pertenece: Máster Universitario en Desarrollo y Operaciones (DevOps).
Créditos ECTS: 6
Cuatrimestre en el que se imparte: Primero
Carácter de la asignatura: Obligatoria
Materia a la que pertenece: Automatización del Ciclo de Vida de las Aplicaciones

Presentación

Una parte muy importante de la cultura DevOps es el convertir los pases a producción en tareas sistemáticas y automatizadas que puedan realizarse de forma sencilla, organizada y sin ninguna clase de fricción por parte del equipo de IT o los desarrolladores. Existen diversas tecnologías que facilitan este objetivo, tecnologías como los contenedores, los softwares de gestión de la configuración, etc.:

  • Necesidad de Sistemas de Gestión de la Configuración
  • Modelos Centralizados
  • Modelos Distribuidos
  • Herramientas de gestión de la configuración
  • Casos prácticos con Chef, Puppet y Ansible (pudiendo emplearse otros análogos en función de los avances tecnológicos disponibles)

Competencias básicas

  • CB6: Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
  • CB7: 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.
  • CB8: 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.
  • CB9: 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.
  • CB10: Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

Competencias generales

  • CG1: Desarrollar las habilidades necesarias para ejercer las funciones profesionales requeridas para el ejercicio de la profesión de DevOps.
  • CG4: Capacidad para analizar adecuadamente todos los procesos actuales de desarrollo para realizar los cambios necesarios a fin de ejecutar un plan de automatización que permita crear una cadena automatizada que integre los procesos de generación, empaquetado, pruebas y despliegue de los desarrollos software.

Competencias específicas

  • CE6: Identificar oportunidades de automatización y mejora dentro de los procesos de desarrollo de software haciendo uso de técnicas agiles y herramientas tanto de colaboración como de automatización.
  • CE7: Utilizar de forma eficiente las herramientas y automatización de despliegues tanto en entornos de nube como de virtualización en entornos públicos, privados e híbridos.

Competencias transversales

  • CT1: Aplicar las nuevas tecnologías como herramientas para el intercambio comunicacional en el desarrollo de procesos de indagación y de aprendizaje.
  • CT2: Desarrollar habilidades de comunicación, para redactar informes y documentos, o realizar eficaces presentaciones de los mismos.

Tema 1. Puppet: Introducción e instalación

  • Introducción y objetivos
  • ¿Qué es Puppet?
  • Lenguaje de configuración y capa de abstracción de recursos
  • Facter y los facts
  • Instalación de Puppet
  • Configuración de Puppet
  • Referencias bibliográficas

Tema 2. Puppet: utilización

  • Introducción y objetivos
  • Archivos de manifiesto (manifest)
  • Módulos
  • Ejemplo de módulo: sudo
  • Instalación de Apache
  • Referencias bibliográficas

Tema 3. Chef: introducción e instalación

  • Introducción y objetivos
  • El framework Chef
  • Elementos de la arquitectura de Chef
  • Entorno de desarrollo Chef
  • Instalación de Apache mediante Chef
  • Chef Supermarket
  • Referencias bibliográficas

Tema 4. Chef: pruebas unitarias y de integración

  • Introducción y objetivos
  • Pruebas unitarias de cookbooks con ChefSpec
  • Pruebas de integración de infraestructura con Test Kitchen
  • Verificación de la ejecución de Chef con Serverspec
  • Referencias bibliográficas

Tema 5. Ansible: introducción e instalación

  • Introducción y objetivos
  • El origen de Ansible
  • Instalación de Ansible
  • Creación de un entorno de pruebas
  • Introducción a los playbooks
  • Referencias bibliográficas

Tema 6. Ansible: inventario

  • Introducción y objetivos
  • El fichero de inventario
  • Opciones de configuración del inventario
  • Registro de variables de inventario
  • Grupos de inventario
  • Un ejemplo de inventario
  • Opciones avanzadas de inventario
  • Referencias bibliográficas

Tema 7. Ansible: instalación de Wordpress

  • Introducción y objetivos
  • Configuración del entorno
  • Instalación de dependencias
  • Tareas y manejadores
  • Descarga de WordPress
  • Backup de la configuración
  • Idempotencia
  • Referencias bibliográficas

Tema 8. Roles de Ansible

  • Introducción y objetivos
  • Ansible Galaxy
  • Estructura de roles
  • Separación del playbook de WordPress
  • Dependencias de roles
  • Creación de roles para distintas plataformas
  • Trucos para escribir roles
  • Módulos en Ansible
  • Referencias bibliográficas

Tema 9. Variables de Ansible

  • Introducción y objetivos
  • Parametrización del rol de WordPress
  • Ubicaciones de variables
  • Recopilación de facts
  • Manipulación de variables
  • Referencias bibliográficas

Las actividades formativas de la asignatura se han elaborado con el objetivo de adaptar el proceso de aprendizaje a las diferentes capacidades, necesidades e intereses de los alumnos.

Las actividades formativas de esta asignatura son las siguientes:

  • Trabajos individuales. Se trata de actividades de diferentes tipos: reflexión, análisis de casos, prácticas, análisis de textos, etc.
  • Trabajos colaborativos. Son actividades grupales en las que tendrás la oportunidad de trabajar con tus compañeros. Durante el desarrollo de la asignatura tendrás toda la información que necesites sobre cómo organizarte para trabajar en equipo.
  • Participación en eventos. Son actividades programadas todas las semanas del cuatrimestre como clases en directo o foros de debate.
Descargar programación

Estas actividades formativas prácticas se completan, por supuesto, con estas otras:

  • Estudio personal
  • Tutorías. Las tutorías se pueden articular a través de diversas herramientas y medios. Durante el desarrollo de la asignatura, el profesor programa tutorías en días concretos para la resolución de dudas de índole estrictamente académico a través de las denominadas “sesiones de consultas”. Como complemento de estas sesiones se dispone también del foro “Pregúntale al profesor de la asignatura” a través del cual se articulan algunas preguntas de alumnos y las correspondientes respuestas en el que se tratan aspectos generales de la asignatura. Por la propia naturaleza de los medios de comunicación empleados, no existen horarios a los que deba ajustarse el alumno.
  • Examen final presencial u online

Las horas de dedicación a cada actividad se detallan en la siguiente tabla:

ACTIVIDADES FORMATIVAS HORAS POR ASIGNATURA % PRESENCIAL
Sesiones presenciales virtuales 15 horas 100%
Recursos didácticos audiovisuales 6 horas 0
Estudio del material básico 62 horas 0
Lectura del material complementario 45 horas 0
Trabajos, casos prácticos y test de evaluación 17 horas 0
Sesiones prácticas de laboratorio virtualn 12 horas 16,7%
Tutorías 16 horas 30% 
Trabajo colaborativo 7 horas 0
Total 180 horas -

Bibliografía complementaria

  • Heap, M. (2016). Ansible: from Beginner to Pro. Apress.
  • Hochstein, L. y Moser R. (2014). Ansible: Up and Running: Automating Configuration Management and Deployment the Easy Way. O'Reilly Media.
  • Marschall, M. (2015). Chef Infrastructure Automation Cookbook, Second Edition. Packt Publishing.
  • Rhett, J. (2015). Learning Puppet 4. O’Reilly.
  • Uphill, T. (2014). Mastering Puppet. Packt Publishing.
  • Waud, E. (2016). Mastering Chef Provisioning. Packt Publishing.

El sistema de calificación se basa en la siguiente escala numérica:

0 - 4, 9 Suspenso (SS)
5,0 - 6,9 Aprobado (AP)
7,0 - 8,9 Notable (NT)
9,0 - 10 Sobresaliente (SB)

La calificación se compone de dos partes principales:

El examen se realiza al final del cuatrimestre y es de carácter PRESENCIAL U ONLINE Y OBLIGATORIO. Supone el 60% de la calificación final y para que la nota obtenida en este examen se sume a la nota final, es obligatorio APROBARLO.

La evaluación continua supone el 40% de la calificación final. Este 40% de la nota final se compone de las calificaciones obtenidas en las diferentes actividades formativas llevadas a cabo durante el cuatrimestre.

Ten en cuenta que la suma de las puntuaciones de las actividades de la evaluación continua permite que realices las que prefieras hasta conseguir el máximo puntuable mencionado. En la programación semanal de la asignatura, se detalla la calificación máxima de cada actividad o evento concreto puntuables.

Sistema de evaluación Ponderación min - max
Participación del estudiante (sesiones, foros, tutorías) 0% - 20%
Trabajos, proyectos y/o casos 10% - 30%
Prácticas de laboratorio virtual 10% - 30%
Test de evaluación 0% - 20%
Examen final 60% - 60%

David Escuin Finol

Formación académica: Doctor en Ingeniería Mecánica e Ingeniero Informático por la Universidad de Zaragoza. Acreditado con la AWS Certified Cloud Practitioner.

Experiencia: Responsable de proyectos I+D+i en el área de tecnologías digitales en ITAINNOVA (Instituto Tecnológico de Aragón) Profesor con ANECA en la Universidad Internacional de La Rioja