Ultimamente si parla molto di cloud computing e in particolare di SaaS: il paradigma cloud sta guadagnando sempre più interessa da parte delle aziende perché permette di abbassare i costi, una più facile manutenzione e un utilizzo semplice per gli utenti. Ma d’altra parte ci sono tante motivazioni per mantere un applicativo nella sua versione desktop, primo fra tutti l’utilizzo della banda.
Un semplice esempio per capire meglio di cosa parliamo. Un’applicazione desktop è un’applicazione che viene eseguita fisicamente sul vostro computer: è stata precedentemente installata e viene distribuita sotto forma di applicazione che può essere installata dall’utente. Un esempio: Skype.
Un’applicazione, cloud, invece risiede su una nuvola (da qui ‘cloud’): viene resa fruibile attraverso la connessione ad un altro sistema (tramite Internet ad esempio). Non richiede un’installazione (l’utente di solito accede all’applicazione da un browser) ma richiede una connessione ad Internet per essere utilizzata. Un esempio: Gmail.
Dopo aver riflettuto sui vantaggi dell’una e dell’altra soluzione, ho deciso di condividere il mio parere riguardante le due soluzioni.
Applicazioni desktop | Applicazioni cloud | |
Installazione del software | L’applicazione deve essere installata prima di essere utilizzata. | Nessuna installazione è richiesta (a parte il browser se l’applicazione verrà fruita tramite browser). |
Utilizzo delle risorse | L’applicazione utilizza le risorse della macchina su cui è installata. Per applicazioni che hanno un carico computazionale cospicuo sono presenti requisiti hardware ben definiti. | Il carico computazionale è quasi interamente gestito dal service provider che offre il servizio, riducendo i requisiti hardware della macchina che utilizza il servizio. |
Aggiornamenti | L’applicazione deve essere aggiornata manualmente dall’utente o da un amministratore di sistema | L’utente accede sempre all’ultima versione del software disponibile senza dover installare nulla: l’applicativo caricato dal browser è sempre aggiornato dal service provider, nulla è a carico dell’utente. |
Indipendenza dalla piattaforma | Alcune applicazioni sono disponibili solo per determinate piattaforme (es. MacOSX, Windows), lasciando scoperte altre piattaforme comunque utilizzate da alcuni utenti (Linux, FreeBSD). | Dato che molte applicazioni sono fruibili tramite un browser, molte delle applicazioni cloud sono indipendenti dalla piattaforma dell’utente |
Indipendenza/Utilizzo della rete | Un applicativo desktop è indipendente dalla presenza della rete (se la funzione principale non è quella di utilizzare la rete). | Senza connessione di rete, un’applicazione cloud non può funzionare (a meno di meccanismi di caching previsti dal browser [es. Google Gears/HTML5 Web Storage] e/o dallo sviluppatore dell’applicazione).Inoltre, il footprint di un’applicazione cloud sulla rete è tipicamente molto forte rispetto all’equivalente di un’applicazione desktop, proprio per la maggiore quantità di dati scambiati con la controparte remota. |
Autenticazione e autorizzazione | L’autenticazione e l’autorizzazione sono demandate al sistema operativo. Dato che questa pratica è tipicamente consolidata e ben documentata, un’applicazione desktop è solitamente più sicura della controparte cloud (sia del punto di vista della security fisica che di quella logica). | L’autenticazione e l’autorizzazione sono realizzate su una rete che non sicura quale Internet, che può essere manomessa e/o monitorata. L’utilizzo di soluzioni di cifratura è una soluzione d’obbligo per proteggere i dati che transitano dal service provider all’utente finale. |
Backup | I dati sono solitamente memorizzati sul pc dell’utente, che deve provvedere ad effettuare un backup cadenzato dei dati (se non previsto dall’amministratore di sistema). | I dati sono quasi interamente gestiti dal service provider, che, in base al SLA garantito all’utente, deve provvedere al corretto backup dei dati e al ripristino in caso di failure.Inoltre, come già detto, questo comporta un utilizzo massimo della banda per trasferire i dati dal service provider al pc dell’utente finale. |
Quindi, qual è la soluzione migliore? Il desktop o il cloud?
Ultimamente, la tendenza è quello di portare molte applicazioni sul cloud, e di associare al cloud tutte le applicazioni che possono essere richiamate tramite un browser. Ricordo che un’applicazione cloud deve rispettare diversi aspetti per essere chiamata cloud:
- deve essere indipendente da piattaforma e hardware utilizzati dall’utente
- deve supportare l’accesso tramite API
- deve essere accessibile tramite qualsiasi sistema connesso a Internet
- deve essere trasparente per l’utente da utilizzare indipendentemente da dove l’applicazione venga installata.
Qual è la soluzione migliore? La risposta giusta, come al solito, è dipende. Dipende da molti fattori, come possiamo vedere, e ognuna delle due soluzioni ha i suoi punti di forza e di debolezza.
Ciao Michele, bel post.
Aggiungerei uno dei principali vantaggi delle applicazioni Cloud: la possibilità di fruire della mia applicazione (e dei miei dati) da una qualsiasi postazione collegata al web. Questo, ad esempio, significa che posso accedere alla mia email personale dal lavoro, da un chiosco Internet in aeroporto e così via, senza dover installare nulla.
Altro fattore interessante è il massiccio utilizzo del cloud computing da parte dei dispositivi mobili ed embedded (TV, decoder…). Visto che questi dispositivi hanno poche risorse per il calcolo e la memorizzazione, ma hanno spesso un accesso veloce alla rete, solitamente si appoggiano proprio al cloud per compiere le operazioni più complesse e per stoccare i dati.
Sulla questione della sicurezza temo che sia difficile fare dei raffronti precisi: dipende molto dallo scenario, dagli obiettivi e dagli investimenti. Dalla mia esperienza, il livello di protezione dei dati della maggior parte degli utenti (e delle piccole aziende) è nettamente inferiore a quello messo in campo dai principali player del mondo Cloud.
Ho visto con i miei occhi una piccola azienda in cui il mail server era una macchina configurata nel tempo libero da un impiegato con la passione di Linux, senza firewall e condivisa con altri servizi di rete core per quell’azienda (il tutto con backup su un disco USB).
Probabilmente, se quell’azienda avesse usato una soluzione di tipo cloud, come Gmail for domain, il livello di sicurezza sarebbe stato incredibilmente più alto.
Non tralascerei, inoltre, il rischio del lock-in: se oggi scelgo di usare il cloud provider XYZ, chi mi assicura che domani non fallisca? E in tal caso, cosa ne sarà della mia applicazione e dei miei dati?
Grazie per il tuo commento perspicace, Andrea.
Concordo con te sul lato sicurezza: in effetti non è matematicamente certo che una soluzione desktop sia più sicura del corrispettivo in cloud, e nemmeno viceversa. I fattori in gioco sono troppi.
Un ottimo riassunto!