Cloud Computing: futuro o moda?
Ieri mattina sul gruppo Windows Azure Italia di Linkedin è apparso un post interessante che aveva esattamente il titolo di questo post. Cloud Computing: futuro o moda ? La richiesta era quella di capire realmente quali fossere le differenze del Cloud rispetto ai sistemi classici di Hosting e se fosse veramente una piattaforma su cui investire per il futuro o solo una moda di passaggio. Condivido la risposta che ho dato al gruppo aggiungendo qualche altro spunto di discussione.
“Cerco di darti la mia visione del cloud dopo quasi un anno e mezzo che mi ci sono immerso.
La prima domanda è quella che mi sento rivolgere tutte le volte che partecipo a delle conferenze in cui parlo di Windows Azure : cosa c'è di diverso tra ASP, Hosting e Cloud ? Alla base di tutto credo ci sia un economia di scala che fà la differenza. Avere Data Center distribuiti nel mondo ognuno con la stessa infrastruttura, le stesse risorse, le stesse funzionalità, lo stesso sistema di gesione con centinaia di migliaia di server che possono essere allocati anche solo per qualche ora rende il cloud molto ELASTICO ed ECONOMICO. Ho messo in maiuscolo queste due parole (qui non c'è il bold :-)) perchè credo che la principale differenza stia qui. Quando hai bisogno di aggiungere risorse al tuo sistema e devi farlo nell'arco di 5 minuti e devi farlo in modo affidabile ecco che hai bisogno dell'economia di scala di cui parlavo prima. Hai virtualmente migliaia di server destinati a te senza averli pagati, li richiedi e ti vengono dati in un attimo e li paghi per quanto ti servono. Difficile (anche se non impossibile) ottenere lo stesso tipo di comportamento in modalità hosting o ASP. Elastico però vuol dire anche rilasciare i server quando non servono più e solo chi si può permettere di averne a disposizioni così tanti può anche permettersi di riallocarli ad altri. Economia di scala vuol dire abbassare i costi di gestione perchè la corrente, il condizionamento, la gestione viene suddivisa per tutti i server che vengono gestiti in ogni Datacenter e quindi evidentemente i costi alla base sono più bassi e quindi il costo per l'utente finale è normalmente più basso. Ma c'è anche un aspetto che magari un pò nascosto identifica in maniera chiara la differenza tra hosting e cloud : UNIFORMITA'. In ogni momento , qualunque sia il Datacenter , sai a priori che tutti i server sono uguali , che si comporteranno alla stessa maniera, che il sistema è lo stesso, che l'Hyper V che controlla le macchine è uguale per tutti . E questa è una grande notizia perchè significa dimenticarsi di tutte le incompatibilità indipendente da dove si decide di distribuire la propria applicazione.
Poi la domanda del secolo : quanto costa ? Qualche mese fa feci un post per raccontare in modo spero semplice come si calcola il costo del cloud ma è evidentemente un calcolo complicato ma per la natura del sistema stesso. Se ti do la possibilità di pagare a ora e per ogni risorsa che usi è evidente che calcolare il costo di esercizio è complicato e richiede molta attenzione per evitare di sottovalutare questo aspetto. Al tempo stesso la mia esperienza mi dice che il costo di Windows Azure è sempre di almeno un unità di grandezza rispetto a quello che sarà poi il prezzo di vendita della soluzione che verrà venduta (vale quasi in tutti i casi). Il fatto di essere elastico mi permette di ridurre al limite i costi , magari per esempio riducendo il numero di server durante il weelk end o durante la notte. Se puoi vuoi capire quanto costa nel dettaglio allora mandami una mail a fsantini@microsoft.com :-).
Ultimo punto, la migrazione. Windows Azure ha come base di partenza Windows Server 2008R2, .NET Framework 4.0 e IIS 7.0. Se ho un applicazione fatta così la migrazione è instantanea (sempre che si sia gestito in modo corretto lo stato dell'applicazione con più front end, ma questo non è solo un problema del cloud). Se hai un applicazione in PHP, o Java , o Ruby puoi tranquillamente migrare la tua applicazione su Azure con pochi o tanti sforzi che dipendono molto da come è stata scritta e da queli engine sono stati usati. Nel tuo caso per esempio, paradossalmente potevi caricare sulla tua macchina anche il framework 2.0 e far girare tutto senza ricompilare niente ma avresti perso tutti i vantaggi del Platform as as Service che chi sviluppo software su WIndows Azure apprezza.
Parliamo della sicurezza che è una di quelle domande che mi sento rivolgere sempre. I miei dati e la mia applicazione stanno nel cloud, come faccio ad essere sicuro che nessuno potrà mai accedere a quelle informazioni tranne me ? Si parte dal presupposto che gestire i dati sui propri server sia più sicuro o poter andare a vedere il server all’interno della server farm dia maggiori garanzie su come i dati vengono gestiti. Ma siamo proprio sicuri che sia così ?
Io personalmente non ci credo, sarà perchè ho avuto la fortuna di visitare il Datacenter di Dublino e la gestione della sicurezza è maniacale. A partire dall’arrivo al Datacenter, hai controlli di Identità, alla gestione della sicurezza interna, alla certificazione delle persone autorizzate a lavorare all’interno del Datacenter stesso. Chi fornisce una piattaforma Cloud ha sicuremante come prima priorità la sicurezza perchè su quella si basa la fiducia e l’adozione da parte di partner e clienti. E’ chiaro che anche gli hoster locali pensino alla sicurezza in modo maniacale ma se mi permettono di accedere alle mie macchine vuol dire che lo fanno fare anche agli altri e quindi il potenziale problema c’è. Nel Cloud non ci si va, non si prende la macchina o l’aereo per andare a vedere il proprio server, semplicemente non si può. Allora meglio che li tengo in casa che sono sicuro….forse no. Oggi sono in aumento i furti di dati ma non come avvenivano una volta, cioè attraverso virus o attacchi interni, semplicemente entrando nelle aziende e portando via le macchine. Provate ad entrare in un Datacenter che ha 400.000 macchine e portarvi via proprio la vostra, be c’è qualche difficoltà in più . E poi quando parliamo di sicurezza parliamo anche di affidabilità e quindi del fatto che il servizio sia sempre attivo. Siamo proprio certi di riuscire nel nostro datacenter ha garantire l’affidabilità che vogliamo ? Abbiamo ridondato tutto per essere sicuri che una rottura fisica non abbia un impatto sul nostro sistema ? Abbiamo una doppia banda, un triplo sistema di fornitura di energia elettrica, doppi router distinti fra loro, doppio condizionamento elettrico, etc etc. Certo qualcuno ce l’ha ma il costo di gestire tutto questo è dato a pochi e non a tanti. Quindi la maggior parte delle persone potrebbe avere un sistema così sicuro e ridondato senza spendere i costi che sarebbero necessari per averlo in casa propria. Gli hoster ? Be si certo loro queste cose le controllano e le gestiscono perchè fa parte del loro business quindi ci sia aspetta che il sistema sia sempre affidabile ma posso avere datacenter distribuiti nel mondo per sicurezza ? Tante sono le domande che vengono in mente ovviamente, ma alla fine si torna sempre all’economia di scala. Con il Cloud si ottengono tutte queste cose ad un prezzo decisamente inferiore e si può contare su una infrastuttura Elastica, Scalabile, Sicura, Affidabile e la si può comprare quando serve”