Cloud Computing

Anno Accademico 2019/20


  • Due to the COVID-19 national emergency, the lectures will be provided in online mode only using Microsoft Teams.
  • The code to access the online classrooms is available here.

General information

Schedule

  • Tuesday 8:30 – 10:30 (Aula SI5, Polo B Online)
  • Tuesday 15:30 – 18:30 (Aula A21, Polo A Online)
  • Friday 8:30 – 11:30 (Aula A22, Polo A Online)

Office hours

  • Monday 10:00 – 13:00 (Information Engineering Department, Polo A Online)

Learning objectives

The objective of the course is to teach topics in cloud computing, including also hands-on technical knowledge. Foundation principles of cloud computing and advanced technologies are covered including concepts of the cloud infrastructure, cloud platforms and cloud programming models. At the end of the course, students are expected to develop in deep knowledge of the cloud computing infrastructure and platforms, required to understand, design, and analyze current and future cloud infrastructure and applications.

Syllabus

  • GENERAL INTRODUCTION AND FOUNDATIONS CONCEPTS. General introduction to Cloud computing. Comparison with traditional computing. Main advantages and benefits. How cloud computing addresses business challenges.
  • VIRTUALIZATION TECHNOLOGIES. Introduction to computing resource virtualization. Machine level virtualization techniques. Operating system level virtualization techniques, containerization. Advantages and disadvantages of each approach. Laboratory: exercises on virtualization (Libvirt) and containerization (Docker).
  • CLOUD APPLICATIONS. Cloud application structure. Rest services. Distributed cloud applications. Queue based distributed systems. Laboratory: practical examples of cloud applications
  • CLOUD PLATFORMS. Cloud computing platforms overall architecture: IaaS and PaaS platform architecture. Introduction to OpenStack and Kubernetes. Laboratory: hands on with OpenStack and Kubernetes.
  • CLOUD INFRASTRUCTURE AND MECHANISMS. General architecture of a datacenter. Principles of cloud platform networking. Cloud storage and distributed file systems. Content Distribution Networks. Service Level Agreement. Future trends in cloud computing architectures.
  • CLOUD PROGRAMMING MODELS. General introduction to cloud programming models for big data analysis. Cloud execution flow, scheduling and fault tolerance. The MapReduce programming model. Laboratory: hands on experience with Hadoop and Spark.

Final Exam

Students have to carry out two projects in group as part of the final exam, one project covering the part on Cloud Applications/Platforms, another covering the part on Cloud Programming Models. The final exam consists in a presentation and discussion of the project and an oral exam.

Libri di testo

Class registry

See here.

Course Material

  • Cloud platforms
  • Cloud programming: