Ú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.
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