20
Il Cloud Computing Open Source Ing. Marco Marchini

Il Cloud Computing Open Source - CENTRO COMPUTER SPA · Linguaggi e strumenti per lo sviluppo di applicazioni: Python, Perl, PHP ... feedback rapido da parte di ... integrazione con

Embed Size (px)

Citation preview

Il Cloud ComputingOpen 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-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

Attività su OpenStack

Fonte: stackalytics.com

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

Altri progetti Cloud Open Source

… MOLTI altri ...

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