
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 i) benefit from Cloud computing systems, ii) may (or should) be deployed in on-site infrastructures, and iii) those who benefit from hybrid architectures.
- 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. Containers, a lightweight solution for packaging and deployment of applications.
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: Microsoft Azure, Amazon AWS and Google AppEngine; Big Data processing using 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 and one essay
Aggregated grade not less than 8,5
Final Grade (FT): average of both tests weighted at 50%, essay at 15%
Two lab projects (report, presentation, discussion)
Aggregated grade not less than 8,5
Final Lab Grade (FL): average of both projects
Final grade: 65% FT + 35% FL