- Docente: Daniele Cesini
- Crediti formativi: 4
- SSD: FIS/01
- Lingua di insegnamento: Inglese
- Moduli: Daniele Cesini (Modulo 1) Alessandro Costantini (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Bologna
- Corso: Laurea Magistrale in Bioinformatics (cod. 6767)
Conoscenze e abilità da conseguire
Al termine del corso, lo studente possiede le conoscenze teoriche e pratiche di base sulle infrastrutture per il calcolo scientifico, sui sistemi distribuiti e paralleli, sui sistemi batch e sulle tecnologie di sicurezza.
Contenuti
Modulo 1
Contenuti del corso
Il corso fornirà i concetti di base sulle infrastrutture per l'elaborazione dei Big Data e per l'esecuzione di applicazioni scientifiche. In particolare, si concentrerà sul paradigma Cloud Infrastructure-as-a-Service (IaaS). Il corso inizierà con un’introduzione ai Big Data e alla loro relazione con le applicazioni scientifiche. Proseguirà con una descrizione dei componenti fondamentali dei moderni Data Center e di come questi siano astratti dai modelli di Cloud Computing. Verrà proposto un problema computazionale reale e gli studenti creeranno (durante il corso) un modello di calcolo basato su Cloud per risolverlo. Gli studenti avranno accesso a un insieme limitato di risorse e servizi Cloud per completare gli esercizi. Verranno introdotti i container, in particolare i Docker Container, insieme al concetto di High Performance Computing (HPC). Il corso si concluderà con nozioni sui paradigmi emergenti di “Fog” e “Edge” computing e sul loro legame con le infrastrutture Cloud.
Programma:
- Introduzione al corso e alla sfida computazionale
Big Data
- Definizione di Big Data
- Classificazione delle applicazioni Big Data
- Esempi di applicazioni Big Data
- Big Data e applicazioni scientifiche
- Presentazione della sfida computazionale che ci accompagnerà durante il corso
Esercitazione pratica:
- Configurazione delle connessioni e accesso
- Dal tuo laptop al Data Center – componenti del Data Center
CPU Farm
- Sistema batch, code, politiche di allocazione, quote, ecc.
Storage
- DAS vs NAS
- SAN
- TAN
- File system paralleli
- Ciclo di vita dei dati, QoS
- Migrazione, richiamo, ACL
Rete: principali protocolli (Ethernet, Infiniband, Fiber Channel)
Monitoraggio e provisioning
Esercitazione pratica: invio di job su un piccolo cluster già disponibile per gli studenti
- Infrastrutture per il calcolo parallelo
HTC vs HPC
HTC
- Sistemi distribuiti
- Grid Computing
HPC
- Memoria condivisa vs memoria distribuita
- OPENMPI/OPNMPI
- Acceleratori per il calcolo parallelo
- Risorse ibride e non standard
Efficienza energetica e calcolo a basso consumo
- Verso il calcolo exascale
Esercitazione pratica: dimostrazione live – creazione di curve di speedup per i casi d’uso NAMD SMTV/APOA1. Calcolo su GPU. Calcolo su sistemi a basso consumo.
- Infrastruttura Cloud
Cloud Computing: Introduzione
- Dimensioni del Cloud Computing – IaaS, PaaS, SaaS, modelli di servizio e isolamento
Cloud IaaS
- Vantaggi e svantaggi
- Porting delle applicazioni sul Cloud
- Utilizzo di AWS
Cloud Storage – provisioning di dispositivi a blocchi e file system POSIX
Esercitazione pratica:
- Istanziazione IaaS con AWS – creare l’infrastruttura per eseguire gli esercizi del corso
- Istanziazione di più macchine – esperienza sull’elasticità del cloud – creare un mini-cluster – eseguire l’esercizio del corso su quel cluster
- Creare volumi di storage sul Cloud e renderli disponibili al cluster
- Creazione di un cluster Hadoop
- Introduzione a MapReduce ed esercizio
- Introduzione ai Container
- Concetti base sui container
- Esecuzione ed estensione dei container
- Docker Hub e dockerfile
- Connessione dei container ai file system
- Esportazione e importazione dei container
- Docker-compose
- Esecuzione di container Docker in userspace con udocker
- Computing Continuum
- Dispositivi a basso consumo
- Introduzione all’Edge Computing
- Introduzione al Fog Computing
- Il continuum computazionale per le infrastrutture Big Data
- Efficienza energetica e calcolo a basso consumo
- Verso il calcolo exascale
Il corso includerà, per gli studenti interessati, una visita al Data Center INFN-CNAF di Bologna.
Modulo 2
Il corso "Infrastructures for Big Data Processing Module 2" (BDP Modulo 2) si basa sul corso "Introduction to Big Data Processing Infrastructures Module 1" (BDP Modulo 1). Prima di seguire questo modulo, gli studenti dovrebbero aver già frequentato il corso BDP1, o almeno avere una buona familiarità con gli argomenti trattati.
Il corso BDP Modulo 2 inizierà con un riepilogo delle basi del Cloud Computing e dei servizi di storage oltre l’IaaS (PaaS e SaaS). Proseguirà poi con la discussione su come sfruttare le infrastrutture distribuite per il deployment di applicazioni e l’elaborazione dei Big Data.
Una caratteristica distintiva del Modulo 2 è la presenza di numerose sessioni pratiche che si collegano direttamente alle parti teoriche. In questo modo, gli studenti applicheranno subito i concetti a casi d’uso reali. Per ottenere il massimo beneficio da questo approccio, è fortemente raccomandata la partecipazione a tutte le lezioni.
Introduzione al BDP Modulo 2
- Introduzione al corso e obiettivi
- Cloud oltre l’IaaS: concetti generali
- Come utilizzare l’infrastruttura Cloud per questo corso
Cloud Storage
- File system e storage POSIX
- Network File System (NFS)
- Object storage, architettura REST e formato JSON
- File system virtuali
- Esempi semplici di elaborazione dati locale e remota
Container Docker avanzati
- Riepilogo dei concetti base sui container (dal BDP1)
- Networking nei container
- Gestione dei processi, logging e sicurezza
- Repository e versionamento: Git, GitHub, Docker-Hub
- Workflow completo di sviluppo applicativo
Autenticazione e Autorizzazione
- Principi di autenticazione e autorizzazione nel Cloud
- X.500, LDAP, Radius, Kerberos
- X.509 e crittografia a chiave pubblica
- SAML, eduGAIN, IDEM, SPID
- OAuth e OpenID-Connect
- INDIGO IAM
- Adattamento di un’applicazione per l’uso di INDIGO-IAM
Automazione nel Cloud
- Cos’è l’automazione nel Cloud
- Microservizi e monoliti
- Concetto di DevOps
- Orchestrazione dei container: Docker Swarm e Kubernetes, con ampie sessioni pratiche su Kubernetes
- Infrastructure as Code: tecnologie serverless
- Orchestrazione delle applicazioni basata su template
- Automazione nel Cloud e orchestrazione dei servizi
Testi/Bibliografia
"l materiale del corso sarà condiviso e, durante il corso, verranno suggeriti anche MOOC esterni e libri.
Metodi didattici
Il metodo didattico sarà basato su alcune fondamenta teoriche, ma sarà fortemente integrato da considerazioni pratiche su infrastrutture reali utilizzate per l’elaborazione dei Big Data, oltre che da alcune sessioni pratiche.
A causa della natura dell’attività e dei metodi didattici adottati, la partecipazione al presente corso richiede la preventiva frequenza da parte di tutti gli studenti ai seguenti Moduli e-learning 1 e 2:
-
Modulo 1 – Formazione Generale sulla Sicurezza
[https://elearning-sicurezza.unibo.it/course/view.php?id=23] -
Modulo 2 – Formazione Specifica sulla Sicurezza (parte I)
[https://elearning-sicurezza.unibo.it/course/view.php?id=43]
Modalità di verifica e valutazione dell'apprendimento
Esame scritto con domande a scelta multipla.
Studenti/sse con DSA o disabilità temporanee o permanenti: si raccomanda di contattare per tempo l’Ufficio di Ateneo competente (https://site.unibo.it/studenti-con-disabilita-e-dsa/it). Sarà sua cura proporre agli/lle studenti/sse interessati/e eventuali adattamenti, che dovranno comunque essere sottoposti, con almeno 15 giorni di anticipo, all’approvazione del/della docente, il/la quale ne valuterà l'opportunità anche in relazione agli obiettivi formativi dell’insegnamento.
Strumenti a supporto della didattica
Slide per la teoria, utilizzo di infrastrutture reali per le sessioni pratiche
Orario di ricevimento
Consulta il sito web di Daniele Cesini
Consulta il sito web di Alessandro Costantini