← Torna al diario

Approfondimenti

Locale o cloud? L'architettura dei dati giusta dipende dal prodotto

L'archiviazione locale e i servizi cloud risolvono problemi diversi. Una buona architettura segue l'uso, la collaborazione, le esigenze offline e la responsabilità sui dati.

Uno smartphone e una cartella di documenti ordinata, con divisori, si trovano entro un discreto confine dei dati.

Se un’applicazione dovrebbe memorizzare i dati localmente o nel cloud suona come una questione di principio tecnico. In realtà, si tratta di una decisione del prodotto in primo luogo. Una lista di controllo personale su un singolo smartphone ha requisiti diversi da un piano di distribuzione su cui più persone lavorano allo stesso tempo. Entrambi gli approcci possono essere affidabili quando implementati con attenzione. Entrambe possono diventare inutilmente complicato o rischioso con l’architettura sbagliata.

La semplice dichiarazione “locale è privato” è troppo breve come lo è l’Homecloud è più moderno. I dati locali possono essere persi con il dispositivo. Dati cloud possono consentire la collaborazione e il recupero, ma hanno bisogno di account, infrastrutture e percorsi di dati comprensibili. La soluzione appropriata nasce dallo scenario di utilizzo, non da un’etichetta.

Cosa significa “locale” e “nuvola”

Per un’app locale, la copia dei dati relativa viene memorizzata nella memoria del dispositivo. In molti casi, l’applicazione può funzionare senza una rete. Un server non è necessario per il processo di base. Ciò non significa che i servizi del sistema operativo per la distribuzione, il backup del dispositivo o la condivisione di un file di esportazione sono coinvolti. Significa solo che il provider non gestisce un database app centrale per questi dati utente.

Secondo la definizione del NIST, il cloud computing descrive l’accesso alla rete basato sulla domanda a un pool condiviso di risorse configurabili. Per un’app possono essere inclusi database, archivi, servizi di identità e potenza di calcolo. La copia centrale è quindi tipicamente situata in un’infrastruttura remota; i dispositivi caricano i dati, inviano modifiche e riconciliano lo stato.

Molti prodotti utilizzano un approccio ibrido. Essi memorizzano i dati sul dispositivo per mantenere l’interfaccia veloce e offline, e la sincronizzazione in background con un server. Android Developer chiama “offline-first” architettura, dove una fonte di dati locale costituisce la base chiave per la lettura e accessi di rete aggiornare questa copia. Così, il cloud non scompare. È integrato con un ulteriore livello locale e regole di sincronizzazione.

Lo storage locale riduce le dipendenze

Se un’app non ha un account o un server, il suo percorso di base diventa spesso più facile. Non c’è alcun login, nessuna password dimenticata e nessuna interruzione di un servizio di sincronizzazione. I dati personali non devono essere trasferiti al provider per un uso normale. Ciò può adattarsi molto bene al modello di fiducia previsto per una singola persona.

La disponibilità offline è immediata. Le informazioni rimangono accessibili nel seminterrato, in un edificio con scarsa ricezione o quando si viaggia. Le modifiche possono essere salvate senza prima interrogare uno stato remoto. La risposta dell’app non dipende dalla latenza di un servizio.

Le operazioni possono anche essere più gestibili. Senza un database utente centrale, alcuni costi del server, processi di account e problemi di sincronizzazione in corso vengono eliminati. Tuttavia, meno infrastrutture non significa alcuna infrastruttura o responsabilità: pubblicazione, store connessioni, sito web, supporto e manutenzione del prodotto rimangono. Inoltre, lo storage locale, migrazione, gestione dei file e recupero deve essere implementato con attenzione.

La più grande forza locale è anche la sua limitazione

Utilizzando un dispositivo come il negozio principale crea chiarezza ma anche un singolo punto di guasto. Se lo smartphone viene perso, viene danneggiato o l’applicazione viene eliminata senza un backup adeguato, l’unica copia di dati può scomparire. Se si desidera continuare a lavorare su un nuovo dispositivo, è necessario un percorso di esportazione e recupero pianificato.

I backup non sono quindi una caratteristica secondaria opzionale dei prodotti locali. Devono essere creati intelligibilmente, memorizzati al di fuori dell’app e letti in modo affidabile in seguito. Un file conservato solo nell’area app privata non protegge contro la disinstallazione o la perdita del dispositivo. La crittografia può proteggere le esportazioni sensibili, ma aumenta la responsabilità: Una password persa non può essere sostituita senza un servizio di recupero centrale.

I backup del sistema operativo meritano anche una vista differenziata. Apple descrive che alcune directory delle app possono essere incluse nel dispositivo o nei backup di iCloud a seconda del tipo di file. Il prodotto deve decidere consapevolmente quali dati sono permanentemente importanti, recuperabili o solo temporanei. Tuttavia, dovrebbe rimanere chiaro agli utenti se l’applicazione stessa offre un backup portatile e su cosa possono contare quando cambiano dispositivi.

I sistemi cloud consentono la collaborazione e la continuità

Non appena più persone hanno bisogno dello stesso stato attuale, un’infrastruttura centrale riceve un forte vantaggio. Un team può condividere attività, assegnare ruoli e unire i cambiamenti da diversi dispositivi. Un nuovo computer non ha bisogno di ricevere un file trasferito manualmente. Dopo il login, lo stato esistente può essere ricaricato.

I servizi Cloud sono adatti anche all’automazione centrale. Un server può eseguire processi di background, distribuire notifiche condivise, integrare dati con altri sistemi e applicare regole indipendentemente dal fatto che un particolare smartphone sia attivo. Ciò è spesso essenziale per i portali di prenotazione, la gestione del team o valutazioni aziendali.

Backup e recupero possono anche essere più facili per il singolo utente. Le copie di server ridondanti, la cronologia delle versioni e i backup gestiti riducono il rischio di un singolo dispositivo contenente tutto. Tuttavia, questa capacità è una capacità del servizio specifico, non una proprietà automatica della parola cloud. Archiviazione, test di recupero, regole di cancellazione e processi di emergenza devono essere effettivamente presenti.

La sincronizzazione è un problema di prodotto di per sé

Un’app con copia locale e sincronizzazione cloud offre idealmente un utilizzo offline veloce e continuità cross-device. Ciò solleva una domanda difficile: Cosa succede quando due dispositivi modificano lo stesso record indipendentemente?

Alcuni conflitti possono essere risolti dopo la timestamp. Altri potrebbero “sovrascrivere le informazioni preziose dell’ultima versione.” Le liste possono unire elementi mentre i testi lunghi possono aver bisogno di risoluzione dei conflitti visibili. I file devono caricare lo stato, riprovare dopo l’interruzione e le regole per la cancellazione. Il prodotto deve anche mostrare se uno stato è memorizzato solo localmente, già sincronizzato o difettoso.

La prima guida offline di Android descrive, tra le altre cose, fonti di dati locali e di rete, code di sincronizzazione e strategie per la lettura e la scrittura. Ciò include una vasta gamma di test: modalità di volo, connessioni instabili, interruzioni di processo, doppio invio, vecchie versioni di app, e dati cambiati in parallelo.

La sincronizzazione non dovrebbe quindi essere programmata come un singolo switch. È una componente permanente della logica e dell’interfaccia del dominio. Se non è necessaria per il beneficio reale, la sua omissione può rendere un prodotto significativamente più robusto. Se la cooperazione è centrale, tuttavia, la relativa eliminazione non sarebbe messa a fuoco ma una limitazione errata.

La protezione dei dati dipende dal percorso completo dei dati

L’archiviazione locale può evitare trasferimenti di dati e scorte di dati centrali. E ’quindi una forma efficace di minimizzazione dei dati se l’attività può essere eseguita senza un server. Tuttavia, la protezione del dispositivo, sandbox app, crittografia locale, autorizzazioni, registri, esportazioni e backup rimangono rilevanti. Un archivio di esportazione non protetto in una posizione condivisa può rapidamente rimuovere il vantaggio di archiviazione app private.

Per i prodotti cloud, le parti aggiuntive e le domande inserite nell’immagine: Quali dati lasciano il dispositivo? In quale regione vengono elaborati? Chi gestisce l’infrastruttura e il supporto? Come vengono protetti, registrati e revocati gli accessi? Quanto tempo rimangono i backup dopo la cancellazione? Quali dati sono necessari per l’analisi, la notifica o i servizi AI?

Cloud non significa automaticamente un’ampia condivisione. Una piattaforma ben progettata può ridurre al minimo i dati, crittografare, accedere strettamente separatamente e offrire processi di cancellazione trasparenti. Locale, non significa che nessuno possa vedere automaticamente i dati tranne l’utente; il sistema operativo, i backup dei dispositivi, i file condivisi o i dispositivi compromessi cambiano l’immagine. La protezione dei dati è creata da un’architettura concreta e pratica operativa.

La scalatura influisce più dei numeri degli utenti

Le architetture cloud sono spesso basate sulla scalabilità. Un servizio centrale può ospitare utenti, dispositivi o volumi di dati aggiuntivi, a condizione che database, storage e funzionamento siano progettati per esso. Ciò si traduce in costi di gestione, monitoraggio, pianificazione della capacità e responsabilità di sicurezza. L’uso basso può costare poco; uso pesante o file di grandi dimensioni possono cambiare il modello di business.

Le app locali distribuiscono storage e computing sui dispositivi. Il provider non paga uno spazio di archiviazione cloud per ogni file personale. Per questo, i dispositivi differiscono per le prestazioni e l’archiviazione disponibile. I set di immagini di grandi dimensioni, elaborati modelli locali o lunghe migrazioni possono far gravare gli smartphone più vecchi. Il supporto deve affrontare stati che non possono essere visti o riparati centralmente.

Un prodotto per dieci proprietà può avere bisogno solo di filtri migliori e di un database locale più ampio. Un prodotto di dieci professionisti ha bisogno di ruoli, regole di conflitto e tracciabilità. Il numero di record da soli non decide quando è necessario un cloud.

Propivio come esempio locale cosciente

Propivio è progettato per una sola persona che gestisce informazioni su alcune delle proprie proprietà su uno smartphone. Non c’è alcun account utente, nessuna modifica condivisa e nessun servizio cloud automatico di app. Documenti, foto, contatti, letture dei contatori e altri dati di dominio si trovano localmente nell’area app privata.

Per questo scenario, l’approccio riduce la complessità di account e sincronizzazione non necessaria. La conseguenza non è nascosta: un processo di backup esterno e recupero è importante, e più dispositivi non condividono uno stato sincronizzato automaticamente. Chiunque voglia lavorare con un team, gestire grandi portafogli centralmente o collegare portali deliberatamente è al di fuori di questo modello di prodotto.

Un altro prodotto Zappapps potrebbe prendere una decisione diversa. Non appena il prodotto dipende dalla collaborazione, dall’automazione centralizzata o dall’accesso condiviso, un’architettura cloud sarebbe plausibile nonostante una maggiore complessità. La coerenza di un marchio non richiede la costruzione di ogni app tecnicamente la stessa.

Una matrice decisionale invece di una questione di fede

Prima di scegliere l’architettura, le domande concrete aiutano:

  • Una persona lavora da sola o diversi ruoli devono vedere lo stesso stato attuale?
  • Il processo centrale deve funzionare completamente senza una rete?
  • Quanto sarebbe grave la perdita del dispositivo?
  • Chi è responsabile per i rinforzi e il recupero?
  • L’accesso ai dispositivi incrociati è un vantaggio centrale o una convenienza occasionale?
  • Quali dati sono sensibili e quali trasmissioni sono davvero necessarie?
  • Il prodotto ha bisogno di processi di background o integrazioni se nessun dispositivo è attivo?
  • Quali costi operativi, di sostegno e di infrastruttura sono sostenibili?
  • Come vengono risolte le esportazioni, la cancellazione, la migrazione e un possibile cambiamento di fornitore?

Le risposte possono portare alla prima soluzione locale, cloud o offline ibrida. Possono cambiare con il prodotto. Tuttavia, un cambiamento successivo è costoso perché l’identità dei dati, i conflitti e la fiducia sono interessati. Pertanto, la prima decisione non dovrebbe essere presa solo utilizzando una tecnologia preferita.

La giusta architettura rende visibili le sue conseguenze

Le persone non hanno bisogno di capire i sistemi distribuiti per utilizzare un’app, ma si dovrebbe sapere cosa conta per la loro vita quotidiana: Funziona senza una rete? I dati sono disponibili su altri dispositivi? I colleghi possono funzionare? Cosa succede quando si perde o si disinstalla? Come avviene un backup? Quali contenuti vengono trasferiti a un servizio?

Una buona architettura dei dati risponde a queste domande non solo nella tecnologia, ma anche nei testi e nelle interazioni dei prodotti. Locale e cloud non sono livelli di qualità. Sono diverse distribuzioni di capacità, rischi e responsabilità. La scelta migliore è quella che si adatta allo scopo reale e alle cui conseguenze il prodotto gestisce onestamente.

Fonti e approfondimenti