Cloud paradigms Flashcards

1
Q

What is elasticity and how is it achieved?

Quali paradigmi non possono essere usati nel contesto cloud?

Quali sono le qualità qualificanti per le applicazioni cloud based?

Oltre ad astrarre il sw dall’hw cosa dobbiamo fare?

Quindi su cosa fa leva il paradigma cloud?

A

Dobbiamo essere capaci di fare scale up/down velocemente (tante VM a 1 VM o viceversa), evitiamo i colli di bottiglia, single point of failure, sincronizzazione.

Non possiamo applicare sincronizzazione su larga scala, avere dati consistenti, avere comunicazioni sincrone e comunicazioni all-to-all.

Scalabilità, elasticità e disponibilità. Inoltre devono adattarsi a worload fluttuante e gestione graziosa delle failure.

Dobbiamo astrarre i servizi di business dal software, diventando agnostici rispetto all’hardware, piattaforma e software ma non rispetto i processi di business.

Il paradigma cloud fa leva su parallelismo large scale a livello di processi, comunica in modo asincrono, e mantiene una consistenza lazy dei dati, li distribuisce in modo geografico e fa uso di caching.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qual’è la tassonomia di un servizio?

A

Un servizio è governato da policy, espone gli endpoints, implementa dei contratti e manda/riceve messaggi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quali sono i requisiti per un servizio internet?

Quali sono le problematiche del cloud computing?

Definizione di servizio e suoi concetti più importanti.

A

Un servizio internet deve essere:
- robusto e sicuro: garantire il continuo funzionamento e resistere a intrusioni
- scalabilità: indipendentemente dal carico del lavoro
- Usabilità: di facile utilizzo
- Costo: apparentemente gratuito (o abbordabili)
- Infrastruttura: basato su datacenter distribuiti
Il consumatore deve vederlo così.

__
Una delle problematiche è la rapida crescita ed evoluzione dell’internet, dei dati ed i requisiti di scalabilità, rendendo certe soluzioni obsolete. Inoltre bisogna fare attenzione ai reclami dei clienti che può comportare una perdita di fiducia. Ora non si mira più alla tecnologia ma allo sviluppo di un servizio.

____

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.

I concetti più importanti per un servizio è la continuità, la presenza di un contratto, che definisce delle SLA, la reputazione che deve proteggere.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Come avviene il design di un servizio internet? Quali sono le pitfalls da evitare?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

In cosa consiste il Grid Computing?

Quali sono le caratteristiche?

Che cos’è il globus toolkit?

A

Il grid computing consiste nell’unione per determinate unità di tempo di unità informatiche(gridlet) geograficamente distribuiti che comunicano e agiscono insoeme per compiere lo stesso scopo agendo come un’unica unità di calcolo.

Il grid computing può essere sia omogenea che eterogenea in termini di nodi, indipendenti fra loro, con una loro autonomia della rete e condividendo solo una porzione delle risorse.

L’idea è quella di creare un supercomputer distribuito.

Globus toolkit è un meccanismo per i sistemi grid, con scheduling basato su batch jobs e interratività limitata. Manca un modello economico chiaro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Come otteniamo le alte performance?

Quali gli obbiettivi?

Se per abbiamo una catena di servizi come evitiamo i bottleneck?

In cosa consiste la legge di Amdhal?

A
  • evitiamo overload e bottlenecks
  • forniamo tempi di risposta accettabili
    (evitare SpoF )

Dobbiamo garantire un certo throughput e tempo di risposta.
____
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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quali sono le possibili architetture?

In cosa consistono i modelli pre-SOA?

Che cos’è lo stub? Come funziona?

A
  • Monolitici
  • SOA
  • Microservizi
  • Serverless
    Tipicamente in ambiente aziende usano soluzioni ibride.
    ___

I modelli pre-SOA erano:
- RPC: Chiamata di procedura remota, creiamo un codice per asstrarre un’invocazione remota, viene usato il linguaggio IDL. In pratica è come una chiamata di funzione locale ma con lo stub nascondiamo la complessità.
- OO-RPC: usiamo Java in modo analogo del IDL
- Middleware orientato ai messaggi: Approccio client server con messaggi sincroni o asincroni con code di messaggi, tipico per fire-and-forget come le notifiche.

___

Il codice stub è una porzione di codice che simula il comportamento di un altro software:

  • il client chimata lo stub del client tramite procedura locale con il parametri inseriti nello stack
  • lo stub del client impacchetta i parametri di un messaggio ed effettua una chiamata di sistema per inviare il messaggio (impachettamento è detto marshaling)
  • il SO locale del client invia un messaggio alla macchina server
  • il SO del server manda il pacchetto allo stub (unmarshaling)
  • Infine la risposta fa la stessa procedura
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cosa sono i modelli SOA?

In quali scenari possiamo usarli?
__
Quali sono le caratteristiche delle SOA?
__
In cosa consista la SOAP? Come sono strutturati i messaggi? quali sono i limiti del SOAP?
__
In cosa consiste l’enterprise service bus?

A

Service Orient Architecture hanno un approccio rivolto al business, basata su componenti software creati per evitare software monolitici. In modo da essere riutilizzati e integrati con altri sistemi.
__
Ci sono 3 scenari:
- SOA intra-aziendali
- SOA inter-aziendali con rapporti B2B
- SOA inter-aziendali con servizi offerti liberamente
___
Gli elementi che caratterizzano le SOA sono:
- Servizio: composto da moduli, hanno una descrizione e un interfaccia d’accesso
- Tecnologie abilitanti
- Governance e politiche SOA
- Metriche SOA
- Modello organizzativo e comportamentale
__
Service Oriented Architecture Protocol, è una tecnologia di messaggistica di base basato su HTTP HTTPS, con dati scritti in XML. Un servizio web è identificato tramite URI e le sue interfacce e collegamenti sono descritti in XML.

Soap incapsulato in http:
Abbiamo HTTP header
SOAP ENVELOPE
SOAP HEADER
Payload
SOAP fault

I limiti del SOAP sono la lentezza del XML, è meglio il JSON.
___

L’entertprise service bus è una soluzione middleware per rendere la comunicazione tra i componenti dell’applicazione residenti su diverse macchine più facile da mantenere(quindi interconnette diversi servizi).
Le sue funzioni sono:
- Instradamento dei messaggi verso la destinazione
- Gestione di diversi modelli di comunicazioni (event based, async queue)
- agisce anche come broker
- connettore ponte per diversi protocolli
- supporta policy e QoS
- Monitor, logging, sicurezza

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

In cosa consistono i microservizi?

Quali sono i vantaggi? svantaggi?

Qual’è la differenza con i SOA?

A

Il paradigma a microservizi ha il vantaggio di avere deployment, testing e tempi di sviluppo agevolati. Purtroppo non tutte le applicazioni sono a microservizi, non è diffuso negli scenari tradizionale, dobbiamo coordinare la comunicazione e c’è del overhead.

SOA e microservizi modellano un applicaizione in unità più piccole, microservizi comunicano con API e non richiedono ESB.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

In cosa consiste l’architettura REST?

Quali sono i vincoli del REST? Quali sono le azioni tipiche?

Quali sono i metodi utilizzati?

Possiamo fare caching?

A

REST (Representation State Transfer) fornisce all’applicaizione un architettura stateless, utilizzando tutti i verbi del protocollo HTTP. Il concetto consiste nell’incapsulare una risorsa all’interno di un’entità (URI). Le risorse hanno una loro rappresentazione JSON tipicamente. I client e server hanno una loro URI, le azioni sulle varie entità sono mappate su messaggi, non servono servizi ausiliari per il funzionamento.

I vincoli dell’architettura REST sono:
- Modello client-server
- Operazione stateless
- Risultati salvabili in cache
- Struttura a strati
- Un servizio REST si può interfacciare ad altri
- URI permette di fornire una rappresentazione uniforme delle azioni e dei messaggi descrittiva

Le azioni tipiche sono le CRUD.

Abbiamo POST(crea risorsa), GET(prende), PUT(modifica), DELETE, HEAD(controlla se esiste o cambiata), OPTIONS(quali sono i metodi supportati)

Possiamo fare caching della richiesta e definire un TTL, possiamo usare anche un etag che tramite md5 digest della rappresentazione della risorsa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

In cosa consistono le restful API?

I rest hanno IDL?

Cosa sono i protocolli ipermediali?

Quali sono i requisiti per le Rest APIs?

A

E’ lo standard de facto per la costruzione dei servizi distribuiti.

I servizi REST non hanno supporto diretto per IDL, mentre SOAP può generare codice STUBS da WDSL (Web Service Descriptor Language) che è definito in XML per la creazione di documenti per la descrizione di servizi web. Quindi a Restful web service serve un description language per essere descritte/visualizzate/prodotte.
___
Le chiamate REST devono avere controllo dei media che il client può ottenere dal servizio e che il server può servire. In pratica la rappresentazione dell’oggetto deve essere in grado di dire al cliente cosa può fare con l’oggetto o le azioni correllate che può intraprendere. In pratica il cliente non deve avere una conoscenza a priori di come interagire con un applicazione, ma avere un concetto di hypermedia.
___

  • devono essere stateless
  • bullet proof: gestione errori e controllo degli input
  • progettate dall’esterno verso l’interno in modo che i lenti cambiamenti interni non vengano rilevati
  • Auto descrittive: Devono usare documentazione standard per le API, come swagger
  • Riutilizzabili: configurabili non codificate
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Qual’è la differenza tra orchestrazione e coreografia?

Quando abbiamo servizi collegati tra di loro come garantiamo la resilienza?

A

Orchestrazione: Un’autorità centrale controlla l’esecuzione dei servizi noti.

Coreografia: Ogni componente conosce il proprio set di azioni prestabilite che deve compiere in relazione agli altri elementi con cui deve agire. Abbiamo un event stream come ESB, dove gli elementi pubblicano e ricevono.

___

Nei servizi web, dobbiamo garantire la robustezza quindi tolleranza a crash, malfunzionamenti in cascata… Per evitare tali problemi dobbiamo essere stateless, in modo da non perder informazioni, altrimenti la migrazione diventa complicata, inoltre dobbiamo scrivere chiamate REST robuste e capaci di gestire errori e ritardi.

Un altro modo è l’uso di circuit breakers, che funge da intermediario per le operazioni che possono fallire, monitorano le failure e decidono di consentire il proseguimento all’operazione oppure dare un’eccezzione e segnare il servizio come bad.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cosa sono le EDA? Quali osno le sue caratteristiche?
Quali esempi di prodotti ci sono?

Come raggiungono la scalabiltà?

A

Event Driven Architecture sono un’alternativa al REST, è UN’architettura flessibile e reattiva ai cambiamenti in tempo reale.

  • Gli elementi che generano notifiche non devono neccessariamente conoscere i componenti software del ricevente
  • le notifiche indicano un cambiamento nello stato del sistema
  • le notifiche possono essere innescate da fonti esterne come input utente, condizioni ambientale o da notifiche interne come invio dati pipeline workchain
    ___

AMQP (Advanced Message Queuing Protocol)

MQTT (Message Queue Telemetry Transport): I messaggi sono in formato chiave-valore inoltrati a un intermediario(broker) che li manda ai client destinatari (es. sensore -> broker –> sub)

Apache Kafka: Passiamo da entità contenute nel db a sequenze non ordinate descritta nei logs, in pratica eventi, molto più scalabili dell’entità. Ogni log ha un topic. Si focalizza su sclabilità e tolleranza a failure (pagata in termini di costi).

___
EDA utilizza meccanismi di:
- Async comunication: con code salvate nel buffer, i consumer processano i messaggi come meglio possono, rallentando ma mai in down.

  • Accoppiamento libero: I pubblisher non sanno nulla dei subs
  • Eventual consistency: utilizziamo cache per memorizzare i dati aggiornati per ridurre il carico del sistema, mantenendo i dati in buono stato per i nodi. Con un certo grado di imperfezione riesce a raggiungere l’ACID e il CAP.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly