Cloud systems and LABModule LAB
Academic Year 2026/2027 - Teacher: SALVATORE NICOTRAExpected Learning Outcomes
Course Structure
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
Should the course be delivered in blended or online mode, any necessary changes may be introduced with respect to what was previously stated, in order to comply with the planned syllabus and learning objectives.
Required Prerequisites
Attendance of Lessons
Detailed Course Content
Textbook Information
- Online documentation, detailed by lecture notes (published on the Studium portal or the University's Teams platform).
Lecture notes, organized into groups whose titles correspond to the topics listed in the “Course Schedule” section.
Course Planning
| Subjects | Text References | |
|---|---|---|
| 1 | Containerisation and Docker architecture: container concepts, images, Dockerfiles, volumes, ports, and Docker Hub. | |
| 2 | Application composition: Docker Compose, services, networks, volumes, configs and secrets, and an introduction to Docker Swarm. | |
| 3 | Orchestration with Docker Swarm: clusters, manager and worker nodes, service scaling, status monitoring, and load balancing | |
| 4 | Infrastructure as Code with Terraform/OpenTofu: providers, resources, variables, outputs, the init/plan/apply/destroy workflow, and state management. | |
| 5 | Infrastructure as Code on AWS: provisioning with OpenTofu and comparison with CloudFormation, security groups, EC2 instances, and deployment/destruction workflows. | |
| 6 | Configuration Management with Ansible: inventories, playbooks, tasks, modules and roles; installation of Docker on remote nodes; and bootstrapping of Swarm clusters. | |
| 7 | CI/CD and GitOps: pipelines, automation with Gitea Actions, AWS CodePipeline and GitHub Actions, secrets management, and the principle of least privilege. | |
| 8 | GitOps on AWS with GitHub Actions: OpenID Connect (OIDC), an S3 backend for shared Terraform state, and integration with AWS. |
Learning Assessment
Learning Assessment Procedures
The final exam consists of an oral interview covering the topics discussed during the course and the analysis of a project carried out by the student individually. The project must involve the use of the technologies and tools presented during the course.
Grading criteria are as follows:
- Fail: the student has not acquired the basic concepts and is unable to solve simple practical problems.
- 18–20: the student shows only minimal command of the fundamental concepts and/or manages to outline practical solutions with considerable difficulty and several errors.
- 21–24: the student demonstrates a basic understanding of the core concepts, limited ability to connect different topics, and can solve simple practical problems.
- 25–27: the student shows good command of the course content, good ability to connect concepts, and solves practical problems with few errors.
- 28–30 with distinction: the student has mastered all the course contents, can apply them critically and effectively, and solves practical problems completely and without significant errors.
Examples of frequently asked questions and / or exercises
- Explain the principles of containerisation and the role of Docker in application deployment.
- Describe how Docker Compose and Docker Swarm work.
- Design a simple infrastructure using Terraform/OpenTofu or CloudFormation.
- Automate the configuration of a cluster using Ansible.
- Explain how a CI/CD pipeline and a GitOps workflow operate.