esen
  • 2017cover Presentacion
  • 1

Cloud Apps: Desarrollo y despliegue de aplicaciones en la nube

INFORMACIÓN, PREINSCRIPCIÓN Y MATRÍCULA
Enseñanzas Propias
Teléfono: 91 488 70 40
Dirección Académica: micael.gallego@urjc.es

Atención al estudiante:    Buzón de Ayuda al Estudiante     Buzón de sugerencias y quejas

más información

Información básica

Presentación

En la actualidad se está popularizando la computación en la nube o cloud computing. Este paradigma de computación ofrece a las organizaciones una plataforma para la publicación de aplicaciones en Internet. Gracias a sus servicios, estas aplicaciones pueden ser más escalables, tolerantes a fallos y se puedan actualizar con mayor frecuencia y menos errores. No obstante, para que se puedan aprovechar de las ventajas de las nuevas plataformas es necesario que las aplicaciones estén diseñadas e implementadas siguiendo una serie de patrones y usando ciertas tecnologías. A estas aplicaciones diseñadas de forma específica para estas nuevas plataformas se las denomina cloud native applications, que se podría traducir como aplicaciones nativas de la nube.

En esta página web encontrarás información detallada del máster: https://www.codeurjc.es/mastercloudapps/

Objetivos

El objetivo del máster es presentar y aplicar las técnicas, herramientas, plataformas y buenas prácticas que permiten el desarrollo y despliegue de aplicaciones de Internet que se aprovechan de las nuevas tendencias ofrecidas por la computación en la nube. A diferencia de otros másteres del sector, el objetivo es cubrir el ciclo de vida completo de desarrollo y mantenimiento de las aplicaciones: metodologías de desarrollo, calidad software, tecnologías de implementación de aplicaciones de Internet, plataformas de computación en la nube, y control del ciclo de integración y despliegue. Por este motivo, el programa del máster se articula en cuatro módulos que cubren todos estos aspectos:

  • Módulo I: Calidad software: Diseño, Arquitectura, Pruebas y XP
  • Módulo II: Servicios web: tecnologías, protocolos, pruebas y arquitecturas
  • Módulo III: Aplicaciones nativas de la nube
  • Módulo IV: DevOps, integración y despliegue continuo

Competencias

Competencias generales:

  • CG1: Capacidad para concebir, redactar, organizar, planificar y desarrollar proyectos en el ámbito de la ingeniería en informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.
  • CG2: Capacidad para definir, evaluar y seleccionar plataformas hardware y software para el desarrollo y la ejecución de sistemas, servicios y aplicaciones informáticas, de acuerdo con los conocimientos adquiridos.
  • CG3: Capacidad para concebir y desarrollar sistemas o arquitecturas informáticas centralizadas o distribuidas integrando hardware, software y redes de acuerdo con los conocimientos adquiridos.
  • CG4: Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas del ámbito del desarrollo y despliegue de aplicaciones software.
  • CG5: Conocimientos para la realización de mediciones, cálculos, valoraciones, tasaciones, peritaciones, estudios, informes, planificación de tareas y otros trabajos análogos de informática, de acuerdo con los conocimientos adquiridos.
  • CG6: Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, técnica, científica o ética.

Competencias específicas:

  • CE1: Capacidad de aplicar metodologías para el desarrollo de software. Especialmente la programación extrema con sus valores, principios y buenas prácticas.
  • CE2: Capacidad de seguir las recomendaciones del código limpio (clean code) y del buen diseño orientado a objetos para producir código de calidad.
  • CE3: Capacidad de diseñar e implementar pruebas de software para guiar el desarrollo de software y para asegurar la calidad del mismo.
  • CE4: Capacidad de mejorar la calidad del código para que pueda ser ampliado.
  • CE5: Capacidad de utilizar de forma efectiva librerías y marcos de trabajo (frameworks) para el desarrollo de aplicaciones de Internet.
  • CE6: Capacidad de diseñar e implementar protocolos de comunicación de aplicaciones de Internet.
  • CE7: Capacidad de elegir el estilo arquitectónico más adecuado para la implementación de aplicaciones de Internet mantenibles y fáciles de probar de forma automatizada.
  • CE8: Capacidad de diseñar, implementar y ejecutar pruebas funcionales y no funcionales de aplicaciones de Internet.
  • CE9: Capacidad de incluir los mecanismos de autenticación y autorización de usuarios más adecuados en las aplicaciones de Internet
  • CE10: Capacidad de utilizar las buenas prácticas para evitar vulnerabilidades y mitigar sus efectos en caso de que sean explotadas.
  • CE12: Capacidad de modelar los datos de una aplicación y sus relaciones usando tecnologías de bases de datos tanto relacionales como no relacionales.
  • CE13: Capacidad de elegir las tecnologías de persistencia más adecuadas en función de las necesidades de la aplicación.
  • CE14: Capacidad de conocer cómo se comporta un sistema persistente distribuido, escalable y tolerante a fallos.
  • CE15: Capacidad de diseñar procesos de actualización de aplicaciones en producción que requieran cambios en la estructura de los datos sin que eso afecte a la prestación del servicio.
  • CE16: Capacidad de conocer las principales tecnologías usadas en el ámbito de la ciencia de datos y qué servicios ofrecen para la implementación de aplicaciones.
  • CE17: Capacidad de evaluar y elegir los servicios de los proveedores de computación en la nube más adecuados para una aplicación de Internet en función de sus necesidades.
  • CE18: Capacidad de hacer uso de tecnologías de infraestructura como código para administrar sistemas informáticos y conocer sus ventajas frente a modelos tradicionales.
  • CE19: Capacidad de usar contenedores para empaquetar y distribuir aplicaciones de Internet.
  • CE20: Capacidad de usar de forma efectiva un sistema de orquestación de contenedores para el despliegue y la gestión de una aplicación de Internet basada en contenedores.
  • CE21: Capacidad de actualizar una aplicación en un orquestador de contenedores de forma progresiva y sin caída de servicio.
  • CE22: Capacidad de diseñar e implementar aplicaciones usando los servicios proporcionados por los proveedores en la nube como correo electrónico, bases de datos, almacenamiento de ficheros, etc.
  • CE23: Capacidad de diseñar, implementar y usar sistemas de observabilidad para la gestión de aplicaciones en producción.
  • CE24: Capacidad de diseñar e implementar aplicaciones para que sean escalables y tolerantes a fallos usando los servicios de replicación y reparto de carga proporcionados por los proveedores en la nube y por los orquestadores de contenedores.
  • CE25: Capacidad de aplicar de forma efectiva una arquitectura basada en microservicios para la implementación de una aplicación de Internet.
  • CE26: Capacidad de diseñar e implementar una aplicación usando las plataformas de funciones como servicio y determinar cuándo son adecuadas frente a otras alternativas.
  • CE27: Capacidad de conocer el conjunto de prácticas DevOps para la automatización de los procesos entre los equipos de desarrollo y de operaciones.
  • CE28: Capacidad de conocer y elegir las diferentes alternativas existentes para implantar un sistema de integración y despliegue continuo.
  • CE29: Capacidad de definir las tareas en los sistemas de integración y despliegue continuo para automatizar el ciclo de vida del código fuente desde que se añade al repositorio de código hasta que se publica en producción.
  • CE30: Capacidad de gestionar los artefactos obtenidos a partir del código fuente a lo largo de su ciclo de vida y en sus diferentes tipos de madurez (release, beta, snapshot, etc).
  • CE31: Capacidad de utilizar de forma efectiva las herramientas y tecnologías disponibles para actualizar un aplicación en producción sin caída de servicio y sin errores.

Más información sobre el máster

Programa

Módulo I - Calidad software: Diseño, Arquitectura, Pruebas y XP

  • Duración: 8 semanas
  • Temario:
    • Diseño y calidad software (2 semanas)
      • Patrones, Conocimiento y Complejidad
      • Software, Disciplinas y Evolución
      • Diseño, Diseño Modular y Diseño Orientado a Objetos
    • Patrones y arquitectura software (2 semanas)
      • Patrones de diseño
      • Patrones creacionales, estructurales y de comportamiento
      • Arquitectura del software
      • Estilo arquitectónico MV*
      • Estilo arquitectónicos ágiles: Hexagonal, Onion, Clean
    • Pruebas software (2 semanas)
      • Metodología de pruebas
      • Diseño de pruebas: caja negra vs caja blanca
      • Pruebas unitarias
      • Dobles en pruebas
    • Programación extrema (2 semanas)
      • Refactoring 
      • Test Driven Development
      • Programación extrema (XP)
      • Scrum
      • Proceso Unificado de Desarrollo (PUD)

Módulo II - Servicios web: tecnologías, protocolos, pruebas y arquitecturas

  • Duración: 10 semanas
  • Temario:
    • Tecnologías y protocolos de servicios web (5 semanas)
      • Introducción a las tecnologías de servicios web
      • Aplicaciones web
      • APIs REST
      • Bases de datos
      • Construcción y despliegue
      • Programación reactiva
      • Protocolos: REST, gRPC, GraphQL y colas
      • Ciberseguridad
      • Gestión de la identidad
      • Vulnerabilidades en servicios web
    • Patrones y arquitecturas de servicios web (1 semana)
      • Introducción
      • Patrones
      • Arquitectura hexagonal y clean
    • Pruebas de servicios web (2 semanas)
      • Introducción
      • Pruebas con Spring y TestContainers
      • Pruebas unitarias en JavaScript
      • Pruebas de APIs REST
      • Consumer driven contract testing
      • Pruebas de aceptación
      • Pruebas de carga
      • Pruebas de interfaz en aplicaciones web
    • Persistencia y análisis de datos (2 semanas)
      • Persistencia relacional
      • Bases de datos multi-modelo
      • Evolución de bases de datos
      • Persistencia no relacional
      • Introducción a la ciencia de datos

Módulo III - Aplicaciones nativas de la nube

  • Duración: 12 semanas
  • Temario:
    • Computación en la nube (3 semanas)
      • Introducción
      • Amazon Web Services
      • Servicios en la nube
      • Plataforma como Servicio
      • Aplicaciones nativas de la nube
      • Serverless
      • Operaciones
      • Seguridad y privacidad en la nube
    • Contenedores y orquestadores (4 semanas)
      • Contenedores Docker
      • Docker Compose
      • Seguridad en Docker
      • Kubernetes
      • Seguridad en Kubernetes
      • Aplicaciones Kubernetes con Helm
      • Herramientas de desarrollo con Kubernetes
      • Escalabilidad y tolerancia a fallos
    • Microservicios (5 semanas)
      • Introducción a los microservicios
      • Arquitecturas: DDD, CQRS y event sourcing
      • Patrones de microservicios
      • Comunicación entre servicios
      • Transacciones con sagas
      • API externa
      • De monolito a microservicios

Módulo IV - DevOps, integración y despliegue continuo 

  • Duración: 6 semanas
  • Temario: 
    • Repositorios y modelos de desarrollo (2 semanas)
      • Ciclo de vida del software
      • Control de versiones Git
      • Modelos de desarrollo: Gitflow y TBD
      • Desarrollo con monorepo
    • Integración y entrega continua (2 semanas)
      • Introducción
      • Servicios de CI: Jenkins, Gitlab y GitHub Actions
      • Análisis estático de código
      • Gestión de artefactos
    • Despliegue continuo (2 semanas)
      • Introducción
      • Parallel Changes
      • Despliegue incremental: Blue-Green y Canary
      • Herramientas de despliegue continuo
      • Pruebas en producción

Trabajo de Fin de Máster

Después de cursar todas las asignaturas hay que realizar un Trabajo de Fin de Máster (TFM). En este trabajo se aplican y desarrollan los conocimientos aprendidos. No se trata de una pequeño proyecto "de juguete", es más bien la excusa perfecta para profundizar en un tema de interés para el alumno. Los profesores proponen una serie de temas, pero los alumnos también pueden proponer proyectos que les motiven. Por ejemplo, aquella tecnología que nunca tienes tiempo de estudiar en profundidad, implementar una arquitectura concreta que tienes en la cabeza para algo que estás haciendo en el trabajo, comparar diferenes alternativas, etc. Los Trabajos de Fin de Máster pueden realizarse de forma individual o en grupos de alumnos, lo que permite llegar más allá en sus objetivos.

Destinatarios

Este máster está orientado tanto a recién graduados como a profesionales del área de las Tecnologías de la Información y las Comunicaciones (TIC) que deseen completar su formación en aspectos relativos al desarrollo y despliegue de aplicaciones en las nuevas plataformas ofrecidas por la computación en la nube.

  • Recién graduados: Egresados de titulaciones relacionadas con la informática, las telecomunicaciones y en general con las TIC. La formación recibida por los alumnos en estas titulaciones les permite adquirir una base de conocimientos y habilidades en desarrollo y despliegue software, pero en la mayoría de las ocasiones no se profundiza con el nivel suficiente como para que los alumnos puedan integrarse en un entorno profesional sin un importante periodo de aprendizaje. El objetivo del máster es que estos alumnos complementen la formación recibida en los estudios de grado de forma que dominen las técnicas y herramientas para la implementación y despliegue de aplicaciones en plataformas en la nube.
  • Profesionales del sector: Existen muchos profesionales en el sector de las TIC que desarrollan su trabajo con tecnologías previas a la aparición de la computación en la nube. La velocidad con la que aparecen nuevas técnicas y tecnologías hace difícil que las empresas puedan seguir el ritmo y se mantengan constantemente actualizadas. El objetivo del máster es permitir que estos profesionales con experiencia puedan actualizar sus conocimientos para aplicarlos en sus empresas o para mejorar su proyección profesional y avanzar en su carrera.

Requisitos de acceso

Disponer de una titulación universitaria relacionada con la informática o el desarrollo de software o tener experiencia profesional demostrable en el sector del desarrollo software. La dirección del máster determinará si la experiencia profesional indicada por el solicitante es adecuada para permitir el acceso a los estudios.

Los alumnos del máster que no tengan titulación universitaria de ningún tipo no podrán obtener el título de Máster expedido por la URJC. En su lugar, se les emitirá un certificado de aprovechamiento en el que se indiquen todas las características de los estudios cursados (horas, programa, etc).

Para cursar el máster es necesario tener, al menos, nociones básicas de las siguientes materias:

  • Línea de comandos
  • Lenguaje de programación Java
  • Lenguaje de programación JavaScript
  • Sistema de control de versiones git

Nº de Plazas: 75

Dirección Académica y Profesorado

Dirección académica

La dirección del máster está formada por los siguientes miembros:

  • Director: Micael Gallego Carrillo. Profesor Titular de la ETSII con amplia experiencia en la formación y a nivel profesional en el desarrollo y despliegue de servicios en Internet en la nube.
  • Subdirector de Ordenación Docente: Francisco Gortázar Bellas. Profesor Titular de la ETSII con amplia experiencia en la formación y a nivel profesional en el desarrollo y despliegue de servicios en Internet en la nube. Coordinador de la Oficina de Software Libre de la URJC.
  • Subdirector Académico:Luis Fernández Muñoz. Profesor Titular de Escuela en la ETSISI de la UPM. Amplia experiencia en formación en arquitecturas y diseño software.
  • Secretaría académica:María del Soto Montalvo Herranz. Profesora Contratada Doctor en la ETSII. Amplia experiencia en gestión universitaria. Ocupó el puesto de Subdirectora de Ordenación Docente de la ETSII.

Profesores con una amplia trayectoria investigadora y profesional

Son profesores con el grado de doctor con amplia experiencia docente y de investigación. Estos profesores son los responsables de la gran mayoría de las tareas docentes. Los profesores pertenecientes a este grupo son:

  • Micael Gallego Carrillo
  • Francisco Gortázar Bellas
  • Luis Fernández Muñoz
  • José Manuel Colmenar Verdugo
  • Marta Beltrán Pardo
  • José Felipe Ortega Soto

Profesores investigadores predoctorales de apoyo técnico

Dada la velocidad a la que evoluciona la materia objeto de este máster, y que gran parte de los conocimientos adquiridos requieren del uso de complejas herramientas y tecnologías, se ha considerado conveniente contar en el equipo docente con profesores con amplia experiencia práctica en el uso de estas herramientas. Por este motivo, parte de la docencia es impartida por investigadores predoctorales y profesionales que desarrollan su investigación y tareas técnicas en los ámbitos en los que impartirán docencia en el máster. Los profesores pertenecientes a este grupo son:

  • Michel Maes Bermejo
  • Oscar Soto Sánchez

Duración y desarrollo

MASTER CLOUD APPS: DESARROLLO Y DESPLIEGUE DE APLICACIONES EN LA NUBE

El Master está constituido por 4 módulos independientes que se realizan como Cursos Superiores Universitarios, se pueden realizar en años diferentes. Justificando la realización de los 5 módulos y el TFM se obtiene el título de Máster.

Para los alumnos sin Titulación Universitaria con experiencia laboral acreditada en puestos de TI, la superación de los 4 Módulos y el TFM les dará derecho a un Diploma de Extensión Universitaria con el mismo nombre.

Con la superación de cada Curso Superior Universitario el alumno puede obtener el diploma correspondiente al curso finalizado.

Modalidad: online

Nº de créditos: 60

Horas presenciales: Ninguna

Lugar de impartición: Aula Virtual

Horario: Martes y Miércoles de 17: 30 a 20:00

     Viernes de 15:30 a 18:30

Fecha de inicio de las asignaturas: octubre de 2021

Fecha de fin de las asignaturas: julio de 2022

Fecha de entrega de TFM: septiembre o diciembre del 2022

La metodología docente consiste en clases en directo por videoconferencia con una duración de 8 horas semanales repartidas en los siguientes horarios: Martes y Miércoles de 17:30 a 20:00 y Viernes de 15:30 a 18:30. Aunque la participación en las clases en directo es recomendable, no es obligatoria. Las clases quedarán grabadas para un visionado posterior. Las sesiones de videoconferencia comienzan en Octubre de 2021 y finalizan a primeros de Julio de 2022. En Navidades, Semana Santa y el puente de Diciembre no habrá clase.


Estructura de los módulos

Módulo

Créditos

Duración

Fecha de inicio

Módulo I: Calidad software: Diseño, Arquitectura, Pruebas y XP

8

8 semanas

Octubre 2021

Módulo II: Servicios web: tecnologías, protocolos, pruebas y arquitecturas

10

10 semanas

Noviembre 2021

Módulo III: Aplicaciones nativas de la nube

12

12 semanas

Marzo 2022

Módulo IV: DevOps, integración y despliegue continuo

6

6 semanas

Junio 2022

Trabajo de Fin de Máster (TFM)

24

8 semanas

Julio 2022

Reserva de plaza y matrícula

MASTER CLOUD APPS: DESARROLLO Y DESPLIEGUE DE APLICACIONES EN LA NUBE

Plazo de preinscripción: desde el 23 de junio hasta el 5 de septiembre de 2021 (del Máster completo y del Módulo I).

Para el resto de módulos consultar con la dirección del máster (micael.gallego@urjc.es).

Plazo de matrícula: Del 9 al 15 de septiembre de 2021

Posibilidad de beca (si procede): No

Preinscripción: 500€ para el Máster completo. 250€ para un módulo independiente.

Esta cantidad está incluida en el coste total del curso y se devolverá en el caso de no ser admitida su solicitud académica. Si una vez admitida la solicitud del alumno no formalizara la matrícula, no se devolverá la cantidad depositada en concepto de preinscripción. El inicio del curso queda condicionado al número mínimo de alumnos matriculados.

Precio de título:

Formación

Precio

Máster en Cloud Apps completo:

3.550€

Módulo I: Calidad software: Diseño, Arquitectura, Pruebas y XP

960€

Módulo II: Servicios web: tecnologías, protocolos, pruebas y arquitecturas

1200€

Módulo III: Aplicaciones nativas de la nube

1440€

Módulo IV: DevOps, integración y despliegue continuo

720€

Documentación a adjuntar, formas y lugar de entrega

Los/as solicitantes presentarán toda la documentación escaneada, en los formatos permitidos a través de la aplicación telemática de autopreinscripción a la hora de realizar la solicitud de admisión en los títulos propios. Deberán adjuntar obligatoriamente en su solicitud la declaración de responsable de veracidad de los datos aportados en formato digital.

En cualquier momento, tanto la Dirección del programa como el Servicio de Enseñanzas Propias podrán solicitar a los/as solicitantes, la presentación de dicha documentación compulsada/cotejada a través del Registro General, situado en el Campus de Móstoles, o en cualquiera de los registros auxiliares situados en los diferentes Campus de la Universidad Rey Juan Carlos, o enviándolo a través de Correo Certificado a: Universidad Rey Juan Carlos. Registro General. Avda. Tulipán s/n. 28933. Móstoles. Madrid

El/la alumno/a es responsable de la veracidad y corrección de los datos facilitados, exonerando a la Universidad Rey Juan Carlos de cualquier responsabilidad y garantizando y respondiendo de su exactitud, vigencia y autenticidad.

Documentación requerida:

Los/as estudiantes con titulación obtenida en una universidad española o una Institución de Educación Superior perteneciente a otro Estado integrante del Espacio Europeo de Educación Superior que faculte en el mismo para el acceso a enseñanzas de títulos propios de postgrado deberán presentar la siguiente documentación:

  • Documento Nacional de Identidad o equivalente
  • Título Universitario de los estudios que le dan acceso al postgrado solicitado.
  • Currículum Vitae
  • Declaración responsable de veracidad de los datos aportados en formato digital
  • Cualquier otro documento que exija el Director del Título Propio específicamente para su aceptación

Los/as estudiantes con titulación extranjera deberán presentar la siguiente documentación:

  • Pasaporte o Tarjeta de Residencia
  • Título de Educación Superior extranjero (Graduado, Licenciado, Arquitecto, Ingeniero Doctor...) que den acceso a estudios de títulos propios de postgrado.
  • Certificado que acredite que los estudios realizados dan acceso a un Postgrado Oficial en su país de origen, expedido por la Universidad de origen
  • Currículum Vitae
  • Declaración de responsable de veracidad de los datos aportados en formato digital
  • Cualquier otro documento que exija el Director del Título Propio específicamente para su aceptación

A los/as solicitantes con estudios cursados en Centros Universitarios extranjeros se les podrá solicitar en cualquier momento un certificado de verificación de estos estudios y centros, expedido por una Institución autorizada.

Toda la documentación aportada deberá estar legalizada conforme a la legislación española y traducida por traductor oficial