- Docente: Giovanni Delnevo
- Crediti formativi: 6
- Lingua di insegnamento: Italiano
- Moduli: Giovanni Delnevo (Modulo 1) Manuel Iaderosa (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. 5816)
-
Orario delle lezioni (Modulo 1)
dal 23/02/2023 al 24/02/2023
-
Orario delle lezioni (Modulo 2)
dal 09/03/2023 al 25/05/2023
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: la presentazione di gruppo del progetto e una prova orale individuale.
Strumenti a supporto della didattica
Slide fornite dal docente
Orario di ricevimento
Consulta il sito web di Giovanni Delnevo
Consulta il sito web di Manuel Iaderosa
SDGs
L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.