Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Tesi di Laurea Specialistica
Una piattaforma adattativa in ambiente cloud
per la transcodifica e per la memorizzazione di file
video
Anno Accademico 2011-2012
Relatore
Ch.mo Prof. Simon Pietro Romano
Correlatore
Ch.mo Ing. Antonio Sergio
Candidato
Lorenzo Carullo
matr. 885/583
Parte II
Introduzione
INTRODUZIONE
SECONDO il National Institute of Standards and Technology (NIST) (vedi Biblio-
grafia [B-10]), il Cloud Computing è:
Cloud computing is a model for enabling ubiquitous, convenient, on-demand network
access to a shared pool of configurable computing resources (e.g., networks, servers,
storage, applications, and services) that can be rapidly provisioned and released with
minimal management effort or service provider interaction
ovvero un modello che abilita l’accesso via rete, in modo ubiquitario, conveniente e su
richiesta, ad un insieme condiviso di risorse computazionali configurabili (reti, servers,
sistemi di memorizzazione, applicazioni e servizi) che possono essere rapidamente
acquisite e rilasciate con minimo sforzo o minima interazione con il fornitore del
servizio.
Le piattaforme di Cloud Computing (CC) (Cloud computing platforms) stan-
no acquisendo una popolarità crescente. Ma a cosa è dovuta questa straordinaria
diffusione? Nel clima economico attuale, quali sono i vantaggi unici che una cloud
computing architecture può offrire a un’azienda? Ma soprattutto, cosa si intende per
cloud computing? A queste e a molte altre domande si risponderà nel corso di questa
tesi.
6
Introduzione
Soprattutto si approfondirà una piattaforma di CC, ovvero AWS, di cui, in
particolare, si farà un approfondimento dei servizi che offre.
Infine verrà mostrato un progetto sviluppato presso la “Epsilon S.r .l.” , sfruttan-
do ampiamente i servizi offerti da AWS, ovvero la creazione di un’architettura scalabile,
sicura e adattabile per la transcodifica di file video.
L ’organizzazione della struttura complessiva della tesi sarà la seguente:
• Parte I: Introduzione
• Parte II: Introduzione al Cloud Computing e Amazon Web Services, in cui si farà
un approfondimento teorico sui due argomenti;
• Parte III: Cloud Encoder, ovvero l’architettura cloud - based da me realizzata;
• Parte IV: Conclusioni e Sviluppi Futuri
• Parte V: Ringraziamenti
• Parte VI: Appendici
• Parte VII: Acronimi
• Parte VIII: Bibliografia e Sitografia
7
Parte III
Cloud Computing e Amazon Web
Services
1
INTRODUZIONE AL CLOUD COMPUTING
I computer sono incredibilmente
veloci, accurati e stupidi. Gli uomini
sono incredibilmente lenti, inaccurati
e intelligenti. L ’insieme dei due
costituisce una forza incalcolabile.
Albert Einstein [S-33]
Introduzione
CHE cos’è il CC? Negli ambienti tecnologici non si parla d’altro e in ambito azien-
dale in molti si pongono la stessa domanda: “Che cos’è il CC e cosa può fare per la mia
azienda?”
Una simpatica affermazione che ho sentito spesso in giro è:
il cloud è come il sesso ai tempi del liceo: tutti ne parlano, pochi sanno cos’è, pochissimi
lo sanno far bene.
Nel corso di questo capitolo cercherò di dare quantomeno un’idea su tutto ciò
che riguarda il CC.
9
1. Introduzione al Cloud Computing
Molti reparti Information Technology (IT) sono chiamati a dedicare una parte
significativa del loro tempo a frustranti progetti di implementazione, manutenzione e
upgrade che, troppo spesso, non generano un effettivo valore per il bilancio dell’azienda.
Ed ecco che entra in gioco la tecnologia del cloud: minimizzare il tempo dedicato ad
attività a basso valore aggiunto e concentrarsi sulle attività strategiche in grado di fare
la differenza per l’azienda.
Ovviamente la fase di startup del cloud è stata (ed è tutt’ora) lenta: c’è in giro
ancora molto scetticismo. Però, aver sperimentato direttamente i numerosi vantaggi
offerti da questa nuova tecnologia informatica, nessuno dei dirigenti, in precedenza
scettici, si è pentito della propria scelta.
1.1 Prima e dopo il Cloud Computing
LE applicazioni aziendali tradizionali sono da sempre molto complicate e costose.
La quantità e la varietà di hardware e software necessari per la loro esecuzione sono
soverchianti. È necessario un intero team di esperti per installarle, configurarle, testarle,
eseguirle, proteggerle e aggiornarle.
Se si moltiplica tutto questo per decine o centinaia di applicazioni è facile capi-
re perché anche le più grandi aziende con i migliori reparti IT non riescono ad ottenere
le applicazioni di cui hanno bisogno. Le piccole e medie imprese sono letteralmente
fuori gioco.
Il CC elimina tutti questi problemi perché non richiede al cliente di gestire
l’hardware e il software: a occuparsene è un fornitore esperto come (nel nostro caso)
AWS [S-22].
Le applicazioni basate su cloud possono essere operative in pochi giorni (o
ore a seconda del caso) e sono meno costose. Con un’applicazione cloud, è sufficiente
10
1. Introduzione al Cloud Computing
aprire un browser, accedere, personalizzare l’applicazione e iniziare a usarla.
Le aziende eseguono tutti i tipi di applicazioni in the cloud, quali la gestione del-
le relazioni con i clienti, Customer Relationship Management (CRM), le risorse umane,
la contabilità e molto altro ancora. Alcune delle più grandi aziende a livello mondiale
hanno trasferito le proprie applicazioni in the cloud con AWS dopo aver rigorosamente
testato la sicurezza e l’affidabilità della nostra infrastruttura (vedi figura 1.1).
Figura 1.1: Aziende e Cloud.
1.2 Servizi offerti dal Cloud
SI PARLA tanto del cloud, ma quali sono realmente i servizi che offre? Vediamone
qualcuno:
• Comprovata integrazione dei servizi Web. Per la sua stessa natura, la tecnologia
di CC è molto più semplice e rapida da integrare con le altre applicazioni aziendali,
sia software tradizionali che basati su infrastruttura di CC, sia forniti da terze parti
che sviluppati internamente;
11
1. Introduzione al Cloud Computing
• Fornitura di servizi di altissimo livello. Le infrastrutture di CC assicurano una
scalabilità notevolmente superiore, prestazioni di ripristino di emergenza com-
plete e tempi di inattività straordinariamente bassi;
• Nessun componente hardware o software da installare. Infrastruttura di CC al
100%. L ’aspetto forse più interessante della tecnologia del CC è la sua semplicità,
oltre al fatto che comporta spese in conto capitale notevolmente più basse;
• Distribuzione più rapida e con rischi più bassi. Scegliendo un’infrastruttura di
CC si potrà diventare operativi in tempi molto più brevi. Infatti, si ridurranno
notevolmente i tempi per l’accesso alla nuova soluzione. Le applicazioni che
sfruttano la tecnologia di CC vengono infatti implementate nel giro di alcune
settimane o pochi mesi al massimo, anche quando vengono effettuati profondi
interventi di personalizzazione e integrazione;
• Supporto per personalizzazioni complesse. Alcuni professionisti IT ritengono
erroneamente che sia difficile o addirittura impossibile effettuare personalizza-
zioni complesse delle computing applications e pertanto che la tecnologia di
CC non sia una scelta adatta per la loro impresa. Al contrario, l’infrastruttura di
CC non solo consente di effettuare profonde personalizzazioni e configurazioni
delle applicazioni, ma mantiene inoltre tutte le personalizzazioni effettuate in
precedenza, anche durante gli upgrade. Ma c’è dell’altro: una CC platform offre la
tecnologia ideale per lo sviluppo di applicazioni capaci di supportare le esigenze
in costante evoluzione della propria organizzazione;
• Aggiornamenti automatici senza coinvolgimento delle risorse IT. Le infra-
strutture di CC mettono fine a un grande problema per molti reparti IT: con le
applicazioni tradizionali, dopo aver eseguito l’upgrade alla versione più aggior-
nata è infatti necessario investire tempo e risorse (di cui spesso non si dispone)
12
1. Introduzione al Cloud Computing
per ricreare le varie personalizzazioni e integrazioni. La tecnologia di CC non
costringe a scegliere se eseguire l’upgrade oppure conservare il frutto di un duro
lavoro perché tutte le personalizzazioni e integrazioni vengono automaticamente
mantenute durante gli upgrade.
1.3 Caratteristiche Essenziali del Cloud Computing
DAL documento ufficiale del NIST
1
, ricaviamo le 5 caratteristiche essenziali del
CC:
• On-demand, self-service. Gli utilizzatori possono acquisire le risorse secondo le
necessità del momento, autonomamente, automaticamente;
• Resource pooling. I fornitori cloud gestiscono le risorse infrastrutturali in modali-
tà pooled (pronte per l’uso), shared (condivise) e multi-tenant (isolate) per poterle
assegnare dinamicamente ai vari utilizzatori, in funzione della loro domanda;
• Broad network access. Le risorse devono poter essere accessibili tramite mec-
canismi standard che abilitano l’uso da parte di client eterogenei (smartphone,
tablet, laptop, workstation);
• Rapid elasticity. I servizi devono poter essere acquisiti e rilasciati elastica-
mente in modo da poter scalare (in e out) in relazione alla domanda corrente.
L ’utilizzatore ha l’illusione di poter accedere ad “illimitate” risorse;
• Measured service. I sistemi cloud controllano ed ottimizzano l’uso delle risorse
tramite continua misura degli indicatori di performance; le misure sono accessi-
1
L ’allegato alla voce della Bibliografia [B-10].
13