Emanciparsi dal Cloud: sì, no, come, perché.

L’NSA ci spia. L’SSL aveva un buco enorme e non lo sapevamo. Zuckerberg gioca coi nostri sentimenti su Facebook. I vari servizi di cloud cambiano unilateralmente le condizioni d’uso, incluse le regole sul trattamento dei nostri file, ogni X mesi.

Questi e altri sono i motivi per cui moltissime persone stanno migrando i loro dati prima affidati al Cloud e ai server remoti, verso server domestici e centralizzati. Diciamocelo: alla prima comparsa di Dropbox tutti quanti ebbero (passato remoto, si trattava infatti del lontano 2008) dubbi sulla privacy e sul trattamento dei propri file, però sai che c’è? è comodo, è rivoluzionario, è il futuro. Dopo (e prima) Dropbox sono nati mille altri servizi di sincronizzazione dei file nel cloud, compresi quelli dei Big dell’informatica (Apple, Microsoft, Google) andando spesso a completare pacchetti di servizi che includono la sincronizzazione dei contatti, degli appuntamenti in calendario e, ovviamente, delle mail. Insomma: tutte le cose più importanti della nostra vita digitale sono consegnate sui server che risiedono chissà dove e sono di proprietà di compagnie che hanno come unico e solo scopo il profitto.

Tutto ciò è chiaramente preoccupante (salvo poi andare su a twittare qualunque cosa ci passi per la mente), e siccome per farsi un server domestico non serve più essere un’impallinato linuxomane che sta sveglio la notte a crackare il firmware della lavastoviglie, da qualche tempo molti stanno sperimentando la via del personal cloud.

Cosa vuol dire personal cloud

Il personal cloud consiste, semplicemente, nell’avere un computer sempre acceso a casa propria, con appiccicati dei dischi con su i nostri dati, e installato un software che faccia da web server e una applicazione web (un sito, diciamo) che presenti funzionalità ed interfaccia per la gestione remota via dei dati sul server. L’obiettivo è quindi avere un’esperienza d’uso simile ai vari servizi cloud, ma con i dati piantati ben dentro la propria casa invece che sparsi a fluttuare nella nuvola.

Questo obiettivo si può raggiungere in vari modi:

  • Ci si compra un NAS di una marca tipo Synology, Q-NAP o Buffalo o quel che vi pare: questi NAS hanno di solito un processore a basso consumo, un OS di derivazione GNU/Linux dotato di un’interfaccia utente spesso e volentieri molto semplice e gradevole, da cui è possibile attivare anche servizi simil-cloud che permettono di raggiungere i propri dati ovunque dal web o da apposita applicazione.
  • Si finanzia un progetto su Kickstarter che vi promette un accrocchio a basa di single-board-pc, un OS di derivazione GNU/Linux e dei dischi appiccicati, tutto racchiuso in un bellisimo package, che vi consente di accedere e sincronizzare i dati via web o tramite apposita applicazione. Sherylbox e WEDG sono un esempio.
  • Si ha per casa un Raspberry Pi con appiccicati dei dischi, il tutto è già usato per far molto altro, e ci si sbatte quella mezza giornata (a voler dir tanto) per installare tutto quanto il necessario.

Ovviamente per fare tutto ciò serve un dispositivo costantemente acceso e connesso all’interweb 24 ore su 24, 7 giorni su 7 (a meno di accettare downtime), serve che il vostro ISP vi fornisca un IP pubblico, nel caso l’IP sia dinamico serve un servizio di DNS dinamico (tipo: dynDNS) che, in parole povere, vi permette di raggiungere il vostro dispositivo fuori dalla rete domestica attraverso un www.qualcosa.ecc, e un router che vi permetta di aprire le porte.

La mia configurazione (ovvero: ownCloud, MPD e Icecast2 su un Raspberry Pi)

Personalmente ho scelto la 3a ipotesi. Ho guardato una delle millemila guide online, mi sono compilato NGINX 1.7.2 da sorgente (il server web), ho installato tutto il necessario per operare con ownCloud, un software di personal cloud, e poi ho installato MPD e Icecast2 per fare lo streaming online della mia libreria musicale.

Tutto ciò per avere:

  • un’alternativa a Dropbox/GDrive/Documenti iCloud/ecc…: ownCloud fa questo di mestiere, posso raggiungere i miei file tramite il web, un’applicazione client o una qualunque app che gestisca il protocollo WebDAV. Il sistema è multi-utente, quindi su un unico server avere più utenti compartimentati che possono (o meno) condividere file tra loro. Esempio: tutta la famiglia ha un account ownCloud sul server, è possibile condividere le foto delle vacanze. Inoltre si possono condividere file e cartelle via link, eventualmente protetto da password. Insomma, tipo Dropbox.
  • un‘alternativa a Google Calendar/Calendario iCloud/ecc…: ownCloud fa anche questo, ha una interfaccia per gestire i calendari che poi possono essere sincronizzati via CalDAV su praticamente ogni dispositivo in modo nativo (iCal di Mac e iOS) o tramite apposite applicazioni (su Android, ad esempio, bisogna installare un’app)
  • un’alternativa ai Contatti di Google o iCloud: ownCloud fa pure questo, e poi si sincronizza via CardDAV, discorso analogo ai calendari
  • un’alternativa a Play Music, iTunes FM o simili: ownCloud farebbe pure questo, ma in modo osceno. Per questo ho ripiegato sull’accoppiata MPD e Icecast.

Questa, ovviamente, non è la configurazione migliore né l’unica, ma era la più facile dato che ownCloud è un sistema unico che fa tutto, ed in più si può estendere con applicazioni di terze parti.. Se volete spingervi oltre e ne sapete un po’ di web server e robaccia da riga di comando, potete provare ad usare Seafile per la sincronia dei file, e Baikal come server CalDav e CardDav per la gestione di calendari e contatti. Ci proverò pure io prima o poi.

I Risultati ottenuti

Diciamo che sono variabili e dipendono molto dalla vostra configurazione. Nel mio caso ho trovato ottima la gestione dei file con ownCloud, che tra l’altro sia dal lato server che da quello client può “montare” anche cartelle locali sparse per i dischi senza dover impazzire in symlink o simili, ad esempio raggiungere e modificare file di testo o script bash è facilissimo direttamente dall’interfaccia web. Tra l’altro se il server ha OpenOffice o LibreOffice installato, è possibile anche operare direttamente via web sui file .odt, insomma una funzione simile (nel concetto) a Google Docs. Il problema è la lentezza della mia connessione e il fatto che il RasPi, poverino, non è un fulmine, così come non lo sono i dischi attaccati ad esso tramite USB2. Comunque, lentezza a parte, lo trovo più comodo dei vari altri servizi, inoltre ho (per ora) 3.5TB di spazio a mia disposizione… 🙂

Per quanto riguarda la sincronia dei contatti e dei calendari le cose vanno abbastanza bene, su iPhone ho dovuto mandarmi via mail il certificato SLL auto-firmato altrimenti non mi accettava la connessione ai server CardDav e CalDav, ma per il resto tutto ok. L’unico problema è che ownCloud gestisce MALISSIMO gli eventi del calendario con ripetizione: non possono essere modificati uno alla volta (o tutti o nessuno), non si riesce ad inserire la ripetizione solo per i giorni lavorativi dal client di iOS (questo potrebbe essere un problema di iOS ma tant’è).  I contatti invece vengono gestiti abbastanza bene, ma manca un’opzione per far pulizia dei duplicati dall’interfaccia web e i gruppi non vengono sincronizzati su iOS (ancora, problema di iOS). Inoltre se aggiungo un contatto sull’iPhone, questo viene sincronizzato su ownCloud, ma se poi voglio mandare una mail via GMail dal Pc dell’ufficio? Scomodo, anche se in parte superabile installando l’app giusta su ownCloud.

Sullo streaming musicale non ci siamo quasi per nulla. Il problema, sono sicuro, dipende dalla banda della mia connessione ADSL e dalla limitatezza del RasPi. Diciamo che su iOS l’unica app che può fare da controllo remoto per MPD e contemporaneamente ricevere lo streaming è MPoD per iPhone, MPaD per iPad. Detto ciò, pur facendo streaming a 96 kbps la musica ascoltata fuori dalla rete domestica spesso e volentieri si interrompe, dovrò agire in qualche modo (non so come) su un qualche tipo di buffer. Inoltre MPoD/MPaD non è un fulgido esempio di stabilità e spesso crasha. Dal canto suo il RasPi fatica parecchio a fare tutto il lavoro di codifica da mp3 @ 392 kbps a mp3 @ 96 kbps. L’unico vantaggio è che ho a disposizione tutta la mia collezione musicale e posso scegliere io il livello di qualità dello streaming. Non vi dico il casino per riuscire a visualizzare le copertine degli album su MPoD: ho rinunciato.

Perché non ha senso farlo

Il motivo numero uno per cui non ha senso farlo è che, comunque, abbiamo messo tutti i nostri file e i nostri dati sono su internet. Ok, ce li hai a casuccia tua invece che in un bunker sotterraneo situato chissà dove, ma sono comunque accessibili dall’esterno e quindi vulnerabili. Ci si deve affidare alla bontà della piattaforma utilizzata. Non bastasse, abbiamo pure aperto delle porte sul firewall del router esponendo virtualmente tutti i dispositivi connessi ad un attacco (o altro tipo di connessione indesiderata) dall’esterno.

Quindi, dato che il discorso privacy traballa ancora, che senso ha venire a patti con tutte le scomodità annesse e connesse? Ad esempio: se avete una ADSL commerciale la vostra banda in upload sarà di 1 mega a dir tanto, e quindi qualsivoglia sia la velocità in download nell’area in cui utilizzate il client, non riuscirete a raggiungere i vostri file ad una velocità maggiore di 1Mbps. Le cose, chiaramente, migliorano notevolmente se il vostro server opera con una connessione a fibra, lì si parla di 3, 10, 30 mega in upload o cose del genere.

L’altra cosa da dover tenere in considerazione è l’affidabilità del tutto, sia dal punto di vista di eventuali corruzioni dei file, sia dal punto di vista del funzionamento dell’hardware. Se a Dropbox si svampa un server, sono fatti loro, a voi non costa nulla. I dati sono backuppati con molta ridondanza e quindi probabilmente non ve ne accorgerete mai. C’è qualcuno che va a fare manutenzione, controlla che tutto è ok, l’hardware lavora in condizioni ambientali controllate. A casa vostra il Pi è chiuso in un armadietto polveroso con una temperatura variabile fino ai 50°C e un’umidità non controllata. Se nel mentre che trasferivate un file salta la corrente perché avevate la lavatrice e il forno accesi contemporaneamente, ben che vada quel trasferimento ve lo siete giocato. Mal che vada si corrompe il filesystem su cui è installato il sistema operativo e, se non avete un backup, siete fritti. Quindi: backup (ovvero comprate altri dischi) e magari UPS per evitare questo genere di problemi (ovvero comprate un UPS). Se vi si frigge il disco, sono fatti vostri. Pagare. Se vi si frigge il NAS/Raspberry quello che è: sono fatti vostri. Pagare.

Se non avevate altre copie di backup dei vostri file e ne avete modificato uno accidentalmente, non riuscirete a tornare indietro e recuperare una versione precedente, anche se in realtà un minimo di versioning lo fa anche ownCloud.

Perché ha senso farlo

Ha senso perché gestire i propri file da remoto tramite un’interfaccia web come quella di ownCloud (o un client) è molto più comodo e flessibile rispetto ad usare l’FTP, considerando anche che la roba è raggiungibile tramite la porta 80 o (meglio) la 443 che tipicamente sono aperte in tutti i router aziendali, universitari o quel che è.

Ha senso per avere un servizio simil-cloud, benché con diverse limitazioni pratiche, “gratuitamente” e della taglia che volete voi. Cioè, 3.5TB di spazio cloud, a gratis… ma chi ve li dà?

Ha senso se avete intenzione di svincolare il più possibile i servizi che usate dal brand dell’OS del vostro telefono o PC. Ovvero: i servizi di Google funzionano benissimo e sono integrati alla perfezione in Android, nel browser Chrome e in Chrome OS. Con Safari non ci parla e i client per iOS o Mac hanno delle limitazioni. Discorso opposto per l’accoppiata iCloud, iOS e Safari. Tutta sta roba prima o poi vi limiterà nell’acquisto di hardware di consumo (computer, tablet e smartpone) ma anche roba più importante, sicuramente arriverete a chiedervi se vi conviene comprare un’auto con CarPlay o AndroidAuto. Utilizzando un servizio di terze parti o uno realizzato da voi sarete certi al 100% di trovarvi ugualmente scomodi qualunque dispositivo comprerete, inclusi quelli con Windows 9 o BlackBerry.

Infine, se tutti (o molti) ci accontentassimo di un personal cloud un po’ lento, ritagliato sul nostro personale uso e consumo, e senza troppe ridondanze, tutto ciò si tradurrebbe in un minor impatto ambientale, dato che risparmieremmo un sacco di datacenter ad alte prestazioni, con controllo climatico e quant’altro, che consumano un sacco di energia ed inevitabilmente portano all’emissione di una quantità notevole di CO2.

Cose da tener d’occhio

Il fenomeno del personal cloud è in espansione e sicuramente nasceranno, si evolveranno (e moriranno) molti progetti incentrati su questo genere di funzionalità. Dal punto di vista software vi consiglio di tener d’occhio arkOS, un sistema operativo basato su Arch Linux e dedicato a dare vita a progetti di personal cloud. Si trova ancora in uno stato molto embrionale ma è decisamente interessante e, in teoria, a sbattimento zero. ownCloud ha anche una serie di app che possono essere installate a corredo per ottenere una soluzione più completa.

Volendo, è possibile unire ownCloud a BitTorrent Sync, migliorando in maniera drastica la gestione della sincronizzazione fisica di file di grandi dimensioni, soprattutto perché BitTorrent Sync implementa la sincronizzazione diretta quando i dispositivi si trovano all’interno della LAN, senza passare per server web e quant’altro.  Ci sono 3 milioni di guide online sull’argomento.

Dal punto di vista hardware, ci sono un fottio di dev-board a basso costo che potete procurarvi. Hanno fatto parlare di loro Banana Pi, un clone cinese del Raspberry Pi un po’ più potente e con connessione sata, e Hummingboard, anch’esso RasPi-compatibile ma con hardware più prestante e configurabile.