← Volver al diario

Perspectivas

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

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

Un móvil y una carpeta de documentos ordenada, con separadores, aparecen dentro de un límite de datos sutil.

Si una aplicación debe almacenar datos localmente o en la nube suena como una cuestión de principio técnico. En realidad, es una decisión del producto primero. Una lista de verificación personal en un solo smartphone tiene diferentes requisitos de un plan de implementación en el que varias personas trabajan al mismo tiempo. Cualquiera de los enfoques puede ser confiable cuando se implementa cuidadosamente. Ambos pueden llegar a ser innecesariamente complicados o riesgosos con la arquitectura equivocada.

La simple declaración “local is private” es demasiado corta como “cloud is more modern”. Los datos locales se pueden perder con el dispositivo. Los datos de la nube pueden permitir la colaboración y la recuperación, pero necesitan cuentas, infraestructura y rutas de datos comprensibles. La solución adecuada surge del escenario de uso, no de una etiqueta.

¿Qué significan “local” y “nube”?

Para una aplicación local, la copia de datos relevante se almacena en la memoria del dispositivo. En muchos casos, la aplicación puede funcionar sin una red. No se requiere un servidor para el proceso central. Esto no significa que los servicios del sistema operativo para la distribución, copia de seguridad del dispositivo o compartir un archivo de exportación están involucrados. Sólo significa que el proveedor no opera una base de datos central de aplicaciones para estos datos de usuario.

Bajo la definición NIST, cloud computing describe el acceso de red basado en la demanda a un grupo compartido de recursos configurables. Para una aplicación, se pueden incluir las bases de datos, almacenamiento de archivos, servicios de identidad y potencia informática. La copia central se encuentra normalmente en una infraestructura remota; los dispositivos cargan datos, envían cambios y reconcilian estado.

Muchos productos utilizan un enfoque híbrido. Almacenan datos en el dispositivo para mantener la interfaz rápida y sin conexión, y se sincronizan en segundo plano con un servidor. Android Developers llama a la arquitectura “offline-first”, donde una fuente de datos local constituye la base clave para la lectura y los accesos a la red actualizan esta copia. Por lo tanto, la nube no desaparece. Se complementa con un nivel local adicional y reglas de sincronización.

El almacenamiento local reduce las dependencias

Si una aplicación no tiene una cuenta o servidor, su ruta principal a menudo se vuelve más fácil. No hay inicio de sesión, contraseña olvidada ni interrupción de un servicio de sincronización. Los datos personales no necesitan ser transferidos al proveedor para su uso normal. Esto puede adaptarse muy bien al modelo de confianza esperado para una sola persona.

La disponibilidad fuera de línea es inmediata. La información permanece accesible en el sótano, en un edificio con mala recepción o cuando viaja. Los cambios se pueden guardar sin consultar primero un estado remoto. La respuesta de la aplicación no depende de la latencia de un servicio.

Las operaciones también pueden ser más manejables. Sin una base de datos central de usuarios, se eliminan ciertos costos de servidor, procesos de cuenta y problemas de sincronización. Sin embargo, menos infraestructura no significa ninguna infraestructura o responsabilidad: publicación, conexiones de tienda, sitio web, soporte y mantenimiento de productos. Además, el almacenamiento local, migración, gestión de archivos y recuperación deben ser cuidadosamente implementados.

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

El uso de un dispositivo como la tienda principal crea claridad, pero también un único punto de fallo. Si el smartphone se pierde, se daña o la aplicación se elimina sin una copia de seguridad adecuada, la única copia de datos puede desaparecer. Si quieres seguir trabajando en un nuevo dispositivo, necesitas una ruta de exportación y recuperación planificada.

Por lo tanto, las copias de seguridad no son una característica secundaria opcional de los productos locales. Deben crearse de forma inteligible, almacenarse fuera de la aplicación y leerse de manera fiable más tarde. Un archivo que se conserva sólo en el área de aplicación privada no protege contra la desinstalación o la pérdida del dispositivo.

Las copias de seguridad del sistema operativo también merecen una vista diferenciada. Apple describe que ciertos directorios de aplicaciones pueden incluirse en las copias de respaldo de dispositivos o iCloud dependiendo del tipo de archivos. El producto debe decidir conscientemente qué datos son permanentemente importantes, recuperables o sólo temporales. Sin embargo, debe quedar claro para los usuarios si la propia aplicación ofrece una copia de seguridad portátil y en qué pueden confiar al cambiar de dispositivo.

Los sistemas en la nube permiten la colaboración y la continuidad

Tan pronto como varias personas necesitan el mismo estado actual, una infraestructura central recibe una fuerte ventaja. Un equipo puede compartir tareas, asignar roles y combinar cambios desde diferentes dispositivos. Una nueva computadora no necesita recibir un archivo transferido manualmente. Después de iniciar sesión, el estado existente se puede recargar.

Los servicios en la nube también son adecuados para la automatización central. Un servidor puede ejecutar procesos de fondo, distribuir notificaciones compartidas, integrar datos con otros sistemas y aplicar reglas independientemente de si un smartphone en particular está activo.

Copias de seguridad y recuperación también pueden ser más fáciles para el usuario individual. Copias redundantes del servidor, historial de versiones y copias de seguridad administradas reducen el riesgo de un solo dispositivo que contiene todo. Sin embargo, esta capacidad es una capacidad del servicio específico, no una propiedad automática de la nube de palabras.

La sincronización es un problema de producto por derecho propio

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

Algunos conflictos se pueden resolver después de marcas de tiempo. Otros “sobrescribirían la última versión” información valiosa. Las listas pueden fusionar elementos mientras que los textos largos pueden necesitar resolución visible de conflictos. Los archivos necesitan estado de carga, reintentos después de la interrupción y reglas para la eliminación. El producto también debe mostrar si un estado se almacena sólo localmente, ya sincronizado o defectuoso.

La primera guía offline de Android describe, entre otras cosas, fuentes de datos locales y de red, colas de sincronización y estrategias de lectura y escritura. Esto incluye una amplia gama de pruebas: modo de vuelo, conexiones inestables, interrupciones de procesos, envío doble, versiones de aplicaciones antiguas y datos cambiados en paralelo.

Por lo tanto, la sincronización no debe planificarse como un solo interruptor. Es un componente permanente de la lógica de dominio e interfaz. Si no es necesario para el beneficio real, su omisión puede hacer un producto significativamente más robusto. Si la cooperación es central, sin embargo, su eliminación no sería foco sino una limitación equivocada.

La protección de datos depende de la ruta completa de datos

El almacenamiento local puede evitar transferencias de datos y reservas centrales de datos. Por lo tanto, es una forma efectiva de minimización de datos si la tarea se puede realizar sin un servidor. Sin embargo, la protección del dispositivo, sandbox de aplicaciones, cifrado local, permisos, registros, exportaciones y copias de seguridad siguen siendo relevantes. Un archivo de exportación sin protección en una ubicación compartida puede eliminar rápidamente la ventaja del almacenamiento privado de aplicaciones.

Para los productos en la nube, las partes adicionales y las preguntas introducen la imagen: ¿Qué datos están saliendo del dispositivo? ¿En qué región se procesan? ¿Quién opera la infraestructura y el soporte? ¿Cómo se aseguran, registran y revocan los accesos? ¿Cuánto tiempo permanecen las copias de seguridad después de la eliminación?

Cloud no significa automáticamente un intercambio amplio. Una plataforma bien diseñada puede minimizar los datos, cifrar, acceso estrictamente separado y ofrecer procesos de eliminación transparentes. Localmente, no significa que nadie puede ver datos excepto el usuario; el sistema operativo, copias de seguridad del dispositivo, archivos compartidos o dispositivos comprometidos cambian la imagen. La protección de datos se crea por la arquitectura concreta y la práctica operativa.

El escalado afecta más que los números de usuario

Las arquitecturas de la nube a menudo se basan en la escalabilidad. Un servicio central puede acomodar usuarios, dispositivos o volúmenes de datos adicionales, siempre que la base de datos, el almacenamiento y el funcionamiento estén diseñados para ello. Esto resulta en costos de funcionamiento, monitoreo, planificación de la capacidad y responsabilidad de seguridad.

Las aplicaciones locales distribuyen el almacenamiento y la computación en los dispositivos. El proveedor no paga un espacio de almacenamiento en la nube para cada archivo personal. Para ello, los dispositivos difieren en rendimiento y almacenamiento disponible. Los conjuntos de imágenes grandes, los modelos locales elaborados o las migraciones largas pueden sobrecargar los teléfonos inteligentes más antiguos.

El escalado también puede ser específico del dominio. Un producto para diez propiedades sólo puede necesitar mejores filtros y una base de datos local más grande. Un productos para diez profesionales necesita roles, reglas de conflicto y trazabilidad. El número de registros por sí solo no decide cuándo se requiere una nube.

Propivio como ejemplo local consciente

Propivio está diseñado para una sola persona que gestiona información sobre algunas de sus propias propiedades en un smartphone. No hay cuenta de usuario, no hay edición compartida y no hay servicio de nube de aplicaciones automáticas. Documentos, fotos, contactos, lecturas de contadores y otros datos de dominio se encuentran localmente en el área de aplicación privada.

Para este escenario, el enfoque reduce la complejidad innecesaria de cuenta y sincronización. La consecuencia no está oculta: un proceso de copia de seguridad y recuperación externa es importante, y múltiples dispositivos no comparten un estado sincronizado automáticamente. Cualquier persona que quiera trabajar con un equipo, administrar grandes carteras de forma centralizada o conectar portales deliberadamente está deliberadamente fuera de este modelo de producto.

Otro producto de Zappapps podría llegar a una decisión diferente. Tan pronto como el producto depende de la colaboración, automatización centralizada o acceso compartido, una arquitectura en la nube sería plausible a pesar de una mayor complejidad. La coherencia de una marca no requiere construir cada aplicación técnicamente la misma. Requiere explicar cada decisión de una manera comprensible.

Una matriz de decisiones en lugar de una cuestión de creencias

Antes de elegir la arquitectura, las preguntas concretas ayudan a:

  • ¿Una persona trabaja sola o varios roles tienen que ver el mismo estado actual?
  • ¿El proceso central tiene que funcionar completamente sin una red?
  • ¿Qué tan grave sería la pérdida del dispositivo?
  • ¿Quién es responsable de la copia de seguridad y la recuperación?
  • ¿Es el acceso entre dispositivos un beneficio central o una conveniencia ocasional?
  • ¿Qué datos son sensibles y qué transmisiones son realmente necesarias?
  • ¿Necesita el producto procesos de fondo o integraciones si ningún dispositivo está activo?
  • ¿Qué costes de explotación, apoyo e infraestructura son sostenibles?
  • ¿Cómo se resuelven las exportaciones, la eliminación, la migración y un posible cambio de proveedor?

Las respuestas pueden conducir a una primera solución local, en la nube o híbrida offline. Pueden cambiar con el producto. Sin embargo, un cambio posterior es costoso porque la identidad de los datos, el conflicto y la confianza se ven afectados. Por lo tanto, la primera decisión no se debe tomar únicamente mediante el uso de una tecnología preferida.

La arquitectura correcta hace visibles sus consecuencias

La gente no necesita entender los sistemas distribuidos para usar una aplicación, pero usted debe saber lo que importa para su vida cotidiana: ¿Funciona sin una red? ¿Los datos están disponibles en otros dispositivos? ¿Pueden funcionar los colegas? ¿Qué sucede cuando pierdes o desinstalas? ¿Cómo ocurre una copia de seguridad? ¿Cuál es el contenido transferido a un servicio?

Una buena arquitectura de datos responde a estas preguntas no sólo en tecnología, sino también en textos de productos e interacciones. Local y en la nube no son niveles de calidad. Son diferentes distribuciones de capacidades, riesgos y responsabilidad. La mejor elección es la que se adapte al propósito real y cuyas consecuencias el producto maneja honestamente.

Fuentes y más información