Denominación de la asignatura |
Contenedores |
Postgrado al que pertenece |
Máster en DevOps, Cloud Computing y Automatización de Producción de Software |
Créditos ECTS |
6 |
Cuatrimestre en el que se imparte |
Segundo cuatrimestre |
Carácter de la asignatura | Obligatoria |
Los contenedores son una abstracción en la capa de aplicación que agrupa código y dependencias juntos. Múltiples contenedores pueden ejecutarse en la misma máquina y compartir el kernel del sistema operativo con otros contenedores, cada uno ejecutándose como procesos aislados en el espacio de usuario. Los contenedores ocupan menos espacio que las máquinas virtuales (las imágenes de contenedores suelen tener decenas de MB de tamaño) y se inician casi al instante.
Una imagen de contenedor es un paquete liviano, independiente y ejecutable de una pieza de software que incluye todo lo necesario para ejecutarse: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema, configuración. Disponible para aplicaciones basadas en Linux y Windows, el software en el contenedor siempre funcionará igual, independientemente del entorno. Los contenedores aíslan el software de su entorno, por ejemplo, las diferencias entre los entornos de desarrollo y staging y ayudan a reducir los conflictos entre equipos que ejecutan diferentes programas en la misma infraestructura.
Por su parte, las máquinas virtuales (VM) son una abstracción del hardware físico que convierte a un servidor en muchos servidores. El hipervisor permite que múltiples máquinas virtuales se ejecuten en una sola máquina. Cada VM incluye una copia completa de un sistema operativo, una o más aplicaciones, binarios y bibliotecas necesarias, ocupando decenas de GB, lo que hace que las VM puedan ser algo lentas para arrancar.
En esta asignatura conoceremos más a fondo la arquitectura y características de los contenedores, sus ventajas y desventajas frente a las VM y los escenarios más favorables para su adopción.
Tema 1. Contenedores vs. máquinas virtuales
Introducción
Contenedores y máquinas virtuales juntos
¿Plano físico o virtual?
Conclusiones
Tema 2. Docker Containers
Introducción a Docker
Instalación de Docker en Ubuntu 14.04; CentOS 7; Raspberry Pi y OS X
Uso de Docker en Windows
Uso de Supervisor para ejecutar WordPress en un solo contenedor y ejecución de un blog de WordPress utilizando dos contenedores vinculados
Copia de seguridad de una base de datos y compartición de datos entre contenedores
Creación de una imagen Docker con un archivo Docker
Escritura de un primer archivo Docker, empaquetado de una aplicación Flask dentro de un contenedor
Optimización de Docker siguiendo las prácticas recomendadas (best practices)
Actualización de imágenes con etiquetas y migración de Vagrant a Docker con Docker Provider
Publicación de imágenes en Docker Hub
Configuración de una compilación automatizada en Docker Hub para CI/CD
Uso de Conduit para el despliegue continuo
Conclusiones
Tema 3. Kubernetes
Introducción
Capacidades mejoradas proporcionadas por Kubernetes
Arquitectura de Kubernetes
Conclusiones
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:
En la programación semanal puedes consultar cuáles son las actividades concretas que tienes que realizar en esta asignatura.
Estas actividades formativas prácticas se completan, por supuesto, con estas otras:
Bibliografía básica
Los textos necesarios para el estudio de la asignatura han sido elaborados por la UNIR y están disponibles en formato digital para consulta, descarga e impresión en el aula virtual.
Bibliografía complementaria
Goasguen, S. (2017). Kubernetes Cookbook. O'Reilly.
Hightower, K. (2016). Kubernetes: Up and Running: Dive into the Future of Infrastructure. O'Reilly.
Matthias, K. & Kane, S. (2015). Docker: Up & Running: Shipping Reliable Containers in Production. O’Reilly Media.
Mouat, A. (2015). Using Docker: Developing and Deploying Software with Containers. O'Reilly Media.
Raj, P., Chelladhurai, J. S., Singh, V., Holla, S. & Hane, O. (2016). Docker: Creating Structured Containers. Packt Publishing.
Smith, J. & Nair, R. (2005). Virtual Machines: Versatile Platforms for Systems and Processes. Morgan Kaufmann.
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 evaluación continua supone el 100% de la calificación final de la asignatura. Este 100% de la nota final se compone de las calificaciones obtenidas en las diferentes actividades formativas llevadas a cabo durante la asignatura.
En la programación semanal de la asignatura, se detalla la calificación máxima de cada actividad o evento concreto puntuables.
Fernando López Hernández
Formación
Doctor en Ing. Informática y Telecomunicación. Actualmente trabaja como profesor asociado a tiempo completo en UNIR.
Experiencia
Director y Coordinador Académico del Máster en Aplicaciones para Móviles de UNIR.
Coordinador Académico del Experto en Robótica. Profesor en el Grado de Ingeniería Informática (Informática Gráfica y Visualización, Algebra, Algoritmia y Complejidad), Grado de Diseño digital (Imagen e Imagen en Movimiento) y Máster de Aplicaciones Móviles (Objective-C y Tecnologías iOS). Previamente trabajó como investigador sénior postdoctoral en UNIR. Antes de unirse a UNIR trabajó como investigador predoctoral y postdoctoral en el Video Processing and Understanding Lab (VPU Lab) de la Universidad Autónoma de Madrid.
Líneas de investigación
Multimedia, gráficos, procesamiento de imagen y vídeo, lenguajes de programación, desarrollo de aplicaciones móviles.
Obviamente, al tratarse de formación online puedes organizar tu tiempo de estudio como desees, siempre y cuando vayas cumpliendo las fechas de entrega de actividades, trabajos y exámenes. Nosotros, para ayudarte, te proponemos los siguientes pasos:
Ten en cuenta estos consejos…
|