SISTEMI CENTRALI
Anno accademico 2020/2021 - 3° anno - Curriculum BCrediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre: 2°
Obiettivi formativi
Il corso di Sistemi Centrali si prefigge lo scopo di introdurre lo studente ai principi di progettazione di un'architettura di un sistema di elaborazione. A tale scopo vengono analizzati modelli elaborativi attuali, ovvero:
- I sistemi centrali, o mainframe
- I sistemi per l'elaborazione distribuita on premise
- I sistemi e l'elaborazione in Cloud
Durante il corso gli allievi apprenderanno i concetti di base dell'alta affidabilità, scalabilità, dimensionamento e disegno della topologia di un sistema di elaborazione aziendale.
Saranno poi esaminati i concetti di virtualizzazione delle risorse. Radunando i concetti appresi, si potrà poi comprendere l'elaborazione in cloud, nelle sue realizzazioni IaaS, PaaS e SaaS.
Il corso offrirà anche una panoramica sulla storia ed i principi architetturali dell'architettura dei mainframi (sistemi centrali) e ne eaminerà l'importanza nel panorama IT odierno.
L'obiettivo primario del corso - o forse la sua ambizione - è trasmettere il principio che un progettista, sia di sistemi informatici che di un impianto o di un macchinario, dovrà prendere delle decisioni che per lo più saranno sub-ottime e quindi ci sarà una scelta migliore di tutte altre, nel rispetto dei vincoli tecnologici, di tempo e di disponibilità economiche.
Modalità di svolgimento dell'insegnamento
L'insegnamento si svolge con lezioni tenute dal docente, inframmezzate da esercitazioni. Gli esercizi svolti sono anche presi da casi reali di progettazioni di installazioni presso società commerciali e industriali, che preparano lo studente ad affrontare la vita del progettista informatico.
Eventuali prove in itinere saranno concordate con il docente ma non sono al momentopreviste per questo corso.
Prerequisiti richiesti
Non sono richiesti esami propedeutici. Tuttavia il corso copre argomenti molto vasti e quindi si consiglia di avere una comprensione sicura dei concetti di:
- Sistemi operativi
- Reti di calcolatori
- Sistemi di gestione di basi di dati (DBMS)
Sarà cura del docente richiamare i concetti di base utilizzati nel corso delle lezioni.
Frequenza lezioni
La frequenza delle lezioni è fortemente consigliata, data la particolarità degli argomenti trattati e l'esperienza che deriva dalla vita professionale del docente. Tuttavia la frequenza non è obbligatoria.
Contenuti del corso
- Introduzione del corso: Modelli Elaborativi Centralizzati, Distribuiti ed in Cloud
- Obiettivi del corso
- Il piano del corso
- Le ragioni della struttura del corso
- Modalità di esame
- Modelli Elaborativi
- Centralizzati
- Client server
- Distribuiti
- in Cloud
- Continuità Operativa e Scalabilità
- PRIMA PARTE
- Architettura a tre livelli
- SECONDA PARTE
- Continuità Operativa e Scalabilità
- Alta affidabilità (High Availability)
- Clusters
- Bilanciatori di carico e load balancing
- Politiche di bilanciamento
- Scalabilità orizzontale e verticale
- Ridondanza dei dischi (RAID)
- Altri punti di vulnerabilità (single point of failure)
- Backup e recovery
- Disaster Recovery
- PRIMA PARTE
- Stima del dimensionamento del sistema e topologia
- PRIMA PARTE: LA NECESSITA’ DEL DIMENSIONAMENTO
- Stima del dimensionamento del sistema e topologia
- La stima per il budget di progetto
- L’acquisto dell’infrastruttura
- Ciclo di sviluppo: ambienti richiesti
- SECONDA PARTE: METODOLOGIA DEL DIMENSIONAMENTO
- Requisiti di scalabilità del software
- Stima delle CPU e della memoria RAM
- Contingency e think time
- Throughput del processore
- Il dimensionamento del Database
- Il dimensionamento del file system
- Crescita dei volumi e capacity plan
- Lo stress test
- TERZA PARTE: DISEGNO DELLA TOPOLOGIA
- La definizione della topologia
- Fattori che influenzano la topologia
- Un approccio euristico
- PRIMA PARTE: LA NECESSITA’ DEL DIMENSIONAMENTO
- Virtualizzazione
- PRIMA PARTE: COMPRENDERE LA VIRTUALIZZAZIONE
- Il concetto della virtualizzazione
- L’importanza della virtualizzazione
- I trend ed il cloud computing
- SECONDA PARTE: VIRTUALIZZAZIONE DEL SISTEMA
- Hypervisor
- Virtual machine (VM)
- Gestione della CPU della VM
- Gestione della RAM della VM
- Gestione dello storage della VM
- Copia e clone di una VM
- TERZA PARTE: APPLICARE LA VIRTUALIZZAZIONE
- Disponibilità del sistema virtualizzato
- Le applicazioni informatiche in ambiente virtualizzato
- Fornitori di software di virtualizzazione
- Cenni sui containers
- PRIMA PARTE: COMPRENDERE LA VIRTUALIZZAZIONE
- Architettura Cloud
- PRIMA PARTE: CARATTERISTICHE DEL CLOUD COMPUTING
- Caratteristiche del cloud computing
- Cloud service models
- Deployment models: benefici e svantaggi
- SECONDA PARTE: CLOUD COMPUTING PER LE AZIENDE
- Considerazioni sui costi
- Dipartimento IT
- Bilancio e cash flow
- Service Level Agreement (SLA)
- Elasticità e scalabilità
- Continuità operativa e DR in cloud
- Ambienti e cicli di sviluppo dei sistemi software
- Update automatici, P2T e T2T
- Interazione tra ambienti SaaS ed on premise
- PRIMA PARTE: CARATTERISTICHE DEL CLOUD COMPUTING
- Introduzione e Storia dei Sistemi Centrali
- Introduzione all’ Architettura dei Calcolatori (z/Architecture)
Testi di riferimento
- Dispense (in formato pdf con note) scritte dal docente e consegnate durante i corsi. Le stesse saranno rese disponibili su directory condivise di Teams ed accessibili agli studenti o potranno essere richieste ai docenti
- Vari testi di riferimento e manuali tecnici scaricabili dalla rete. I link saranno resi disponibili su directory condivise di Teams ed accessibili agli studenti o potranno essere richieste ai docenti
- Autori Vari. IL Mainframe - IBM 2010 – Il documento pdf è disponibile sulla directory condivisa di Teams ed accessibile agli studenti o potrà essere richieste ai docenti
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione del corso: Modelli Elaborativi Centralizzati, Distribuiti ed in Cloud | Dispense del docente |
2 | Modelli Elaborativi: Centralizzati, Client server, Distribuiti | Dispense del docente |
3 | Architettura a tre livelli | Dispense del docente |
4 | Continuità Operativa e Scalabilità | Dispense del docente |
5 | La necessità della stima del dimensionamento di un sistema informatico | Dispense del docente |
6 | Metodologia del dimensionamento | Dispense del docente |
7 | Disegno della topologia di un sistema informatico | Dispense del docente |
8 | Comprendere la virtualizzazione | Dispense del docente |
9 | Virtualizzazione del sistema: hypervisor, virtual machine, risorse virtualizzate | Dispense del docente |
10 | Applicare la virtualizzazione | Dispense del docente |
11 | Carateristiche del Cloud Computing e modelli di deployment (IaaS, PaaS, SaaS) | Dispense del docente |
12 | Cloud computing per le aziende | Dispense del docente |
13 | Introduzione e Storia dei Sistemi Centrali | Autori Vari. IL Mainframe - IBM 2010 |
14 | Introduzione all’ Architettura dei Calcolatori (z/Architecture) | Autori Vari. IL Mainframe - IBM 2010 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame finale si compone di due prove scritte della durata massima di sessanta minuti ciascuna e di una prova orale facoltativa.
La prima prova scritta è propedeutica per la prosecuzione dell'esame, essa consiste in un questionario a risposta multipla.
Il questionario è costituito da quaranta domande: per passare alla seconda prova oppure direttamente alla prova orale (a scelta del candidato) è necessario rispondere correttamente a 10 domande.
La seconda prova consiste in sei quesiti a risposta multipla, che richiedono inoltre una breve argomentazione della scelta adottata.
La prova orale consiste in una revisione critica delle prove scritte ed in particolare dei quesiti che hanno avuto una risposta non corretta.
Il voto finale è dato dalla media delle due prove scritte, oppure dal voto della prova orale, qualora il candidato dimostri una conoscenza più approfondita di quella dimostrata nelle prove scritte.
Esempi di domande e/o esercizi frequenti
ESEMPIO DOMANDA PRIMA PROVA
Alcune caratteristiche di Failover service che gira su di un cluster (scegliere tutte le opzioni corrette):
- I server logici sono riavviati automaticamente su un nodo attivo
- Esiste una sola istanza del processo attiva ad un certo istante
- Il failover ad un altro nodo richiede l’intervento utente
- Il failover ad un altro nodo non richiede riconfigurazione client
- Il failover non avviene se la macchina ha meno di 4GB RAM
(Risposte corrette: 1, 2 e 4)
ESEMPIO DOMANDA SECONDA PROVA
Si consideri lo scenario applicativo seguente:
Applicazione CRM di call centre. L’applicazione serve al picco 5000 utenti connessi, di cui 500 concorenti.
L’applicazione richiede 0.5CPU@2.5GHz e 5GB RAM per servire 50 utenti concorrenti. Tutti gli utenti connessi ma non concorrenti richiedono ulteriori 5GB di RAM. Si assume che il carico ottimale di CPU non ecceda il valore di 70%.
L’applicazione è mission critical e come processo puo’ essere istanziato più volte.
Si scelga una soluzione e si commenti:
- Un server applicativo con 6 CPU@2.5GHz e 64 GB RAM
- Carico in load balancing con due nodi server applicativi, ognuno con 4 CPU@2.5GHz e 32 GB RAM
- Carico in load balancing con tre nodi server applicativi, ognuno con 3 CPU@2.5GHz e 32 GB RAM
Risposta - Soluzione 3 - Corretta. E’ evidente che il costo sarà elevato. Tuttavia se un server diventasse indisponibile il sistema non subirebbe nesun rallentamento rilevante. Se due server diventassero indisponibili, l’applicazione sarebbe ancora attiva ma con prestazioni fortemente ridotte. Si osservi che la Soluzione 2 è possibilmente accettabile. In condizioni normali sarebbe più che sufficiente, ma in caso di indisponibilità di un nodo non sarebbe in grado di coprire il carico di picco. In questo caso però l’applicazione sarebbe ancora disponibile, con una performance molto ridotta ...