• 2017cover Present
  • 1

Cloud Apps: Development and deployment of applications in the cloud

INFORMATION, PRE-REGISTRATION AND REGISTRATION
Own Teachings
Telephone: 91 488 70 40
Academic direction:

Student attention:    Student Help Box     Suggestions and complaints box

more information

Basic Information

Presentation

Cloud computing is currently becoming popular. This computing paradigm offers organizations a platform for publishing applications on the Internet. Thanks to its services, these applications can be more scalable, fault-tolerant and can be updated more frequently and with fewer errors. However, in order to take advantage of the new platforms, applications must be designed and implemented following a series of patterns and using certain technologies. These applications designed specifically for these new platforms are called cloud native applications, which could be translated as cloud native applications.

On this website you will find detailed information about the master: https://www.codeurjc.es/mastercloudapps/

Objectives

The objective of the master's degree is to present and apply the techniques, tools, platforms and good practices that allow the development and deployment of Internet applications that take advantage of the new trends offered by cloud computing. Unlike other master's degrees in the sector, the objective is to cover the complete life cycle of application development and maintenance: development methodologies, software quality, Internet application implementation technologies, cloud computing platforms, and control of the integration and deployment cycle. For this reason, the master's program is divided into four modules that cover all these aspects:

  • Module I: Software Quality: Design, Architecture, Testing and XP
  • Module II: Web services: technologies, protocols, tests and architectures
  • Module III: Cloud Native Applications
  • Module IV: DevOps, integration and continuous deployment

Competences

General skills:

  • CG1: Ability to conceive, write, organize, plan and develop projects in the field of computer engineering whose purpose is the conception, development or exploitation of computer systems, services and applications.
  • CG2: Ability to define, evaluate and select hardware and software platforms for the development and execution of computer systems, services and applications, in accordance with the knowledge acquired.
  • CG3: Ability to conceive and develop centralized or distributed computing systems or architectures integrating hardware, software and networks in accordance with the knowledge acquired.
  • CG4: Ability to solve problems with initiative, decision making, autonomy and creativity. Ability to know how to communicate and transmit knowledge, skills and abilities in the field of development and deployment of software applications.
  • CG5: Knowledge to carry out measurements, calculations, assessments, appraisals, expert reports, studies, reports, task planning and other similar computer work, in accordance with the knowledge acquired.
  • CG6: That students have the ability to gather and interpret relevant data to make judgments that include a reflection on relevant issues of a social, technical, scientific or ethical nature.

Specific skills:

  • CE1: Ability to apply methodologies for software development. Especially extreme programming with its values, principles and good practices.
  • CE2: Ability to follow the recommendations of the clean code (clean code) and good object-oriented design to produce quality code.
  • CE3: Ability to design and implement software tests to guide software development and to ensure its quality.
  • CE4: Ability to improve the quality of the code so that it can be extended.
  • CE5: Ability to effectively use libraries and frameworks (frameworks) for the development of Internet applications.
  • CE6: Ability to design and implement communication protocols for Internet applications.
  • CE7: ​​Ability to choose the most appropriate architectural style for the implementation of Internet applications that are maintainable and easy to test in an automated way.
  • CE8: Ability to design, implement and execute functional and non-functional tests of Internet applications.
  • CE9: Ability to include the most appropriate user authentication and authorization mechanisms in Internet applications
  • CE10: Ability to use good practices to avoid vulnerabilities and mitigate their effects if they are exploited.
  • CE12: Ability to model the data of an application and its relationships using both relational and non-relational database technologies.
  • CE13: Ability to choose the most appropriate persistence technologies based on the needs of the application.
  • CE14: Ability to know how a distributed, scalable and fault-tolerant persistent system behaves.
  • CE15: Ability to design update processes for applications in production that require changes in the structure of the data without affecting the provision of the service.
  • CE16: Ability to know the main technologies used in the field of data science and what services they offer for the implementation of applications.
  • CE17: Ability to evaluate and choose the services of the most suitable cloud computing providers for an Internet application based on their needs.
  • CE18: Ability to make use of infrastructure technologies as code to manage computer systems and learn their advantages over traditional models.
  • CE19: Ability to use containers to package and distribute Internet applications.
  • CE20: Ability to effectively use a container orchestration system for the deployment and management of an Internet application based on containers.
  • CE21: Ability to update an application in a container orchestrator progressively and without service failure.
  • CE22: Ability to design and implement applications using the services provided by cloud providers such as email, databases, file storage, etc.
  • CE23: Ability to design, implement and use observability systems for the management of applications in production.
  • CE24: Ability to design and implement applications to be scalable and fault-tolerant using replication and load sharing services provided by cloud providers and container orchestrators.
  • CE25: Ability to effectively apply an architecture based on microservices for the implementation of an Internet application.
  • CE26: Ability to design and implement an application using function platforms as a service and determine when they are appropriate compared to other alternatives.
  • CE27: Ability to know the set of DevOps practices for the automation of processes between the development and operations teams.
  • CE28: Ability to know and choose the different existing alternatives to implement a continuous integration and deployment system.
  • CE29: Ability to define the tasks in the continuous integration and deployment systems to automate the life cycle of the source code from the time it is added to the code repository until it is published in production.
  • CE30: Ability to manage the artifacts obtained from the source code throughout its life cycle and in its different types of maturity (release, beta, snapshot, etc).
  • CE31: Ability to effectively use the available tools and technologies to update a production application without service failure and without errors.

More information about the master

SCHEDULE

Module I - Software Quality: Design, Architecture, Testing and XP

  • Duration: 8 weeks
  • Agenda:
    • Design and software quality (2 weeks)
      • Patterns, Knowledge and Complexity
      • Software, Disciplines and Evolution
      • Design, Modular Design and Object Oriented Design
    • Patterns and software architecture (2 weeks)
      • Design patterns
      • Creational, structural and behavioral patterns
      • software architecture
      • MV Architectural Style*
      • Agile Architectural Styles: Hexagonal, Onion, Clean
    • Software testing (2 weeks)
      • Test methodology
      • Test design: black box vs white box
      • Unit tests
      • doubles in tests
    • Extreme Programming (2 weeks)
      • refactoring 
      • Test Driven Development
      • Extreme Programming (XP)
      • Scrum
      • Unified Development Process (PUD)

Module II - Web services: technologies, protocols, tests and architectures

  • Duration: 10 weeks
  • Agenda:
    • Web services technologies and protocols (5 weeks)
      • Introduction to web services technologies
      • Web Applications
      • REST APIs
      • Databases
      • Construction and deployment
      • reactive programming
      • Protocols: REST, gRPC, GraphQL and tails
      • Cybersecurity
      • identity management
      • Vulnerabilities in web services
    • Web Services Patterns and Architectures (1 week)
      • Introduction
      • Patterns
      • Hexagonal and clean architecture
    • Web Services Trials (2 weeks)
      • Introduction
      • Testing with Spring and TestContainers
      • REST API testing
      • Consumer driven contract testing
      • Acceptance Tests
      • Load tests
      • Interface tests in web applications
    • Persistence and data analysis (2 weeks)
      • relational persistence
      • Multi-model databases
      • Database evolution
      • non-relational persistence
      • Introduction to data science

Module III - Cloud Native Applications

  • Duration: 12 weeks
  • Agenda:
    • Cloud computing (3 weeks)
      • Introduction
      • Amazon Web Services
      • Cloud services
      • Platform as a Service
      • Cloud native applications
      • Serverless
      • Operations
      • Security and privacy in the cloud
    • Containers and Orchestrators (4 weeks)
      • Docker containers
      • Docker Compose
      • Security in Docker
      • Kubernetes
      • Security in Kubernetes
      • Kubernetes Applications with Helm
      • Development tools with Kubernetes
      • Scalability and fault tolerance
    • Microservices (5 weeks)
      • Introduction to microservices
      • Architectures: DDD, CQRS and event sourcing
      • Microservice patterns
      • Communication between services
      • transactions with sagas
      • external API
      • From monolith to microservices

Module IV - DevOps, continuous integration and deployment 

  • Duration: 6 weeks
  • Agenda: 
    • Repositories and development models (2 weeks)
      • software life cycle
      • Git version control
      • Development models: Gitflow and TBD
      • development with monorepo
    • Integration and continuous delivery (2 weeks)
      • Introduction
      • CI Services: GitHub Actions and Jenkins
      • Static code analysis
      • artifact management
    • Continuous deployment (2 weeks)
      • Introduction
      • Parallel Changes
      • Incremental deployment: Blue-Green and Canary
      • Continuous deployment tools
      • Tests in production

Master's Final Project

After completing all the subjects, a Master's Thesis (TFM) must be completed. In this work, the knowledge learned is applied and developed. It is not a small "toy" project, it is rather the perfect excuse to delve into a topic of interest to the student. Teachers propose a series of topics, but students can also propose projects that motivate them. For example, that technology that you never have time to study in depth, implement a specific architecture that you have in mind for something you are doing at work, compare different alternatives, etc. The Master's Thesis can be carried out individually or in groups of students, which allows them to go further in their objectives.

Recipients

This master's degree is aimed at both recent graduates and professionals in the area of ​​Information and Communication Technologies (ICT) who wish to complete their training in aspects related to the development and deployment of applications on the new platforms offered by cloud computing. .

  • Recent graduates: Graduates of degrees related to computing, telecommunications and ICT in general. The training received by students in these degrees allows them to acquire a base of knowledge and skills in software development and deployment, but in most cases it is not deep enough for students to integrate into a professional environment without an important learning period. The objective of the master's degree is for these students to complement the training received in the degree studies so that they master the techniques and tools for the implementation and deployment of applications on cloud platforms.
  • Industry professionals: There are many professionals in the ICT sector who carry out their work with technologies prior to the appearance of cloud computing. The speed with which new techniques and technologies appear makes it difficult for companies to keep up and stay constantly updated. The objective of the master's degree is to allow these experienced professionals to update their knowledge to apply it in their companies or to improve their professional prospects and advance in their careers.

access requirements

Have a university degree related to computer science or software development or have demonstrable professional experience in the software development sector. The direction of the master's degree will determine if the professional experience indicated by the applicant is adequate to allow access to the studies.

Master's students who do not have a university degree of any kind will not be able to obtain the Master's degree issued by the URJC. Instead, they will be issued a certificate of completion indicating all the characteristics of the studies completed (hours, program, etc.).

To take the master's degree it is necessary to have, at least, basic notions of the following subjects:

  • Command line
  • Java programming language
  • JavaScript programming language
  • git version control system

No. of Places: 75

Academic Management and Faculty

Academic direction

The management of the master is made up of the following members:

  • Director:  Francisco Gortazar Bellas. Professor of the ETSII with extensive experience in training and at a professional level in the development and deployment of Internet services in the cloud. Coordinator of the Free Software Office of the URJC.
  • Deputy Director of Teaching Organization: Miguel Gallego Carrillo. Professor of the ETSII with extensive experience in training and at a professional level in the development and deployment of Internet services in the cloud.
  • Academic subdirector:Luis Fernandez Munoz. School Professor at the ETSISI of the UPM. He has extensive experience in training in architectures and software design.
  • Academic secretary:Maria del Soto Montalvo Herranz. Hired Professor Doctor at the ETSII. She has extensive experience in university management. She held the position of Deputy Director of Teaching Organization of the ETSII.

Professors with extensive research and professional experience

They are professors with a doctorate degree with extensive teaching and research experience. These teachers are responsible for the vast majority of teaching tasks. The teachers belonging to this group are:

  • Michael Gallego Carrillo
  • Francisco Gortazar Bellas
  • Luis Fernandez Munoz
  • Jose Manuel Colmenar Verdugo
  • Marta Beltran Pardo
  • Jose Felipe Ortega Soto

Technical support predoctoral research professors

Given the speed at which the subject matter of this master's degree evolves, and that a large part of the knowledge acquired requires the use of complex tools and technologies, it has been considered convenient to have professors with extensive practical experience in the use of these tools. For this reason, part of the teaching is given by predoctoral researchers and professionals who carry out their research and technical tasks in the areas in which they will teach in the master's degree. The teachers belonging to this group are:

  • Michel Maes Bermejo
  • Oscar Soto Sanchez

Duration and development

MASTER CLOUD APPS: DEVELOPMENT AND DEPLOYMENT OF APPLICATIONS IN THE CLOUD

The Master is made up of 4 independent modules that are carried out as Higher University Courses, they can be carried out in different years. Justifying the completion of the 5 modules and the TFM, the title of Master is obtained.

For students without a University Degree with accredited work experience in IT positions, passing the 4 Modules and the TFM will entitle them to a University Extension Diploma with the same name.

With the passing of each Higher University Course the student can obtain the diploma corresponding to the completed course.

Modality: online

Number of credits: 60

Contact hours: None

Place of delivery: Virtual Classroom

Hours: Tuesday and Wednesday from 17:30 to 20:00

     Friday from 15:30 a.m. to 18:30 a.m.

Course start date: 27th September 2022

End date of the subjects: July 3, 2023

TFM delivery date: September or December 2023

The teaching methodology consists of live classes by videoconference with a duration of 8 hours per week spread over the following times: Tuesday and Wednesday from 17:30 p.m. to 20:00 p.m. and Friday from 15:30 p.m. to 18:30 p.m. Although participation in live classes is recommended, it is not required. Classes will be recorded for later viewing. The videoconference sessions begin in October 2022 and end at the beginning of July 2023. At Christmas, Easter and the December long weekend there will be no class.


Module structure

Module

Credits

Duration

Start date

Module I: Software quality: Design, Architecture, Tests and XP

8

8 weeks

27th September 2022

Module II: Web services: technologies, protocols, tests and architectures

10

10 weeks

22 of November 2022

Module III: Cloud native applications

12

12 weeks

February 21th 2023

Module IV: DevOps, continuous integration and deployment

6

6 weeks

May 23th 2023

Master's Thesis (TFM)

24

8 weeks

July 2023

Reservation of place and enrollment

MASTER CLOUD APPS: DEVELOPMENT AND DEPLOYMENT OF APPLICATIONS IN THE CLOUD

Pre-registration period: from August 15 to September 9, 2022 (for the full Master and Module I).

Enrollment deadline: September 12-19, 2022

For the rest of the modules:

Module I : Software quality: Design, Architecture, Tests and Xp.

  • Course start: September 27, 2022
  • Pre-registration period: August 15, 2022 – September 9, 2022
  • Registration period: September 12, 2022 -September 19, 2022

Module II: Web services: technologies, protocols, tests and architectures.

  • Course start: November 22, 2022
  • Pre-registration period: October 25, 2022 - November 14, 2022
  • Registration period: November 15, 2022 - November 18, 2022

Module III: Cloud-Native Applications

  • Course start: February 21, 2023
  • Pre-registration period: January 23, 2023 - February 13, 2023
  • Enrollment period: February 14, 2023 - February 17, 2023

Module IV: DevOps, continuous integration and deployment

  • Course start: May 23, 2023
  • Pre-registration period: April 24, 2023 - May 15, 2023
  • Registration period: May 16, 2023 - May 19, 2023

Possibility of scholarship (if applicable): No

Pre-registration: €500 for the full Master.

This amount is included in the total cost of the course and will be returned if your academic request is not accepted. If, once the student's application has been admitted, the enrollment is not formalized, the amount deposited for pre-enrolment will not be returned. The start of the course is conditioned to the minimum number of students enrolled.

Title price:

Professional development

Price range

Complete Master in Cloud Apps:

€3.550

Module I: Software quality: Design, Architecture, Tests and XP

€960

Module II: Web services: technologies, protocols, tests and architectures

€1200

Module III: Cloud native applications

€1440

Module IV: DevOps, continuous integration and deployment

€720

Documentation to attach, forms and place of delivery

the applicants they will present all the scanned documentation, in the formats allowed through the telematic self-registration application at the time of applying for admission to own degrees. They must compulsorily attach to their request the declaration of the person responsible for the veracity of the data provided in digital format.

At any time, both the Program Management and the Own Teaching Service may request the applicants to submit said certified/collated documentation through the General Registry, located on the Móstoles Campus, or in any of the registries assistants located in the different campuses of the Rey Juan Carlos University, or by sending it through Certified Mail to: Rey Juan Carlos University. General Registry. Avda. Tulipán s/n. 28933. Mostoles. Madrid

The student is responsible for the veracity and correctness of the data provided, exonerating the Rey Juan Carlos University from any responsibility and guaranteeing and being responsible for its accuracy, validity and authenticity.

Required documentation:

Students with a degree obtained from a Spanish university or a Higher Education Institution belonging to another Member State of the European Higher Education Area that authorizes access to own postgraduate degrees must present the following documentation:

  • National Identity Document or equivalent
  • University degree of the studies that give access to the requested postgraduate degree.
  • Curriculum vitae
  • Responsible declaration of veracity of the data provided in digital format
  • Any other document that the Director of the Own Title specifically requires for its acceptance

Students with a foreign degree must present the following documentation:

  • Passport or Residence Card
  • Foreign Higher Education Degree (Graduate, Graduate, Architect, Engineer Doctor...) that give access to own postgraduate degree studies.
  • Certificate certifying that the studies carried out give access to an Official Postgraduate Degree in your country of origin, issued by the University of origin
  • Curriculum vitae
  • Declaration of the person responsible for the veracity of the data provided in digital format
  • Any other document that the Director of the Own Title specifically requires for its acceptance

Applicants with studies completed in foreign University Centers may be requested at any time a certificate of verification of these studies and centers, issued by an authorized Institution.

All documentation provided must be legalized in accordance with Spanish law and translated by an official translator.