Todos los artículos

Reflexiones sobre desarrollo

¿Local o en la nube? La arquitectura de datos adecuada depende del producto

El almacenamiento local y los servicios en la nube resuelven problemas distintos. Una buena arquitectura responde al uso, la colaboración, las necesidades sin conexión y la responsabilidad sobre los datos.

Un smartphone y una carpeta de documentos ordenada con separadores aparecen dentro de un límite de datos discreto.

Elegir si una aplicación guarda los datos de forma local o en la nube puede parecer una decisión técnica, pero empieza por el modo en que se utilizará el producto. Una lista personal en un solo smartphone tiene requisitos distintos de un plan que varias personas editan a la vez. Ambas arquitecturas pueden ser fiables, y ambas pueden volverse innecesariamente complejas si no encajan con el escenario.

«Local significa privado» es tan incompleto como «nube significa moderno». Los datos locales pueden desaparecer con el dispositivo. Los servicios en la nube pueden facilitar la colaboración y la recuperación, pero exigen cuentas, infraestructura y recorridos de datos comprensibles. La distribución adecuada depende del caso de uso, no de la etiqueta.

En pocas palabras

  • Local o nube es una decisión de producto, no una escala de calidad.
  • Los datos locales favorecen el uso sin conexión, pero exigen una vía fiable para las copias de seguridad.
  • Los servicios en la nube permiten un estado compartido, pero añaden cuentas, sincronización y operación continua.

Qué significan realmente «local» y «nube»

En una aplicación local, la copia principal de los datos se guarda en el dispositivo. En muchos casos, la aplicación puede completar su proceso básico sin red ni servidor. Los servicios del sistema operativo pueden seguir interviniendo en la distribución, las copias del dispositivo o el envío de un archivo exportado. «Local» significa que el proveedor no opera una base de datos central de la aplicación para esos datos; no significa que desaparezca todo el ecosistema del dispositivo.

Según la definición del NIST, la computación en la nube es el acceso a través de la red y bajo demanda a un conjunto compartido de recursos configurables. En una aplicación, esos recursos pueden incluir bases de datos, almacenamiento de archivos, servicios de identidad y capacidad de cálculo. La copia central suele estar en una infraestructura remota; los dispositivos cargan datos, envían cambios y concilian estados.

Muchos productos emplean un enfoque híbrido. Guardan datos en el dispositivo para mantener la interfaz rápida y disponible sin conexión, y se sincronizan en segundo plano con un servidor. Android Developers denomina «offline first» a esta arquitectura: una fuente local sirve como base principal para la lectura y los accesos a la red actualizan esa copia. La nube no desaparece; se complementa con una capa local y reglas de sincronización.

El almacenamiento local reduce dependencias

Cuando una aplicación no necesita cuenta ni servidor, su recorrido principal suele ser más sencillo. No hay inicio de sesión, contraseña olvidada ni interrupción de un servicio de sincronización. Los datos personales no tienen que transferirse al proveedor para el uso normal. Esto puede encajar muy bien con el modelo de confianza esperado por una sola persona.

La disponibilidad sin conexión es inmediata. La información sigue accesible en un sótano, en un edificio con poca cobertura o durante un viaje. Los cambios pueden guardarse sin consultar primero un estado remoto. La respuesta de la aplicación no depende de la latencia de un servicio.

La operación también puede resultar más manejable. Sin una base central de usuarios desaparecen algunos costes de servidor, procesos de cuenta y problemas continuos de sincronización. Menos infraestructura no significa, sin embargo, que no exista infraestructura ni responsabilidad: la publicación, las conexiones con las tiendas, el sitio web, el soporte y el mantenimiento del producto permanecen. El almacenamiento local, las migraciones, el tratamiento de archivos y la recuperación también deben implementarse con cuidado.

La mayor ventaja local es también su limitación

Usar un solo dispositivo como almacén principal aporta claridad, pero crea un único punto de fallo. Si el smartphone se pierde, se daña o se elimina la aplicación sin una copia adecuada, puede desaparecer la única copia de los datos. Para continuar en un dispositivo nuevo hace falta una vía planificada de exportación y recuperación.

Por tanto, las copias de seguridad no son una función secundaria opcional en los productos locales. Deben crearse de forma comprensible, guardarse fuera de la aplicación y poder leerse de manera fiable más tarde. Un archivo conservado solo en la zona privada de la aplicación no protege frente a la desinstalación ni la pérdida del dispositivo. El cifrado puede proteger exportaciones sensibles, pero aumenta la responsabilidad: sin un servicio central de recuperación, quizá no sea posible sustituir una contraseña perdida.

Las copias del sistema operativo también requieren una mirada diferenciada. Apple explica que ciertos directorios de una aplicación pueden incluirse en las copias del dispositivo o de iCloud según el tipo de archivo. El producto debe decidir conscientemente qué datos son importantes de forma permanente, cuáles pueden recuperarse y cuáles son temporales. Aun así, debe quedar claro para las personas si la propia aplicación ofrece una copia portátil y en qué pueden confiar al cambiar de dispositivo.

Los sistemas en la nube permiten colaboración y continuidad

En cuanto varias personas necesitan el mismo estado actualizado, una infraestructura central obtiene una ventaja clara. Un equipo puede compartir tareas, asignar roles y combinar cambios de distintos dispositivos. No hace falta transferir manualmente un archivo a un ordenador nuevo; después de iniciar sesión puede volver a cargar el estado existente.

Los servicios en la nube también son apropiados para la automatización central. Un servidor puede ejecutar procesos en segundo plano, distribuir notificaciones compartidas, integrar datos con otros sistemas y aplicar reglas con independencia de que un smartphone concreto esté activo. Esto suele ser esencial para portales de reservas, la gestión de equipos o los análisis de toda una empresa.

Las copias de seguridad y la recuperación también pueden resultar más sencillas para cada usuario. Las copias redundantes en el servidor, el historial de versiones y los respaldos gestionados reducen el riesgo de que todo dependa de un dispositivo. Esa capacidad pertenece, no obstante, al servicio concreto; no es una propiedad automática de la palabra «nube». El almacenamiento, las pruebas de recuperación, las reglas de eliminación y los procesos de emergencia deben existir realmente.

La sincronización es un problema de producto por sí misma

Una aplicación con copia local y sincronización en la nube ofrece idealmente un uso rápido sin conexión y continuidad entre dispositivos. De ahí surge una pregunta difícil: ¿qué ocurre cuando dos dispositivos modifican el mismo registro de forma independiente?

Algunos conflictos pueden resolverse con marcas de tiempo. En otros casos, la regla «se conserva la última versión» eliminaría información valiosa. Las listas pueden combinar elementos, mientras que los textos largos pueden exigir una resolución visible de conflictos. Los archivos necesitan un estado de carga, nuevos intentos después de una interrupción y reglas de eliminación. El producto también debe mostrar si un estado está guardado solo de forma local, ya se ha sincronizado o presenta un error.

La guía «offline first» de Android describe, entre otras cosas, fuentes de datos locales y de red, colas de sincronización y estrategias de lectura y escritura. De ahí se deriva un conjunto importante de pruebas: modo avión, conexiones inestables, interrupciones del proceso, envíos duplicados, versiones antiguas de la aplicación y datos cambiados en paralelo.

Por tanto, la sincronización no debe planificarse como un simple interruptor. Es una parte permanente de la lógica del dominio y de la interfaz. Si no es necesaria para el beneficio real, omitirla puede hacer el producto mucho más robusto. Si la colaboración es central, en cambio, eliminarla no sería enfoque, sino una limitación equivocada.

La protección depende de todo el recorrido de los datos

El almacenamiento local puede evitar transferencias y grandes conjuntos centrales de datos. Es una forma eficaz de minimización si la tarea puede realizarse sin servidor. Siguen siendo relevantes, sin embargo, la protección del dispositivo, el aislamiento de la aplicación, el cifrado local, los permisos, los registros técnicos, las exportaciones y las copias. Un archivo exportado sin protección a una ubicación compartida puede anular rápidamente la ventaja del almacenamiento privado.

En los productos en la nube aparecen otros participantes y preguntas: ¿qué datos salen del dispositivo? ¿En qué región se procesan? ¿Quién opera la infraestructura y el soporte? ¿Cómo se protegen, registran y revocan los accesos? ¿Cuánto tiempo permanecen las copias después de eliminar los datos? ¿Qué información necesitan los servicios de análisis, notificación o procesamiento asistido por modelos?

La nube no implica automáticamente compartir de forma amplia. Una plataforma bien diseñada puede minimizar los datos, cifrarlos, separar rigurosamente los accesos y ofrecer procesos transparentes de eliminación. «Local» tampoco garantiza que nadie salvo el usuario pueda ver la información: el sistema operativo, las copias del dispositivo, los archivos compartidos o un dispositivo comprometido cambian la situación. La protección nace de la arquitectura concreta y de la práctica operativa.

Escalar implica más que el número de usuarios

Las arquitecturas en la nube suelen asociarse con la escalabilidad. Un servicio central puede admitir más usuarios, dispositivos o volumen de datos si la base de datos, el almacenamiento y la operación están preparados. De ello surgen costes continuos, supervisión, planificación de capacidad y responsabilidad de seguridad. Un uso reducido puede costar poco; un uso intenso o archivos grandes pueden cambiar el modelo de negocio.

Las aplicaciones locales reparten el almacenamiento y el cálculo entre los dispositivos. El proveedor no paga espacio en la nube por cada archivo personal. A cambio, los dispositivos varían en rendimiento y espacio disponible. Las colecciones grandes de imágenes, los modelos locales complejos o las migraciones largas pueden sobrecargar smartphones antiguos. El soporte debe gestionar estados que no puede ver o reparar de forma central.

La escala también depende del dominio. Un producto para diez inmuebles quizá solo necesite mejores filtros y una base local mayor. Un producto para diez profesionales necesita roles, reglas para conflictos y trazabilidad. El número de registros por sí solo no decide cuándo hace falta la nube.

Propivio como ejemplo de una elección local consciente

Propivio está diseñado para una sola persona que gestiona en su smartphone información sobre algunos inmuebles propios. No hay cuenta de usuario, edición compartida ni un servicio automático de la aplicación en la nube. Los documentos, fotografías, contactos, lecturas de contadores y demás datos permanecen localmente en la zona privada de la aplicación.

Para este escenario, el planteamiento reduce la complejidad innecesaria de cuentas y sincronización. La consecuencia no se oculta: es importante disponer de un proceso externo de copia y recuperación, y varios dispositivos no comparten automáticamente un estado sincronizado. Quien quiera trabajar en equipo, gestionar de forma central grandes carteras o conectar portales queda deliberadamente fuera de este modelo de producto.

Otro producto de Zappapps podría tomar una decisión diferente. En cuanto el producto dependa de la colaboración, la automatización central o el acceso compartido, una arquitectura en la nube puede ser razonable a pesar de su mayor complejidad. La coherencia de una marca no exige construir técnicamente todas las aplicaciones de la misma manera; exige explicar cada decisión con claridad.

Una matriz de decisión, no una cuestión de fe

Antes de elegir la arquitectura, ayudan preguntas concretas:

  • ¿Trabaja una persona sola o varios roles deben ver el mismo estado actualizado?
  • ¿El proceso principal tiene que funcionar por completo sin red?
  • ¿Qué gravedad tendría la pérdida del dispositivo?
  • ¿Quién es responsable de la copia de seguridad y de la recuperación?
  • ¿El acceso entre dispositivos es un beneficio central o una comodidad ocasional?
  • ¿Qué datos son sensibles y qué transferencias son realmente necesarias?
  • ¿El producto necesita procesos en segundo plano o integraciones cuando no hay ningún dispositivo activo?
  • ¿Qué costes de operación, soporte e infraestructura son sostenibles?
  • ¿Cómo se resuelven la exportación, la eliminación, la migración y un posible cambio de proveedor?

Las respuestas pueden conducir a una solución local, en la nube o híbrida con prioridad al funcionamiento sin conexión. También pueden cambiar con el producto. Un cambio posterior resulta costoso porque afecta a la identidad de los datos, los conflictos y la confianza. Por eso, la primera decisión no debe depender únicamente de una tecnología preferida.

La arquitectura adecuada deja claras sus consecuencias

Las personas no necesitan comprender los sistemas distribuidos, pero sí deben saber qué significa la arquitectura en el día a día: ¿la aplicación funciona sin red? ¿Los datos aparecen en otros dispositivos? ¿Cómo se crea una copia de seguridad? ¿Qué contenido sale del teléfono?

Local y nube no son niveles de calidad. Distribuyen de forma distinta las capacidades, los riesgos y la responsabilidad. La mejor elección responde al propósito real y deja claras sus consecuencias tanto en la tecnología como en el lenguaje del producto.

Fuentes y más información