
Cloud Computing Systems
Code
11174
Academic unit
Faculdade de Ciências e Tecnologia
Department
Departamento de Informática
Credits
6.0
Teacher in charge
Nuno Manuel Ribeiro Preguiça, Paulo Orlando Reis Afonso Lopes
Weekly hours
4
Teaching language
Português
Objectives
Knowledge
- Understand the fundamentals of Cloud computer systems
- Understand data center infrastructures (storage, networking and computational) and resource virtualization techniques
- Learn different Cloud service models (IaaS, PaaS, SaaS). Examples, characteristics and implementation
- Understand programming models used to develop applications that benefit from Cloud environments.
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.
Prerequisites
The student should have taken first/intermediate-level courses the following subjects: Operating Systems, Computer Networks and Distributed Systems.
Subject matter
1- Introduction and motivation: target applications and their requirements. Support systems characteristics: components and service models.
2- Infrastructures and Data Centers. Historical perspective. Computing, network and storage infrastructures.
3- Resource virtualization for elastic infrastructures. Hardware virtualization technologies. Resource management, orchestration, partitioning and sharing.
4- Cloud services for distributed applications support and on-demand computing and storage. Concepts and implementation. A discussion on costs, elasticity, performance, availability, management and privacy.
5- Programming models and operation of common platforms. Case studies: Google AppEngine, Amazon AWS and Big Data processing using Elastic MapReduce.
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
The course is based on lectures and on a laboratorial component. During the lectures, the themes listed in the syllabus are presented and discussed, in order to stimulate a critical perspective by the student concerning the identification of the studied computing models, in their common and their distinguishing aspects. The discussion is also illustrated through the analysis of the case studies of existing systems and solutions. Furthermore the above dimensions are elaborated through the experimental practical labs, requiring the students to develop, deploy and evaluate solutions for selected application problems, and ensuring an efficient management of the computing environments. The student evaluation is based on individual written tests, and on lab assignments performed by groups of students along the course, with a written report and oral discussion per assignment.
Evaluation method
Grades: Scale: 0 – 20
Two tests
Each grade not less than 7,5
Final Test Grade (FT): average of both tests
Two lab projects (report, presentation, discussion)
Each grade not less than 7,5
Final Lab Grade (FL): average of both projects
Final grade: 60% FT + 40% FL
(as registered on the 1st lecture PDF on CLIP since 15/Sep/2017)