The course presents the most common programming techniques and methodologies used to create cloud-native applications, namely microservice-based applications, Kubernetes operators, Serverless, organization and management of large software projects, Git and workflow automation (CI/CD pipelines). In addition, the course will present an overview of techno-economic aspects such as drivers for cloud adoption, cost vs benefit analysis (including Capex vs Opex considerations), and agile development methodologies (agile, scrum, kanban, continuous improvement).
Initial teaching labs focuses on individual technologies; more advanced labs focuses on the development of user-driven cloud-native software, which will be presented and discussed with the instructors.
The course presents the most common programming techniques and methodologies used to create cloud-native applications, namely microservice-based applications, Kubernetes operators, Serverless, organization and management of large software projects, Git and workflow automation (CI/CD pipelines). In addition, the course will present an overview of techno-economic aspects such as drivers for cloud adoption, cost vs benefit analysis (including Capex vs Opex considerations), and agile development methodologies (agile, scrum, kanban, continuous improvement).
Initial teaching labs focuses on individual technologies; more advanced labs focuses on the development of user-driven cloud-native software, which will be presented and discussed with the instructors.
The presented topics represent the fundamental knowledge required to succesfully apply for a DevOps position within cloud companies, as well as any modern software development company.
- Knowledge of cloud-native programming paradigms, such as microservice-based applications, serverless, Kubernetes operators
- Knowledge of most common methodologies for large cloud-native software projects, such as Git and workflow automation (CI/CD pipelines)
- Capability to design a cloud-native software including techno-economic aspects, and to plan a migration-to-cloud strategy.
- Knowledge of cloud-native programming paradigms, such as microservice-based applications, serverless, Kubernetes operators
- Knowledge of most common methodologies for large cloud-native software projects, such as Git and workflow automation (CI/CD pipelines)
- Capability to design a cloud-native software including techno-economic aspects, and to plan a migration-to-cloud strategy.
- Software engineering
- Familiarity with common cloud computing technologies (e.g., Kubernetes, virtual machines)
- Software engineering
- Familiarity with common cloud computing technologies (e.g., Kubernetes, virtual machines)
- Microservice-based architectures and cloud-native development (0,6 cfu)
- Kubernetes operators (1,2 cfu)
- Serverless (0,6 cfu)
- Git and workflow automation (0,6 cfu)
- Agile methodology (0,6 cfu)
- Strategies and economic considerations for the adoption of cloud computing technologies and services (0,6 cfu)
- Group project (1,8 cfu)
- Microservice-based architectures and cloud-native development (0,6 cfu)
- Kubernetes operators (1,2 cfu)
- Serverless (0,6 cfu)
- Git and workflow automation (0,6 cfu)
- Agile methodology (0,6 cfu)
- Strategies and economic considerations for the adoption of cloud computing technologies and services (0,6 cfu)
- Group project (1,8 cfu)
The course includes 42 hours of traditional teaching, including small and technology-focused labs, which have to be completed by each single student.
In addition, 18 hours are dedicated to a larger project, to be completed by groups of 3-4 students under the guidance of course instructors.
The course includes 42 hours of traditional teaching, including small and technology-focused labs, which have to be completed by each single student.
In addition, 18 hours are dedicated to a larger project, to be completed by groups of 3-4 students under the guidance of course instructors.
Lecture slides; Lab exercises; Video lectures (current year);
Lecture slides; Lab exercises; Video lectures (current year)
Slides; Esercitazioni di laboratorio; Video lezioni dell’anno corrente;
Lecture slides; Lab exercises; Video lectures (current year);
E' possibile sostenere l’esame in anticipo rispetto all’acquisizione della frequenza
You can take this exam before attending the course
Modalità di esame: Prova orale obbligatoria; Elaborato progettuale in gruppo;
Exam: Compulsory oral exam; Group project;
...
Expected learning outcome
Knowledge of the topics presented in class and of the lab assignments.
Capability to solve exercises that involve the technologies and methodologies presented in class.
Capability to solve exercises that involve a more complex scenario including multiple technologies presented in class.
Exam: rules, procedures
Final exam is delivered through the discussion of the software project, and it can include additional questions on the theoretical topics presented in the lectures.
Gli studenti e le studentesse con disabilità o con Disturbi Specifici di Apprendimento (DSA), oltre alla segnalazione tramite procedura informatizzata, sono invitati a comunicare anche direttamente al/la docente titolare dell'insegnamento, con un preavviso non inferiore ad una settimana dall'avvio della sessione d'esame, gli strumenti compensativi concordati con l'Unità Special Needs, al fine di permettere al/la docente la declinazione più idonea in riferimento alla specifica tipologia di esame.
Exam: Compulsory oral exam; Group project;
Expected learning outcome
Knowledge of the topics presented in class and of the lab assignments.
Capability to solve exercises that involve the technologies and methodologies presented in class.
Capability to solve exercises that involve a more complex scenario including multiple technologies presented in class.
Exam: rules, procedures
Final exam is delivered through the discussion of the software project, and it can include additional questions on the theoretical topics presented in the lectures.
The software project will be evaluated according to the following criteria:
- Achievement of the objectives of the project
- Quality of proposed architecture to solve the problem
- Quality of the source code and the adopted development methodology
- Capability to address proper "user value" (business-oriented)
- Time required to conclude the project
- Capability to structure the work, and the temporal scheduling of the activities, autonomously
- Quality of the presentation, including live demo (if possible) and capability to answer to the questions
The distinction (Lode) will be awarded if (1) the answer to the questions are particularly clear and complete, (2) the student showed capability to work mostly autonomously, (3) the quality and the clarity of the oral presentation is indisputable.
In addition to the message sent by the online system, students with disabilities or Specific Learning Disorders (SLD) are invited to directly inform the professor in charge of the course about the special arrangements for the exam that have been agreed with the Special Needs Unit. The professor has to be informed at least one week before the beginning of the examination session in order to provide students with the most suitable arrangements for each specific type of exam.