- Docente: Giovanni Delnevo
- Crediti formativi: 6
- Lingua di insegnamento: Italiano
- Moduli: Giovanni Delnevo (Modulo 1) Davide Luppoli (Modulo 2)
- Modalità didattica: Convenzionale - Lezioni in presenza (Modulo 1) Convenzionale - Lezioni in presenza (Modulo 2)
- Campus: Cesena
-
Corso:
Laurea in
Tecnologie dei sistemi informatici (cod. 6007)
Valido anche per Laurea in Tecnologie dei sistemi informatici (cod. 5816)
-
Orario delle lezioni (Modulo 1)
dal 16/05/2024 al 23/05/2024
-
Orario delle lezioni (Modulo 2)
dal 22/02/2024 al 09/05/2024
Conoscenze e abilità da conseguire
Al termine del corso, lo studente conosce approfonditamente le strategie di sviluppo di sistemi in cloud ed i framework per lo sviluppo forniti dai principali cloud provider, ed in particolare: i linguaggi ed i metodi per realizzare e gestire infrastrutture virtuali per mezzo di codice (IaC) e per bilanciare dinamicamente il carico; i principali linguaggi e framework per realizzare applicazioni a base web in cloud; i principali processi di sviluppo per la conduzione di progetti in cloud e gli strumenti disponibili; i principali strumenti per realizzare servizi di directory e meccanismi di sicurezza delle comunicazioni nei sistemi ed applicazioni dispiegati in cloud; i principali strumenti per monitoraggio, billing e auditing delle applicazioni e dei sistemi in cloud. Conosce le principali certificazioni dei principali cloud provider. È in grado di progettare o contribuire a progettare un sistema informatico di piccole o medie dimensioni dispiegato in cloud.
Contenuti
Introduzione ai concetti teorici alla base del cloud computing, inclusi i paradigmi (scalability, elasticity, ...) e i modelli di servizio (IaaS, PaaS, SaaS, ...).
Presentazione dei modelli di deploy in cloud (pubblico, privato e ibrido), dei principali cloud provider (AWS, Azure, GCP) e delle architetture di base.
Approfondimento sulle seguenti tematiche:
- IaaS e virtualizzazione: cenni storici, casi d'uso, vantaggi/svantaggi, esempi su GCP.
- Architetture scalabili: autoscaling verticale e orizzontale, bilanciamento del carico, stateful vs stateless application.
- Architetture dei dati: database relazionali e non relazionali, cache server e object storage model.
- Container: introduzione al concetto e differenze rispetto alla virtualizzazione, modalità di utilizzo, Docker.
- Architetture a microservizi: differenze e vantaggi rispetto ad architetture monolite, RESTful API, esempi e casi di studio.
- PaaS: modelli serverless, caratteristiche principali, casi di studio su GCP.
- Monitoraggio e logging: brevi cenni teorici sulle metriche, SLI/SLO/SLA, tipologia di log, monitoraggio attivo.
- DevOps: significato e responsabilità, Continuous Integration e Continuous Delivery.
- Infrastracture as Code: definizione, paradigma, linguaggi dichiarativi e framework.
- Cloud Security: shared responsability model, sicurezza delle piattaforme, esempi di strumenti per la sicurezza
Testi/Bibliografia
Le slide e il materiale aggiuntivo saranno rese disponibili su Virtuale.
Metodi didattici
Lezioni frontali ed esercitazioni in laboratorio.
Modalità di verifica e valutazione dell'apprendimento
L'esame è diviso in due parti: una prova scritta e una prova orale individuale. Opzionalmente, la prova scritta può essere sostituita dalla presentazione di un progetto svolto in gruppo.
Strumenti a supporto della didattica
Slide fornite dal docente
Orario di ricevimento
Consulta il sito web di Giovanni Delnevo
Consulta il sito web di Davide Luppoli