Tous les articles

Réflexions sur le développement

Local ou dans le cloud ? L’architecture de données dépend du produit

Le stockage local et les services cloud répondent à des besoins différents. Une bonne architecture tient compte de l’usage, de la collaboration, du fonctionnement hors ligne et de la responsabilité sur les données.

Un smartphone et un dossier bien rangé, muni d’intercalaires, sont placés dans une limite discrète symbolisant les données.

Choisir si une application stocke ses données localement ou dans le cloud peut sembler être une décision technique, mais tout commence par l’usage du produit. Une liste personnelle sur un seul smartphone n’a pas les mêmes exigences qu’un plan modifié simultanément par plusieurs personnes. Les deux architectures peuvent être fiables, et toutes deux peuvent devenir inutilement complexes lorsqu’elles ne correspondent pas au scénario.

« Local signifie privé » est aussi incomplet que « cloud signifie moderne ». Des données locales peuvent disparaître avec l’appareil. Les services cloud peuvent faciliter la collaboration et la récupération, mais ils exigent des comptes, une infrastructure et des parcours de données compréhensibles. La bonne répartition dépend du cas d’usage, pas de l’étiquette.

En bref

  • Local ou cloud est une décision produit, pas un classement de qualité.
  • Les données locales facilitent l’usage hors ligne, mais exigent une voie de sauvegarde fiable.
  • Les services cloud permettent un état partagé, mais ajoutent des comptes, la synchronisation et une exploitation continue.

Ce que signifient réellement « local » et « cloud »

Dans une application locale, la copie principale des données est stockée sur l’appareil. Dans de nombreux cas, l’application peut accomplir son processus central sans réseau ni serveur. Les services du système d’exploitation peuvent néanmoins intervenir dans la distribution, la sauvegarde de l’appareil ou le partage d’un fichier exporté. « Local » signifie que le fournisseur n’exploite pas de base centrale pour ces données utilisateur ; cela ne signifie pas que tout l’écosystème de l’appareil disparaît.

Selon la définition du NIST, le cloud computing désigne un accès réseau à la demande à un ensemble partagé de ressources configurables. Pour une application, ces ressources peuvent comprendre les bases de données, le stockage de fichiers, les services d’identité et la puissance de calcul. La copie centrale se trouve alors généralement dans une infrastructure distante ; les appareils chargent les données, envoient les changements et rapprochent les états.

Beaucoup de produits utilisent une approche hybride. Ils conservent les données sur l’appareil afin que l’interface reste rapide et disponible hors ligne, puis se synchronisent en arrière-plan avec un serveur. Android Developers parle d’architecture « offline first » : une source locale constitue la base principale de lecture et les accès réseau actualisent cette copie. Le cloud ne disparaît pas ; il est complété par une couche locale et des règles de synchronisation.

Le stockage local réduit les dépendances

Lorsqu’une application n’exige ni compte ni serveur, son parcours central devient souvent plus simple. Il n’y a pas de connexion, de mot de passe oublié ou d’interruption d’un service de synchronisation. Les données personnelles n’ont pas besoin d’être transférées au fournisseur pour l’usage courant. Cela peut très bien correspondre au modèle de confiance attendu par une personne seule.

La disponibilité hors ligne est immédiate. L’information reste accessible dans un sous-sol, dans un bâtiment mal couvert ou pendant un voyage. Les changements peuvent être enregistrés sans consulter d’abord un état distant. La réactivité de l’application ne dépend pas de la latence d’un service.

L’exploitation peut elle aussi être plus simple à maîtriser. Sans base centrale d’utilisateurs, certains coûts de serveur, processus de compte et problèmes permanents de synchronisation disparaissent. Une infrastructure réduite ne signifie toutefois ni absence d’infrastructure ni absence de responsabilité : la publication, les liens avec les boutiques, le site, l’assistance et la maintenance du produit restent nécessaires. Le stockage local, les migrations, la gestion des fichiers et la récupération doivent également être mis en œuvre avec soin.

Le principal avantage du local est aussi sa limite

Utiliser un seul appareil comme stockage principal apporte de la clarté, mais crée aussi un point de défaillance unique. Si le smartphone est perdu, endommagé ou si l’application est supprimée sans sauvegarde adaptée, l’unique copie des données peut disparaître. Pour poursuivre le travail sur un nouvel appareil, il faut prévoir un parcours d’exportation et de récupération.

Les sauvegardes ne sont donc pas une fonction secondaire facultative dans un produit local. Elles doivent être créées de façon compréhensible, stockées hors de l’application et pouvoir être relues de manière fiable. Un fichier conservé uniquement dans la zone privée de l’application ne protège ni contre la désinstallation ni contre la perte de l’appareil. Le chiffrement peut protéger les exportations sensibles, mais il accroît la responsabilité : sans service central de récupération, un mot de passe perdu peut être impossible à remplacer.

Les sauvegardes du système d’exploitation exigent elles aussi une analyse nuancée. Apple explique que certains répertoires d’une application peuvent être inclus dans les sauvegardes de l’appareil ou d’iCloud selon le type de fichier. Le produit doit décider consciemment quelles données sont importantes à long terme, récupérables ou seulement temporaires. Il doit néanmoins rester clair pour les personnes si l’application elle-même offre une sauvegarde portable et sur quoi elles peuvent compter lorsqu’elles changent d’appareil.

Les systèmes cloud permettent collaboration et continuité

Dès que plusieurs personnes ont besoin du même état à jour, une infrastructure centrale présente un avantage net. Une équipe peut partager des tâches, attribuer des rôles et fusionner les changements issus de différents appareils. Un nouvel ordinateur n’a pas besoin de recevoir manuellement un fichier ; après la connexion, il peut recharger l’état existant.

Les services cloud conviennent également à l’automatisation centrale. Un serveur peut exécuter des processus en arrière-plan, distribuer des notifications partagées, intégrer des données à d’autres systèmes et appliquer des règles indépendamment de l’activité d’un smartphone précis. Cela est souvent essentiel pour les portails de réservation, la gestion d’équipes ou les analyses à l’échelle d’une entreprise.

La sauvegarde et la récupération peuvent aussi être plus simples pour chaque utilisateur. Des copies redondantes sur le serveur, un historique des versions et des sauvegardes gérées réduisent le risque que tout dépende d’un seul appareil. Cette capacité appartient cependant au service concret ; elle n’est pas une propriété automatique du mot « cloud ». Le stockage, les tests de récupération, les règles de suppression et les procédures d’urgence doivent réellement exister.

La synchronisation est un problème produit à part entière

Une application dotée d’une copie locale et d’une synchronisation cloud offre idéalement un usage hors ligne rapide et une continuité entre appareils. Une question difficile apparaît alors : que se passe-t-il lorsque deux appareils modifient indépendamment le même enregistrement ?

Certains conflits peuvent être résolus à l’aide d’horodatages. Dans d’autres cas, la règle « la dernière version l’emporte » supprimerait des informations précieuses. Les listes peuvent fusionner des éléments, tandis que les textes longs peuvent nécessiter une résolution visible des conflits. Les fichiers ont besoin d’un état de téléversement, de nouvelles tentatives après une interruption et de règles de suppression. Le produit doit également montrer si un état est seulement enregistré localement, déjà synchronisé ou en erreur.

Le guide « offline first » d’Android décrit notamment les sources locales et réseau, les files de synchronisation et les stratégies de lecture et d’écriture. Il en découle un ensemble important de tests : mode avion, connexions instables, interruption des processus, double envoi, anciennes versions de l’application et données modifiées en parallèle.

La synchronisation ne doit donc pas être pensée comme un simple interrupteur. Elle fait durablement partie de la logique du domaine et de l’interface. Si elle n’est pas nécessaire au bénéfice réel, l’omettre peut rendre le produit nettement plus robuste. Si la collaboration est centrale, en revanche, la supprimer ne serait pas du ciblage, mais une limitation inadaptée.

La protection dépend du parcours complet des données

Le stockage local peut éviter des transferts et de grands ensembles de données centraux. Il constitue donc une forme efficace de minimisation lorsque la tâche ne nécessite pas de serveur. Restent néanmoins importants la protection de l’appareil, l’isolation de l’application, le chiffrement local, les autorisations, les journaux, les exportations et les sauvegardes. Une archive exportée sans protection dans un emplacement partagé peut rapidement annuler l’avantage du stockage privé.

Dans les produits cloud, d’autres intervenants et questions apparaissent : quelles données quittent l’appareil ? Dans quelle région sont-elles traitées ? Qui exploite l’infrastructure et l’assistance ? Comment les accès sont-ils protégés, journalisés et révoqués ? Combien de temps les copies subsistent-elles après une suppression ? Quelles données sont nécessaires aux services d’analyse, de notification ou de traitement assisté par modèle ?

Le cloud ne signifie pas automatiquement un partage étendu. Une plateforme bien conçue peut minimiser les données, les chiffrer, séparer rigoureusement les accès et offrir des procédures de suppression transparentes. « Local » ne garantit pas non plus que seul l’utilisateur peut voir les données : le système d’exploitation, les sauvegardes de l’appareil, les fichiers partagés ou un appareil compromis changent la situation. La protection résulte de l’architecture concrète et des pratiques d’exploitation.

L’évolutivité ne concerne pas que le nombre d’utilisateurs

Les architectures cloud sont souvent associées à l’évolutivité. Un service central peut accueillir davantage d’utilisateurs, d’appareils ou de données si la base, le stockage et l’exploitation sont conçus à cet effet. Cela entraîne des coûts permanents, de la surveillance, une planification de capacité et une responsabilité de sécurité. Un faible usage peut coûter peu ; une utilisation intensive ou de gros fichiers peuvent modifier le modèle économique.

Les applications locales répartissent le stockage et le calcul entre les appareils. Le fournisseur ne paie pas d’espace cloud pour chaque fichier personnel. En contrepartie, les appareils diffèrent par leurs performances et l’espace disponible. De grandes collections d’images, des modèles locaux complexes ou de longues migrations peuvent solliciter fortement les anciens smartphones. L’assistance doit gérer des états qu’elle ne peut ni voir ni réparer de manière centrale.

L’évolutivité dépend aussi du domaine. Un produit pour dix biens peut n’avoir besoin que de meilleurs filtres et d’une base locale plus grande. Un produit pour dix professionnels nécessite des rôles, des règles de conflit et une traçabilité. Le nombre d’enregistrements ne détermine pas à lui seul quand le cloud devient nécessaire.

Propivio comme exemple d’un choix local délibéré

Propivio est conçu pour une personne qui gère sur son smartphone des informations relatives à quelques biens lui appartenant. Il n’existe ni compte utilisateur, ni édition partagée, ni service cloud automatique de l’application. Les documents, photos, contacts, relevés de compteurs et autres données restent localement dans la zone privée de l’application.

Pour ce scénario, l’approche réduit la complexité inutile des comptes et de la synchronisation. La conséquence n’est pas cachée : un processus externe de sauvegarde et de récupération est important, et plusieurs appareils ne partagent pas automatiquement un état synchronisé. Les personnes qui veulent travailler en équipe, gérer de grands portefeuilles de manière centralisée ou connecter des portails sortent délibérément de ce modèle produit.

Un autre produit Zappapps pourrait prendre une décision différente. Dès qu’un produit dépend de la collaboration, d’une automatisation centrale ou d’un accès partagé, une architecture cloud peut être pertinente malgré sa complexité supérieure. La cohérence d’une marque n’exige pas de construire techniquement toutes les applications de la même manière ; elle exige d’expliquer clairement chaque décision.

Une matrice de décision plutôt qu’une question de conviction

Avant de choisir l’architecture, des questions concrètes sont utiles :

  • Une personne travaille-t-elle seule ou plusieurs rôles doivent-ils voir le même état à jour ?
  • Le processus central doit-il fonctionner entièrement sans réseau ?
  • Quelle serait la gravité de la perte de l’appareil ?
  • Qui est responsable de la sauvegarde et de la récupération ?
  • L’accès entre appareils est-il un bénéfice central ou un confort occasionnel ?
  • Quelles données sont sensibles et quels transferts sont réellement nécessaires ?
  • Le produit a-t-il besoin de processus en arrière-plan ou d’intégrations lorsqu’aucun appareil n’est actif ?
  • Quels coûts d’exploitation, d’assistance et d’infrastructure sont soutenables ?
  • Comment sont traités l’exportation, la suppression, la migration et un éventuel changement de fournisseur ?

Les réponses peuvent mener à une solution locale, cloud ou hybride qui privilégie l’usage hors ligne. Elles peuvent aussi évoluer avec le produit. Un changement ultérieur reste coûteux parce qu’il touche à l’identité des données, aux conflits et à la confiance. La première décision ne doit donc pas dépendre uniquement d’une technologie préférée.

La bonne architecture rend ses conséquences claires

Les personnes n’ont pas besoin de comprendre les systèmes distribués, mais elles doivent savoir ce que l’architecture implique au quotidien : l’application fonctionne-t-elle sans réseau ? Les données apparaissent-elles sur d’autres appareils ? Comment créer une sauvegarde ? Quel contenu quitte le téléphone ?

Local et cloud ne sont pas des niveaux de qualité. Ils répartissent différemment les capacités, les risques et la responsabilité. Le meilleur choix correspond à l’objectif réel et rend ses conséquences claires, tant dans la technologie que dans le langage du produit.

Sources et informations complémentaires