Course Syllabus
Obiettivi
Il corso ha lo scopo di fornire una solida conoscenza delle piattaforme tecnologiche (Cloud - Containerizzazione) che consentono la raccolta e la gestione di dati, nonché delle piattaforme elaborative (architetture, algoritmi e infrastrutture) utilizzate per analizzarli.
Le esercitazioni previste forniranno allo studente le competenze di base necessarie per interagire con tali piattaforme.
Contenuti sintetici
Piattaforme virtualizzate per la raccolta e gestione di dati di grandi dimensioni e velocità . Architetture per l'elaborazione dei dati, infrastrutture elaborative, piattaforme Big Data per la Data Science, esempi di piattaforme.
Modelli e pratiche per lo sviluppo del software e modelli di ML: Waterfall, DevOps, DataOps, MLOps.
Programma esteso
- Introduzione al corso
- Importanza del ruolo del Data Engineer nell'ambiente professionale
- Pipeline di dati
- Architettura di riferimento dei Big Data del NIST
- Cloud Computing:
- La virtualizzazione come principale fattore abilitante del Cloud Computing
- Introduzione al cloud computing, compresi i modelli di servizio, i modelli di distribuzione e le caratteristiche.
- Approfondimento delle offerte cloud attuali, confrontando AMAZON EC3 e Azure web app.
- Informatica senza server
- Containerizzazione:
- Introduzione ai container Linux e a Docker
- Esecuzione di un container
- Volumi: dati persistenti per i container
- Rete per i container
- Applicazioni multi-contenitore
- Gestione delle risorse multi-host per carichi di lavoro containerizzati con Kubernetes
- Organizzazione e distribuzione dei dati:
- Concetto di lago di dati
- Magazzino di dati di grandi dimensioni (DW)
- HDFS (Hadoop Distributed File System), Avro, Parquet (formati di archiviazione dei dati).
- Piattaforme di elaborazione dei Big Data:
- Gestione delle risorse con Apache YARN
- Basi dell'elaborazione batch e Apache Spark
- Nozioni di base sull'elaborazione dei flussi, Apache Storm e Spark Streaming.
- Processo di sviluppo del software:
- Servizi e Service Computing
- Introduzione all'ingegneria del software
- Metodologie di sviluppo Waterfall e Agile
- Concetti di DevOps e DataOps
Prerequisiti
Conoscenza di base di:
- un linguaggio di programmazione (es. Python)
- dell'architettura di un calcolatore.
Modalità didattica
Lezioni ed esercitazioni in aula. Il corso verrà erogato in lingua inglese
Materiale didattico
Dispense e slide del corso fornite dai docenti.
Periodo di erogazione dell'insegnamento
Secondo anno, primo semestre
Modalità di verifica del profitto e valutazione
L'esame sarà costituito da due parti. Le due parti che dovranno essere svolte nel medesimo appello.
La prima parte consisterà in un insieme di domande chiuse ed aperte da svolgersi in un'ora (orientativamente si avranno 9 domande chiuse ed 4 aperte, tuttavia si potranno avere piccole variazioni nella struttura dell'esame). La prima parte dell'esame si svolgerà in modalità elettronica (esami online) ed il peso di ciascuna domanda per la formazione del voto verrà esplicitamente indicato contenente le domande. L'esame verrà erogato in lingua inglese, lo studente ha la facoltà di rispondere in inglese o in italiano.
La seconda parte sarà costituta da un approfondimento di un tema concordato con il professore da realizzare in gruppi di 2 persone e dalla sua esposizione orale.
Esempi di tipi di progetto:
- Analisi e test di una particolare piattaforma tecnologica (vantaggi, svantaggi, costi, curva di apprendimento, realizzazione di un'applicazione che utilizzi tale tecnologia)
- Progettazione di un'applicazione per il cloud (scelta del provider, del tipo di macchine virtuali, dei servizi, stima dei costi, stima della qualità del servizio, stima delle dimensioni dei dati supportati, attività correttive necessarie in caso di imprevisti)
Una volta che lo studente avrà svolto entrambe le prove, l'esame si considererà superato se si verificheranno entrambe queste condizioni:
- Per entrambe le parti lo studente avrà ottenuto più della metà dei 15 punti a disposizione.
- La somma dei punti delle due parti sarà maggiore o uguale a 18.
In tal caso lo studente potrà registrare un voto costituito dalla somme dei punti.
Orario di ricevimento
Martedì 12:30-14:30, chiedere conferma per email
Sustainable Development Goals
Aims
The course aims at providing a solid understanding of the technological platforms (Cloud and Containers) data collection and management, as well as of the computing platforms (architectures, algorithms, and infrastructures) that can be used to analyze those data.
The exercises will provide the student with the basic capabilities necessary to interact with such platforms.
Contents
Virtualized platforms for collecting and handling data characterized by volume and velocity. Data processing architectures, processing infrastructure, Big Data platforms for Data Science, examples of platforms.
Software development and ML models and practices: Waterfall, DevOps, DataOps, MLOps.
Detailed program
- Course introduction
- Importance of the Data Engineer role in the professional environment
- Data Pipelines
- NIST Big Data Reference Architecture
- Cloud Computing:
- Virtualization as the major enabler of Cloud Computing
- Cloud Computing introduction, including Service Models, Deployment Models, and Characteristics
- Deep dive into actual cloud offerings, comparing AMAZON EC3 and Azure web app
- Serverless computing
- Containerization:
- Introduction to Linux containers and Docker
- Running a container
- Volumes: persistent data for containers
- Networking for containers
- Multi-container applications
- Multi-host resource management for containerized workloads using Kubernetes
- Data Organization and Distribution:
- Data lake concept
- Big Data Data Warehouse (DW)
- HDFS (Hadoop Distributed File System), Avro, Parquet (data storage formats)
- Big Data Processing Platforms:
- Resource Management using Apache YARN
- Batch processing basics and Apache Spark
- Stream processing basics, Apache Storm, and Spark Streaming
- Software Development Process:
- Services and Service Computing
- Introduction to Software Engineering
- Waterfall and Agile development methodologies
- DevOps and DataOps concepts
Prerequisites
Basic knowledge of:
- a programming language (e.g., Python)
- the architecture of a computer (CPU, Memory, Disk...).
Teaching form
Classroom lectures, classroom exercises. The course will be held in English
Textbook and teaching resource
Lecture notes and slides provided by the lecturers.
Semester
Second year, first semester
Assessment method
The exam will consist of two parts. The two parts will have to be done in the same session.
The first part will consist of a set of closed and open questions to be taken in one hour (approximately there will be 9 closed and 4 open questions, however there may be minor variations in the structure of the exam). The first part of the exam will be computer based (esami online) and the weight of each question for grade formation will be explicitly stated containing the questions. The exam will be delivered in English, the student has the option to answer in English or Italian.
The second part will consist of an in-depth study of a topic agreed upon with the professor to be carried out in groups of 2 and its oral exposition.
Examples of project types:
- Analysis and testing of a particular technology platform (advantages, disadvantages, costs, learning curve, building an application using that technology)
- Design of a cloud application (choice of provider, type of virtual machines, services, cost estimation, quality of service estimation, supported data size estimation, corrective activities needed in case of unforeseen events)
Once the student has taken both tests, the exam will be considered passed if both of these conditions are met:
- For both parts, the student will have scored more than half of the 15 points available to them
- The sum of the points of the two parts is greater than or equal to 18.
In this case, the student will be able to record a grade consisting of the sum of the points.
Office hours
Tuesday 12:30-14:30 ask for email confirmation
Sustainable Development Goals
Key information
Staff
-
Michele Ciavotta
-
Vincenzo Cutrona