Cloud Computing Technologies

A.Y. 2023/2024
6
Max ECTS
48
Overall hours
SSD
INF/01
Language
English
Learning objectives
The objectives of the course are i) to provide architectural skills on next-generation cloud systems including their impact in modern distributed applications both from a functional and non-functional point of view, ii) to deepen the technologies at the basis of cloud computing systems.
Expected learning outcomes
Theoretical skills for the design of cloud architectures and practical skills for the implementation of complex cloud solutions to support modern distributed applications.
Single course

This course can be attended as a single course.

Course syllabus and organization

Single session

Lesson period
Second semester
Course syllabus
The course focuses on 4 main areas, structured as follows:

1. Introduction to modern distributed systems
- Basic concepts, requirements, and trends of evolution
- Fundamentals of virtualization

2. Cloud Computing Fundamentals
- Service and models, technologies, and case studies
- Migration to the cloud, cloudonomics, challenges and issues
- Practical examples

3. Microservice Architecture Fundamentals
- Overview and basic concepts
- Microservice migration
- Container-based technologies: development, orchestration and deployment
- Practical examples

4. Non-functional aspects of modern distributed systems
- Assurance and risk techniques
- Audit, Certification, Compliance
- Resilience and fault tolerance
- Practical examples
Prerequisites for admission
Basic knowledge of computer networks, fundamentals of programming languages and computer security.
Teaching methods
The course consists of traditional lectures for learning the most relevant theoretical concepts. Demo sessions present the application of the learned theoretical concepts in practice.
Teaching Resources
Slide deck available on the course web site https://cardagnacct.ariel.ctu.unimi.it/

DISTRIBUTED SYSTEMS
1. Tanenbaum, S., Maarten Van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall (2007), 0-13-239227-5. M. van Steen and A.S. Tanenbaum, Distributed Systems,
3rd ed., distributed-systems.net, 2017.
2. George Coulouris, Jean Dollimore, Tim Kindberg, Distributed Systems - Concepts and Design, 4th edition, Pearson/Addison Wesley (2006), 0321-26354-5

CLOUD
- L. Badger, T. Grance, R. Patt-Corne, J. Voas, Cloud Computing Synopsis and Recommendations, NIST, http://csrc.nist.gov/publications/nistpubs/800-146/sp800-146.pdf
- B. Sosinsky, Cloud Computing Bible, 2011

REST services
- R.T. Fielding, Architectural Styles and the Design of Network-based Software Architectures, https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- L. Richardson and S. Ruby, RESTful Web Services, http://www.crummy.com/writing/RESTful-Web-Services/
Assessment methods and Criteria
The exam consists of an oral exam and a project. The oral exam aims to verify the knowledge of the student about all arguments discussed during the course. The project, presented during the oral exam, aims to deepen the practical aspects of a single topic discussed during the course. The final evaluation, expressed in thirtieths, is computed considering: the knowledge of the topics, ability of applying the learned knowledge to the resolution of a practical project, project quality, critical thinking skills, clarity of exposition, and property of language.
INF/01 - INFORMATICS - University credits: 6
Lessons: 48 hours
Professor(s)
Reception:
By appointment only
At Dipartimento di Informatica, Via Celoria 18, Milan (MI)