SISTEMI CENTRALI

Anno accademico 2021/2022 - 3° anno - Curriculum Sistemi e Applicazioni
Docente: Enrico Caterina
Crediti: 6
SSD: INF/01 - Informatica
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre:

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:

  1. Sistemi operativi
  2. Reti di calcolatori
  3. 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
  • 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
  • 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
  • Architettura Cloud
    • PRIMA PARTE: CARATTERISTICHE DEL CLOUD COMPUTING
      • Caratteristiche del cloud computing
      • Cloud service models
      • Deployment models: benefici e svantaggi
      • Infrastrutture cloud
      • Networking in cloud
      • Interazione tra ambienti cloud ed on premise
      • Storage in cloud
    • SECONDA PARTE: CLOUD COMPUTING PER LE AZIENDE
      • Considerazioni sui costi
        • Dipartimento IT
        • Bilancio e cash flow
      • Service Level Agreement (SLA)
      • Elasticità e scalabilità
      • Autoscaling, Cooldown time
      • Continuità operativa e DR in cloud
      • Ambienti e cicli di sviluppo dei sistemi software
      • Update automatici, P2T e T2T
    • APPENDICI
      • Protezione del Cloud
      • NSG e Security List
  • Introduzione e Storia dei Sistemi Centrali
  • Introduzione all’ Architettura dei Calcolatori (z/Architecture)

Testi di riferimento

  1. 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
  2. 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
  3. 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

 ArgomentiRiferimenti testi
1Introduzione del corso: Modelli Elaborativi Centralizzati, Distribuiti ed in CloudDispense del docente 
2Modelli Elaborativi: Centralizzati, Client server, DistribuitiDispense del docente 
3Architettura a tre livelliDispense del docente 
4Continuità Operativa e ScalabilitàDispense del docente 
5La necessità della stima del dimensionamento di un sistema informaticoDispense del docente 
6Metodologia del dimensionamentoDispense del docente 
7Disegno della topologia di un sistema informaticoDispense del docente 
8Comprendere la virtualizzazioneDispense del docente 
9Virtualizzazione del sistema: hypervisor, virtual machine, risorse virtualizzateDispense del docente 
10Applicare la virtualizzazioneDispense del docente 
11Carateristiche del Cloud Computing e modelli di deployment (IaaS, PaaS, SaaS)Dispense del docente 
12Cloud computing per le aziendeDispense del docente 
13Introduzione e Storia dei Sistemi CentraliAutori Vari. IL Mainframe - IBM 2010 
14Introduzione 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):

  1. I server logici sono riavviati automaticamente su un nodo attivo
  2. Esiste una sola istanza del processo attiva ad un certo istante
  3. Il failover ad un altro nodo richiede l’intervento utente
  4. Il failover ad un altro nodo non richiede riconfigurazione client
  5. 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:

  1. Un server applicativo con 6 CPU@2.5GHz e 64 GB RAM
  2. Carico in load balancing con due nodi server applicativi, ognuno con 4 CPU@2.5GHz e 32 GB RAM
  3. 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 ...