Universita Ferrara Cloud Computing Open

Il Cloud
Computing
Open Source
Ing. Marco Marchini
Open Source Software (OSS)
Open Source indica un metodo di sviluppo del software
in cui gli autori del software stesso ne permettono e
favoriscono il libero studio e l’apporto di modifiche da
parte di altri programmatori. L’intero processo è
regolato dall’applicazione di apposite licenze d’uso.
Le licenze Open Source
● favoriscono la redistribuzione libera del software;
● ne assicurano la disponibilità del codice sorgente;
● ne permettono la modifica al fine di creare lavori derivati.
La filosofia è quella di sfruttare le potenzialità dello sviluppo distribuito del software da parte di
comunità di programmatori, al fine di assicurare una maggior qualità, affidabilità e flessibilità dei
prodotti a costi inferiori ed evitando vendor lock-in.
Tali licenze comunque pongono determinati vincoli
● gli autori del software devono essere menzionati anche nelle versioni modificate, lasciando
intatto il loro copyright;
● in seguito a una modifica, non è possibile applicare una licenza d'uso incompatibile con la licenza
originaria;
● il software non è usabile se non si rispetta la licenza;
● quando si distribuisce un eseguibile occorre distribuire insieme anche i sorgenti.
Esempi di software Open Source
Ambito server:
BIND (server DNS)
Apache, NGINX (server Web)
Sendmail, Postfix (server mail)
Linguaggi e strumenti per lo sviluppo di applicazioni:
Python, Perl, PHP, Ruby, Java
Eclipse, NetBeans, Plone, Ruby on Rails
MySQL, PostgreSQL
Applicazioni per gli utenti finali:
LibreOffice, 7-Zip, VLC
Firefox, Thunderbird, Gimp
Android!!
Perché Cloud Open Source?
OSS tipicamente user-driven, risolve problemi reali
Bassa barriera di partecipazione consente la formazione di
comunità di sviluppatori, indipendenti o all’interno di
aziende partecipanti, per risolvere i problemi più sentiti
dagli utilizzatori
Apache Cassandra (database): Facebook, Rackspace,
Twitter, Digg, Reddit
Hadoop (framework per applicazioni distribuite):
Yahoo!, Cloudera
Xen (hypervisor - monitor di macchine virtuali): Citrix,
Oracle, Fujitsu, Intel, HP, AMD, …
Perché Cloud Open Source?
“Release early, release often” (Eric S. Raymond)
Ciclo di rilasci aggressivo
● feedback rapido da parte di chi testa il sistema
● la tecnologia rimane al corrente con lo “state-of-theart”
● i fornitori del servizio Cloud possono contribuire alla
scoperta e soluzione di errori, senza aspettare i vendor
Perché Cloud Open Source?
Solitamente quello che frena gli utenti dall’utilizzare
software Open Source è l’eventuale difficoltà nell’uso di
tale software
Il Cloud Computing elimina la necessità di essere esperti
per provare a usare software Open Source
Nel mondo Cloud ogni applicazione è trattata come
servizio disponibile per l’utente finale, senza bisogno di
operare installazioni/configurazioni complesse
Perché Cloud Open Source?
Apertura dei dati, degli standard, delle API
libvirt: toolkit di virtualizzazione che
permette di usare qualsiasi
hypervisor (Open Source o meno)
libcloud: libreria Python standard
che astrae le differenze tra API di
diversi Cloud provider
jclouds: libreria Java che
fornisce API per la portabilità
su diversi Cloud
promuove, anche grazie all’aiuto di organizzazioni di
standard, l’interoperabilità tra Cloud di diversi fornitori
(federazione delle Cloud)
Storia del Cloud Open Source
Open Source
2006
2007
2008
2009
2010
2011
2012
Proprietari
Amazon EC2
Google App Engine
Progetti IaaS e PaaS Open Source giovani ma in rapido sviluppo
A oggi, il mondo Cloud Open Source sembra convergere verso la soluzione OpenStack
OpenStack
Progetto fondato da Rackspace Hosting e NASA nel 2010, mira a
creare una piattaforma Infrastructure as a Service Open Source per
Cloud pubbliche e private.
Attualmente supportato da più di 150 aziende e 9000 persone, tra cui
➢ HP (primi deployment pubblici: HP Cloud),
➢ IBM (ricerca),
➢ Dell, AMD, Canonical, ecc.
Attività su OpenStack
Fonte: stackalytics.com
Architettura di OpenStack
Networking (Neutron)
Compute (Nova)
gestione della virtualizzazione
di rete
deployment e gestione su
larga scala di VM
scalabile di oggetti statici
Dashboard (Horizon)
portale web di gestione per
amministratori e utenti
Object Storage
(Swift) storage ridondante e
Image Service (Glance)
Identity Service (Keystone)
autenticazione unificata su tutto il
sistema
memorizzazione, recupero,
discovery, registrazione e
consegna di immagini di VM
Vantaggi di OpenStack
Progetto completamente Open (nel codice, nelle API, negli standard)
per creare Cloud pubbliche e private
Nessuna preferenza su software (Open Source o proprietario) e su
piattaforma hardware
● possibilità di sfruttare investimenti precedenti
● no vendor lock-in
● ottimo ambiente per la sperimentazione
Standard di riferimento nel mondo Cloud Open Source:
integrazione con numerosi componenti o moduli di terze parti per l’
aggiunta di funzionalità (automatizzazione, monitoring, fatturazione)
o per l’estensione del Cloud a PaaS (CloudFoundry, OpenShift)
Svantaggi di OpenStack
Tecnologia ancora molto recente, non consolidata
rispetto ad altri Cloud (Open Source e proprietari) già sul
mercato da più tempo, come OpenNebula (usato in campo
HPC) o il colosso Amazon Web Services
Software ancora in fase di sviluppo, gli amministratori che
usano OpenStack devono essere pronti a cambiamenti
Supporto tecnico carente, necessita maggiore
organizzazione
Non ha sistemi di monitoring e fatturazione integrati
Cloud Federation
Cloud pubblico
M
VM
ne
zio
Strumenti
condivisi
Gestione
va
tti
...
/a
Billing
ne
io
az
r
ig
{
Autenticazione
VM
Python/PHP
Cloud privato
(Enterprise B)
Java/Ruby/Node.js
Cloud privato
(Enterprise A)
Motivazioni per la Cloud Federation
Lo studio e la sperimentazione in ambito Cloud Federation sono
importanti per le possibilità che aprono
Punto di vista dei fornitori dei servizi:
● load balancing (distribuzione carico computazionale e traffico)
● gestione picchi di attività
● aumento della disponibilità dei propri servizi tramite estensione
presenza territoriale
● sfruttamento di risorse altrimenti sottoutilizzate
Punto di vista dei fruitori dei servizi:
● maggior possibilità di scelta
○ a livello di utente, tra servizi di diversi provider
○ a livello di applicazione, tra infrastrutture e piattaforme di
diversi provider
La Cloud Federation è considerata il futuro del
Cloud Computing
Sfide in ambito Cloud Federation
La Cloud Federation è un tema di ricerca ancora giovane:
● astrazione dei fornitori di servizi (provider)
a. esecuzione e migrazione di VM, anche attive, in modo rapido
ed efficiente su Cloud di diversi provider
b. condivisione e gestione del carico (computazionale e di
storage) tra i diversi provider
c. distribuzione dei servizi tra i vari provider in modo da
consentire elevate performance e riduzione dei costi
● definizione e implementazione di uno schema di autenticazione
comune
● sicurezza e privacy dei dati e delle applicazioni ospitate nei vari
sistemi, stabilite tramite redazione di appositi agreement che ne
garantiscano i diritti di sfruttamento
Altri progetti Cloud Open Source
Cloud Foundry è il progetto PaaS Open Source iniziato da
VMWare
Supporta diversi framework, Cloud provider e servizi, il
tutto in una piattaforma scalabile
Molteplici linguaggi di programmazione (Java/Spring,
Groovy/Grails, Ruby on Rails/Sinatra, Node.js, .Net)
Ospitato da diversi Cloud provider, privati e pubblici
(vSphere, AWS, Azure, Rackspace, OpenStack, Ubuntu)
Ancora in fase beta, ma liberamente scaricabile
Cloudify è un popolare progetto Open Source, già in
produzione, che permette alle aziende di portare in modo
semplice qualsiasi applicazione (Java, .NET, Groovy, Ruby,
C++, Node.js, Spring, Chef) su un qualsiasi Cloud (pubblico
o privato), senza necessità di modificare il codice.
Si avvale di API CLI, REST e Web.
Altri progetti Cloud Open Source
CumuLogic è una PaaS Open Source per applicazioni Java
e Spring.
Al momento free in versione beta, supporta diversi Cloud,
Open Source e proprietari (Amazon EC2, OpenStack,
CloudStack, Eucalyptus, VMWare vSphere)
OpenShift è la soluzione PaaS offerta da RedHat, uno dei
leader nel mondo Open Source e produttrice dell’omonima
distribuzione Linux.
Supporta applicazioni Java, Java EE, Python, Perl, PHP,
Ruby, Node.js e praticamente tutti i Cloud provider,
pubblici e privati.
Ancora in versione beta, per ora offre due piani tariffari:
uno free con determinati limiti di utilizzo e uno a
pagamento che include supporto commerciale di RedHat
Altri progetti Cloud Open Source
… MOLTI altri ...
Conclusioni
Il software Open Source aiuta lo sviluppo di tecnologie
Cloud tramite collaborazione
Il Cloud aiuta il software Open Source rendendolo più
facile da provare e usare
Poiché il Cloud Computing promette economie di scala,
esso richiede una partecipazione di massa per avere
successo
Il software Open Source guida la missione di ottenere l’
interoperabilità all’interno del Cloud tramite federazione,
la quale a sua volta potrà velocizzare l’adozione estesa del
Cloud Computing