This course aims at delivering the conceptual foundations essential for the development of cloud solutions and systems, and, more generally, distributed systems. As a concrete cloud example, the course will present Amazon AWS, chosen because of its rich and complete range of services and solutions, which make it the archetypal commercial cloud, as well as because of the free credit offered to educational institutions. AWS services treated will include storage, networking, access control and compute services (at the IaaS and PaaS level), possibly combined with load balancing and auto-scaling architectures.
General learning objectives expected
Knowledge and understanding: students will acquire a precise knowledge and understanding of the conceptual foundations (i.e., fundamental concepts, problem classes and relevant solutions) pertaining to cloud systems.
Applying knowledge and understanding: students will become capable of applying solutions and paradigms learned within the course to practical contexts and scenarios, similar to, or derived from, those explicitly presented, thus perfecting their skills as cloud designers/architects/engineers. These abilities will be enhanced thanks to practice sessions and lab activities.
Making judgements: students will acquire the ability to assess the relative merits and limits of solutions proposed, within the course and in the literature, for problems and scenarios typical of cloud computing; this will enable them to tackle the actuall challenges potentially facing a cloud engineer/architect.
Communication skills: students will learn the terminology specific to cloud computing, and acquire the communication skills required to express and discuss, at a rigorous technical level, problems of interest for the field.
Learning skills: students will become capable to profitaby read and understand the scientific and technical literature in the field of cloud computing, in order to apply its results and solutions to concrete problems arising in the design and implementation of cloud ssytems.
Knowledge and understanding: students will acquire a precise knowledge and understanding of fundamental concepts and main technology solutions in the field of cloud computing.
Applying knowledge and understanding: students will become capable of employing technologies and solutions learned during the course, so as to obtain fundamental administration and development skills in the area of cloud computing.
Making judgements: students will acquire the ability to assess the relative advantages and limits of the main technologies available for cloud computing.
Communication skills: students will learn the terminology specific to cloud computing, and acquire the communication skills required to express and discuss, at a rigorous technical level, problems of interest for the field.
Learning skills: students will become capable to consult technical documentation available for cloud computing solutions, in order to effectively exploit them for the purposes of cloud administration and development.
Lectures will mainly consist in live sessions dealing with cloud usage, administration and development. These will be carried out by the lecturer and replicated, with suggested variations, by students, on their notebooks or lab workstations. As a framework and guidance for such sessions, lecture notes will be displayed during the lecture and shared with students through the Studium portal or the University's Teams platform. They will provide a precise record of the material presented, as well as pointers to the required reference technical documentation.
Should teaching be carried out in mixed mode or remotely, it may be necessary to introduce changes with respect to previous statements, in line with the programme planned and outlined in the syllabus.
Learning assessment may also be carried out on line, should the conditions require it.
Laboratory sessions
Fundamentals of distributed systems
Introduction to cloud computing
Cloud comutig services
Cloud storage services
Cloud access control
Cloud networking
The AWS Command ine Interface (CLI)
The elastic cloud: load-balancing and auto-scaling in AWS
A short selection of cloud computing advanced services
Technical documentation available from sites of main cloud vendors and providers.