Understand the internal organization and management of Cloud Computing infrastructure and services.
Understand the concepts of scalability, dependability and security for distributed applications and services.
Acquire expertise on virtualization technologies, for example virtual machines and containers, and on the key concepts of isolation and Linux control groups.
Acquire knowledge about large-scale distributed data management (e.g., file systems, object storage systems), while focusing on key features for efficient storage and protection of critical data.
Perform application setup and installation in a distributed environment, while considering key properties such as performance, dependability and security.
Implement distributed applications monitoring and evaluation in the cloud.
Measure the performance of distributed cloud applications.
Program
Overview of cloud computing services and their various abstractions (IaaS, PaaS and SaaS).
Scalability, elasticity, and security of cloud computing applications and services.
Virtualization and isolation of cloud computing computational resources for (virtual machines and containers).
Management of critical and sensitive data in cloud computing (file systems, object stores).
Provisioning, deployment and management of distributed applications (Infrastructure-as-a-code).
Monitoring of cloud computing infrastructure and services.
Experimental evaluation of distributed applications and services.
Bibliography
Raj Jain, The Art of Computer Systems Performance Analysis, Wiley, 1991
T. Erl, R. Puttini e Z. Mahmood. Cloud Computing: Concepts, Technology and Architecture. Prentice Hall, 2013
Kief Morris, Infrastructure as Code - Managing Servers in the Cloud, O’Reilly, 2016
Jennifer Petoff, Niall Richard Murphy, Chris Jones, Betsy Beyer, Site Reliability Engineering: How Google Runs Production Systems, 1st Edition, O’Reilly, 2016.
M. Kleppmann. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly, 2017