Cloud principles Flashcards
Quali sono i requisiti per un servizio internet moderno? Quali sono le pitfalls del designing?
Quali sono le fasi?
Cos’è un servizio?
Tassonomia di un servizio.
Quali sono le metriche di performance?
Quali sono alcune problematiche per quanto riguarda il computing dei data center?
Un servizio internet deve essere:
- Robusti : garantire il continuo funzionamento
- Performanti
- Sicuri: resistere a intrusioni
- Scalabili: indipendentemente dal carico del lavoro
- Economicamente sostenibili
- Avere un infrastruttura
- Usabilità: di facile utilizzo
- In grado di gestire grandi traffici di dati e richieste
- Mantenere i clienti soddisfatti
- Mantenere la reputazione
- Costo: apparentemente gratuito (o abbordabili)
- Infrastruttura: basato su datacenter distribuiti
______
Un ingegnere cloud ha il compito di implementare un sistema scalabile che garantisca continuità, attraverso le fasi:
- deign
- build
- test
- document
- monitor
- fix/update
Dobbiamo evitare colli di bottiglia e single point of failure, sovraccarichi
____
Un servizio è la capacità di un sistema di fornire in modo continuativo una o più risposte in presenza di specifiche richieste al sistema da parte di un utente/cliente.
I concetti più importanti per un servizio è la continuità, la presenza di un contratto, che definisce delle SLA, la reputazione che deve proteggere. Ci possono essere dei contratti, che definiscono SLA ed eventuali penali.
____
Un servizio è governato da policy, espone gli endpoints, implementa dei contratti e manda/riceve messaggi.
___
Throughput e response time. Dobbiamo garantire un certo throughput e tempo di risposta.
___
se soddisfiamo il minimo del workload perdiamo clienti, se soddisfiamo la media perdiamo nei picchi e sprechiamo energia, se soddisfiamo i picchi buoni guadagni ma consumiamo tanto.
Il Design è inaffidabile se non sappiamo quanti client avremo, le richieste, essere vulnerabili a hotspots o burst di richieste, il carico di lavoro potrebbe variare.
____
Quali sono i paradigmi del Cloud computing?
Everything as a service.
Abbiamo 2 tipi di paradigmi, servizio e deployment(infrastrutture con caratteristiche)
Faas
Saas (controllo dell’applicazione con controllo admin client-side)
Paas (possiamo controllare l’applicativo e middleware con una programmibilità limitata)
Iaas (Ho controllo totale a livello di OS, ma non di Hypervisor e HW)
On-site
____
Ci sono casi dove uniamo due paradigmi come:
SaaS plaftform extensions(Saas + Paas): API e integrazione con altri servizi
IaaS+ (Paas + Iaas): Application container, dev tools
Quali sono le tipologie di paradigma?
Public cloud: Infrastruttura cloud disponibile al pubblico, tipicamente per diversi tipi di servizio
Community Cloud: Infrastruttura gestita da diverse organizzazioni (pubbliche amministraizoni)
Private Cloud: Disponibile per solo un organizzazione, gestito dall’organizzazione o da una serva parte (exclusive cloud)
Hybrid Cloud: Infrastruttura composta da 2 o più clouds, uniti da una tecnologia standarizzata
(Amazon , Google …)
Qual’è stata la transizione da legacy a cloud?
Nota: possiamo avere più server in ogni caso
- Vertical silo: 1 server 1 app
Tipico approccio di deployment di
un’applicazione, non e proprio una struttura cloud, ma
e
stata la prima implementazione simile. Architettura oneto-one, dove ad ogni server corrisponde un’applicazione.
Si pu`o cercare di consolidare i vari server in un singolo e
creare della macchine virtuali su cui far girare le applicazioni, tuttavia i server rimangono spesso sotto utilizzati.
- Server consolidation: 1 server 1vm 1 applicazione (utile per il vertical scaling configurando la vm)
- 1 server 1 VM di management e Vm delle app
Definizione del cloud computing definendo i suoi obbiettivi
Il cloud computing è un modello per l’accesso immediato a un set/pool configurabile risorse di computing condivise e configurabili (rete, server, storage…) che possono essere rapidamente forniti (on demand) e impiegati con il minimo costo di gestione e l’interazione del servizio provider. Cercando di promuovere elasticità e sicurezza.
Dobbiamo rendere le perdite in profitti, quindi utilizzare la potenza computazionale inutilizzata per altri servizi che portano un profitto.
Un sistema cloud quali paradigmi adotta?
- Parallelismo su larga scala
- consistenza lazy, distribuito geograficamente e uso di caching
- comunicazione asincrona e IPC (Inter process comunication) limitate
- Logiche diverse da implementare come MVC
- Replicazione sia verticale che orinzontale
Se per abbiamo una catena di servizi come evitiamo i bottleneck?
In cosa consiste la legge di Amdhal?
Se abbiamo una catena di servizi, dobbiamo garantire che tutti abbiamo lo stesso data rate, altrimenti dobbiamo replicare quelli che hanno data rate minore (il codice deve essere parallelizzabile).
__
La legge di ahmdal misura lo speed in un sistema parallelo
Dato:
- Tp: tempo richiesto per la parte di elaborazione parallela
- Ts: tempo richiesto per la parte di esecuzione sequenziale
- p: Tp/(Ts +Tp)
- Tn: Ts + Tp/n
- n: numero di processori
S = (Ts + TP)/(Ts + Tp/n)
Per n -> inf
S = S/(1-p)
Il miglioramento delle prestazioni di un sistema che si può ottenere parallelizzando una certa parte del sistema è limitato dalla frazione di tempo in cui tale parte è effettivamente utilizzata.