Upload
vuongnhi
View
214
Download
0
Embed Size (px)
Citation preview
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-the-
art”● 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
promuove, anche grazie all’aiuto di organizzazioni di standard, l’interoperabilità tra Cloud di diversi fornitori (federazione delle Cloud)
jclouds: libreria Java che fornisce API per la portabilità su diversi Cloud
Storia del Cloud Open Source
2006 2007 2008 2009 2010 2011 2012
Amazon EC2 Google App Engine
Open Source
Proprietari
Progetti IaaS e PaaS Open Source giovani ma in rapido sviluppo
A oggi, il mondo Cloud Open Source sembra convergere verso la soluzione 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.
OpenStack
Architettura di OpenStack
Compute (Nova) deployment e gestione su
larga scala di VM
Networking (Neutron) gestione della virtualizzazione
di rete Object Storage (Swift) storage ridondante e
scalabile di oggetti statici
Dashboard (Horizon) portale web di gestione per
amministratori e utenti Identity Service (Keystone) autenticazione unificata su tutto il
sistema
Image Service (Glance) 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
Cloud privato(Enterprise A)
Cloud privato(Enterprise B)
Migrazione/attivazione VM
VMAutenticazione Billing Gestione...
Python/PHP Java/Ruby/Node.js
{
Stru
men
ti
cond
ivis
i
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 providerb. condivisione e gestione del carico (computazionale e di
storage) tra i diversi providerc. 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
Conclusioni
Il software Open Source aiuta lo sviluppo di tecnologie Cloud tramite collaborazioneIl Cloud aiuta il software Open Source rendendolo più facile da provare e usarePoiché il Cloud Computing promette economie di scala, esso richiede una partecipazione di massa per avere successoIl 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