This course presents the principles, tools and programming methodologies for large-scale applications running in Cloud environments.

The course is structured in three parts:

  • An introductory part discussing the management of virtualized cloud resources, accompanied by two tutorials on IaaS/machine virtualization and containers/OS-level virtualization;
  • A first core part where students learn how to build scalable and available application back-ends in the Cloud. Practical sessions include tutorials and a project where concepts seen in class are applied to the construction of the scalable back-end of a web-store application, whose front end is provided;
  • A second core part where we will focus on the processing of large amounts of data in Cloud environments, also known as "Big Data". The project will continue from the first part with the application of data processing concepts to the application, and a tutorial will be offered presenting a representative processing framework.
  • Advanced topics such as system and performance aspects, security and confidentiality for Cloud Computing, trusted execution environments or blockchains.