Cloud Computing Systems
* 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.
Nuno Manuel Ribeiro Preguiça
Weekly - 4
Total - 52
The student must have good programming skills, and knowledge of distributed systems.
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.
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.
Midterm (20%) and final (35%) test / Exam (55%)
Minimum grade for approval: 9.0
Tests and exams will be closed-book and in-person.
Project 2: 15%
Minimum grade for frequency: 9.0
1.1 Challenges and motivation
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
5. Processing data
5.1 Queuing services
5.2 Batch processing services
5.3 Intro to stream processing services
6.3 Deployment in clusters (Kubernetes)
7.1 Virtual networks
8.1 Authentication services
8.2 Privacy and security
9.1 The physical data center
9.2 Advanced cloud architectures: hybrid cloud
9.3 Edge computing
Programs where the course is taught: