vuoi
o PayPal
tutte le volte che vuoi
KVM
KVM (Kernel-based Virtual Machine) è una soluzione full virtualization per linux su hardware x86. come ormai tutte le
macchine virtuali recente supportano la virtualizzazione assistita hardware
Costi della virtualizzazione
Vi sono da considerare anche le seguenti variabili:
1. Una VM è un equivalente di un computer
2. Un software OEM è valido per un solo tipo hardware
3. Per sistemi virtuali c'è bisogno di licenze retail oppure multilicenza:
4. Ogni sistema ha bisogno di vari tipi di licenze (software,SO, ecc)
Riguardo ai SO, vi possono essere delle licenze "per processore/core" e anche licenze per "istanze in esecuzione".
Virtualizzazione Client e Server
Virtual Desktop
Rende disponibile un ambiente desktop completo, che funziona su un datacenter server: gli utenti si collegano in
remoto all'ambiente desktop da qualsiasi PC. Ciò è utile per lavori temporanei o remoti, e test.
I benefici di ciò sono una migliore gestione, la riduzione del bisogno di comprare hardware e garantisce un maggior
livello di stabilità del sistema. Vi sono diversi tipi di virtual desktop:
Singolo desktop remoto: in questo modo si gestisce in modo remoto un pc. Essi sono molto diffusi per visualizzare il
desktop di un server a cui non si ha accesso (Es. Teamviewer)
Applicazioni Web e Cloud Pagina 9
Desktop condivisi: esso si basa su un server che ospita gli utenti desktop e le applicazioni. La condivisione del desktop è
molto diffusa poiché tutta la potenza di calcolo risiede su un computer solo mentre solo i mouse ed i monitor sono
collegati alla rete.
PC blade desktop fisici
Gli utenti hanno a disposizione di un proprio PC, ma l'hardware fisico è un "PC blade" all'interno di un "vano blade" nel
datacenter
Desktop di una macchina virtuale: è il contrario del desktop condiviso. Un unico client può ospitare desktop multipli.
Ecco come funziona la VDI (Virtual Desktop Infrastructure)
Central Hosting
Local hosting
Virtualizzazione del server
La virtualizzazione del server ha dei benefici enormi, in quanto riduce il TCO (Total cost of ownership):
Infatti, virtualizzando un server si risparmia hardware, elettricità e raffreddamento, ed inoltre si può mantere alto
l'utilizzo del sistema, rendendolo più efficiente (in genere i server stanno sotto il 10% dell'utilizzo)
Semplifica la gestione e la sicurezza del server e degli utenti.
Applicazioni Web e Cloud Pagina 10
APP CLOUD 3° Lezione
giovedì 15 ottobre 2015 21:05
Cloud
Le Radici del Cloud Computing
Prima di iniziare a parlare del cloud computing in se, soffermiamoci sulle radici che hanno portato alla formazione di
questo fenomeno. Soffermiamoci su questa immagine:
I 4 "componenti" del cloud computing sono:
• Hardware: Virtualizzazione, processori multi-core
• Tecnologie internet: Web 2.0, Web Services, SOA
• Sistemi Distribuiti: Grid Computing
• System Managment: Autonomic Computing
Tutti questi fattori contribuiscono a creare la Cloud.
Analizziamoli in dettaglio:
Sistemi Distribuiti: Un Sistema distribuito è formato da un dato
Numero di processori, amministratori, Sistemi operativi, legati
Da una rete di interconnessione. Agli occhi dell'utente però, è
Come se fosse una cosa sola.
SOA, Web Services, Web 2.0: Per Web 2.0 si intende un'evoluzione della piattaforma web: più nel dettaglio, è l'utente
che crea il contenuto (blog, forum, ecc.)
Sistemi Paralleli: Un sistema parallelo, diversamente da un sistema distribuito, è formato da solo un processore (un
sistema operativo) ma costituito da un numero di nodi.
Cos'è una Cloud?
La cloud è un paradigma che si basa sui concetti di autonomic computing, sistemi distribuiti, e utility computing . Può
fornire servizi quali servizi di storage, applicazioni di computing utilities(potenza di calcolo senza conoscere ciò che c'è
sotto).
La struttura hardware della cloud non è di rilevanza all'utente che la utilizza: tuttavia sono spesso fatte da cluster di
server con un S.O open source.
La tecnologia base su cui si basa la cloud è la virtualizzazione.
Per spiegare facilmente cos'è la cloud, facciamo un semplice paragone: noi utilizziamo la corrente elettrica per un sacco
di dispositivi, ma non sappiamo con precisione come funziona il tutto: in modo simile, nel cloud computing l'utente
utilizza le risorse (a vista dell'utente "illimitate") senza sapere cosa c'è sotto tutta quella potenza di calcolo.
L'utente può disporre di servizi come risorse di calcolo "on demand" e servizi "pay as you go"
Le carattereristiche essenziali del cloud computing sono:
• On Demand Self Service: L'utente prende risorse "on demand" ossia quanto gli basta per i suoi bisogni, senza il
bisogno di un'interazione "umana" con il service provider
• Broad Network Access: Le risorse sono disponibile ampiamente su tutta la rete, e supportano una vasta gamma di
dispositivi (tablet, smartphone, pc, ecc)
Applicazioni Web e Cloud Pagina 11
• Rapid Elasticity
• Measured Service
La cloud si divide in 3 modelli di sviluppo: IaaS (Infrastructure as a Service), PaaS (Platform as a Service), SaaS (Software
as a Service)
IaaS
Nella Infrastructure As A Service L'utente gestisce interamente CPU, storage, memoria, ecc. è in grado di installare ed
eseguire codice, come eseguire applicazioni o sistemi operativi. In poche parole la IaaS fornisce risorse virtualizzate on
demand.
L'utente tuttavia non gestisce l'infrastruttura stessa della cloud, ossia la gestione della virtualizzazione, ecc. quello spe tta
al provider.
Tra i vantaggi di utilizzo della IaaS vi sono sicurezza, affidabilità, e la completa gestione delle API.
Esempio di problema risolvibile dal IaaS: devo fare girare un sito web temporaneo, per qualche giorno -> "affitto" un
servizio IaaS per hostare il mio sito sul server
PaaS
La Platform As A Service è un po' più "limitante" rispetto alla IaaS: infatti l'utente è a disposizione di una piattaforma
dove installare o creare applicazioni. l'utente non gestisce più ne le risorse, ne il sistema operativo, ecc.
I servizi più diffusi a riguardo sono quelli di storage e backup, e multisync con dispositivi mobili
Esempio di problema risolvibile dal PaaS: devo offrire un dello storage a tutti i miei dipendenti ma non ho abbastanza
capacità fisica -> "affitto" un servizio di storage PaaS
SaaS
Nella SaaS l'utente si limita ad utilizzare le applicazioni di un cloud provider: ad esempio Gmail, Dropbox, Office365, ecc.
l'utente può soltanto utilizzare l'applicazioni, e non ha nessun controllo ne delle risorse ne di nessuna piattaforma. Tutto
è lasciato al cloud provider.
Esempio di problema risolvibile dal SaaS: il server di posta è lento ed ha frequenti crash -> utilizzo un servizio mail su
cloud.
Qua sotto uno schema per comprendere meno i 3 tipi di servizi:
Modelli di Deployment
Esistono diversi modelli di deployment (ossia "come viene distribuito il servizio"):
• Private Cloud: Fornita per uso esclusivo di una singola organizzazione che comprende più utenti. Spesso è gestita
Applicazioni Web e Cloud Pagina 12
• Private Cloud: Fornita per uso esclusivo di una singola organizzazione che comprende più utenti. Spesso è gestita
da una singola organizzazione
• Community Cloud: Fornita per uso esclusivo di specifiche comunità di utenti. Può essere gestita da una o più
organizzazioni.
• Public Cloud: Fornita per uso comune e al pubblico. Spesso gestita da organizzazioni di business o governativa.
• Hybrid Cloud: Combinazione tra due o più cloud infrastructure (private, community o public)
Tra i vantaggi comuni dei 3 servizi offerti abbiamo:
• Dati e servizi sono su un'infrastruttura remota
• Questi dati e servizi sono disponibili ovunque
• Modello di fornitura simile a quello di elettricità, gas
Si può utilizzare anche il cloud computing come se fosse un gigantesco supercomputer: infatti facendo lavorare i
terminali connessi alla cloud in parallelo, si arrivano a gestire grandissime quantità di dati (si pensi al DNA sequencing
fatto da computer in parallelo) Applicazioni Web e Cloud Pagina 13
APP CLOUD 4° Lezione
giovedì 5 novembre 2015 14:07
Web
Vi sono vari tipi di applicazioni internet: il web ( o world wide web, o WWW) è l'applicazione internet più usata.
Possiamo definire il web semplicemente come un insieme di ipertesti multimediali distribuiti su molti nodi.
Un ipertesto (hypertext) è un documento con struttura non sequenziale: più precisamente, è composto da vari "link"
interni ed esterni, che permettono all'utente di "saltare", "muoversi" tra vari argomenti.
Nell'ipertesto, oltre al testo abbiamo che immagini, musica, video, ecc.
Architettura utilizzato nel WWW è sempre l'architettura client-server: infatti il client (chiamato anche web browser)
permette all'utente di accedere e visualizzare pagine web: queste pagine web sono fornite dal web sever.
Delle ormai miliardi di pagine web presenti su internet, ognuna di esse deve essere identificabile ed univoca. A tal
proposito si utilizza l'URL (Uniform Resource Locator), ossia una URI (Uniform Resource Identifier) che oltre ad
identificare una risorsa fornisce anche un meccanismo per localizzarla.
Essa rispetta la sintassi URI in quanto: http: // hostname [:port] / path [? query]
(i campi tra parentesi quadri sono opzionali.) in genere gli utenti non vedono i parametri opzionali.
l'accesso al web è semplice ed intuitivo, analizziamo i passi:
1. L'utente inserisce un URL o clicca su un link
2. Il browser effettua il parsing dell'url, inviando una richiesta al server, e riceve una copia della pagina
3. Il server riceve la richiesta, seleziona la pagina e la invia al client
4. Il browser effettua il parsing della pagina HTML e la mostra all'utente.
Il trasferimento delle pagine web dal server al client avviene tramite il protocollo HTTP (HyperText Transfer Protocol).
Esso si basa su TCP e permette trasferimenti bi-direzionali.
Nella prima versione di HTTP erano presenti solo 3 operazioni: GET, POST, e HEAD.
Nella versione 1.1 invece sono state aggiunte le operazioni PUT e DELETE.
Analizziamole più in dettaglio:
• GET: la GET viene utilizzata per ottenere un documento.
• HEAD: Simile a GET, ma essa ottiene solo le informazioni dell'header. (utile per controllare se un documento
esiste e quanto è recente)
• POST: Simile a GET, ma codifica gli