Cloud Computing Systems

Objectives

Knowledge
* Understand the fundamentals of Cloud computer systems.
* Learn the different cloud service models (IaaS, PaaS, SaaS). Examples, characteristics and implementation.
* Know the data center infrastructures and the restrictions imposes.
* Know the services available in cloud platforms, how they  work and can be used.
* Know resource virtualization techniques.

Skills and competences
* Identify the classes of applications that benefit from Cloud computing systems.
* Create solutions that take advantage of Cloud services and resources.
* Evaluate solutions developed for Cloud platforms.

General characterization

Code

11174

Credits

6.0

Responsible teacher

Nuno Manuel Ribeiro Preguiça, Sérgio Marco Duarte

Hours

Weekly - 4

Total - 52

Teaching language

Inglês

Prerequisites

The student must have good programming skills,  and knowledge of distributed  systems.

Bibliography

Cloud Computing: Theory and Practice, Dan C. Marinescu, Morgan Kaufman-Elsevier, 2013.

The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, Luiz André Barroso, Jimmy Clidaras, Urs Hölzle, Synthesis Lectures on Computer Architecture, Morgan & Claypool Publishers, 2013.

Selected conference and/or journal papers.

Teaching method

In lectures the various topics of the syllabus are explained and discussed. The approach consists in  presenting, for each topic, the motivation/problem and solutions. This presentation also discusses the constraints that led to a given solution and possible alternatives. In addition, examples are given of how to use the solutions presented for application development.

Laboratory classes follow the course projects closely, giving students the experience of how the concepts introduced in lectures can be applied in practice. Thus, lab class present examples of the various topics, making a connection to its use in the  course projects.

Evaluation method

Tentative

** Tests:

Midterm (25%) and final (30%) test / Exam (55%)
Minimum grade for approval: 9.0

Tests and exams will be closed-book and in-person.

It may be required to pre-register for the tests.


** Lab:

Project 1: 30%
Project 2: 15%

Minimum grade for frequency: 9.0

All intermediate grades are round do the 1st decimal.

Notes:

If the difference between the labs and test grades is significant, an oral examination may be requested.

Pre-registration for the tests may be requested. One of the rooms designated for the test will be reserved, if there is space, for students who did not register. Unregistered students may take the test if, after 15 minutes, there are available test papers and space in the room for all those present. Tests from unregistered students who do not follow this procedure will not be graded.

Use of Artificial Intelligence tools for completing the projects, while not prohibited, must be detailed in the report that will accompany the project submission. Depending on the extent and scope of this use, penalties may be applied.

Subject matter

1. Introduction
1.1 Challenges and motivation
1.2 Models
1.3 Building blocks
2. Storage services
2.1 Block storage and filesystems
2.2 Cloud databases: key-value stores and databases
3. Caching services
3.1 Application caches at the DCs
3.2 Content-distribution networks
4. Towards serverless computing
4.1 Support for micro-services
4.2 Function-as-a-Service
5. Processing data
5.1 Queuing services
5.2 Batch processing services
5.3 Intro to stream processing services
6. IaaS
6.1 Virtualization
6.2 Containers
6.3 Deployment in clusters (Kubernetes)
7. Networking
7.1 Virtual networks
8. Security
8.1 Authentication services
8.2 Privacy and security
9. Infrastructure
9.1 The physical data center
9.2 Advanced cloud architectures: hybrid cloud
9.3 Edge computing

Programs

Programs where the course is taught: