← Voltar ao diário

Perspetivas

Local ou na cloud? A arquitetura de dados certa depende do produto

O armazenamento local e os serviços cloud resolvem problemas diferentes. Uma boa arquitetura acompanha a utilização, a colaboração, as necessidades offline e a responsabilidade pelos dados.

Um smartphone e uma pasta de documentos organizada, com separadores, encontram-se dentro de um limite de dados discreto.

Se um aplicativo deve armazenar dados localmente ou na nuvem parece uma questão de princípio técnico. Na realidade, é uma decisão do produto primeiro. Uma lista pessoal num único smartphone tem diferentes requisitos de um plano de implementação em que várias pessoas trabalham ao mesmo tempo. Qualquer abordagem pode ser confiável quando implementado cuidadosamente. Ambos podem se tornar incorrectamente complicados ou arriscados com a arquitetura errada.

A declaração simples “local is privative” é demasiado curta como “cloud é mais moderna”. Os dados locais podem ser perdados com o dispositivo. Os dados da Cloud podem permitir a colaboração e a recuperação, mas precisam de contas, infraestrutura e caminhos de dados compreensibles. A solução apropriada surge do cenário de uso, não de um rótulo.

O que significa “local” e “núve”

Para um aplicativo local, a cópia de dados relevante é armazenada na memória do dispositivo. Em muitos casos, o aplicativo pode funcionar sem rede. Um servidor não é necessário para o processo central. Isto não significa que estão envolvidos serviços do sistema operativo para distribuição, backup de dispositivos ou compartilhamento de um arquivo de exportação. Isto só significa que o fornecedor não opera uma base de dados de aplicações central para este dados de usuário.

Segundo a definição do NIST, o computador de cloud descreve o acesso à rede dirigido pela demanda a uma piscina compartilhada de recursos configurais. Para um aplicativo, as bases de dados, armazenamento de arquivos, serviços de identidade e potência de computação podem ser incluídas. A cópia central é então normalmente localizada em uma infraestrutura remota; dispositivos carregam dados, enviar mudanças e conciliar estado.

Muitos produtos usam uma abordagem híbrida. Eles armazenam dados sobre o dispositivo para manter a interface rápida e offline, e sincronizar no fundo com um servidor. Android Desenvolvidores chamam a arquitetura “offline-primer”, onde uma fonte de dados locais forma a base chave para leitura e acessos de rede atualizam esta cópia. Assim, a nuvem não desaparece. Ela é completada com um nível local adicional e regras de sincrática.

O armazenamento local reduz as dependências

Se um aplicativo não tiver conta ou servidor, o seu caminho de core se torna frequentemente mais fácil. Não há login, nenhuma senha esquecida e nenhuma interrupção de um serviço de sincronização. Os dados pessoais não precisam ser transferidos para o fornecedor para uso normal. Isto pode adaptar-se ao modelo de confiança esperado para uma única pessoa muito bem.

A disponibilidade offline é imediata. A informação permanece acessível no cave, em um edifício com uma recepção pobre ou quando viaja. As mudanças podem ser salvadas sem primeira consultar um estado remoto. A resposta do aplicativo não depende da latença de um serviço.

As operações também podem ser mais gerenciadas. Sem uma base de dados de usuários central, alguns custos de servidor, processos de conta e problemas de sincronização em curso são eliminados. No entanto, menos infraestrutura não significa qualquer infraestrutura ou responsabilidade: publicação, armazenamento de conexões, site, apoio e manutenção de produtos. Além disso, devem ser implementadas cuidadosamente.

A maior força local é também a sua limitação

Utilizando um dispositivo como a armazenagem primária cria claridade – mas também um único ponto de falha. Se o smartphone está perdido, ela fica danificada ou o aplicativo é excluído sem backup adequado, a única cópia de dados pode desaparecer. Se você quer continuar a trabalhar num novo dispositivo, você precisa de uma rota de exportação e recuperação planeada.

As backups, portanto, não são uma característica secundária opcional de produtos locais. Eles devem ser criadas inteligibamente, armazenadas fora do aplicativo e lendo em confiabilidade mais tarde. Um arquivo conservado apenas na área de aplicações privadas não protege contra a desinstalação ou perda de dispositivo. A cifragem pode proteger as exportações sensíveis, mas aumenta a responsabilidade: Uma senha perdida não pode ser substituída sem um serviço de recuperação central.

As backups do sistema operacional também merecem uma visão diferenciada. Apple descreve que certos directorios de aplicações podem ser incluídos no dispositivo ou iCloud backup dependendo do tipo de arquivos. O produto deve conscientmente decidir quais dados são permanentemente importantes, recuperáveis ou apenas temporários. No entanto, deve permanecer claro para os usuários se o próprio aplicativo oferece um backup portátil e o que eles podem confiar quando mudam dispositivos.

Sistemas Cloud permitem a colaboração e a continuidade

Assim que várias pessoas precisam do mesmo estado atual, uma infraestrutura central recebe uma forte vantagem. Uma equipe pode compartilhar tarefas, asignar papéis e fusão mudanças de diferentes dispositivos. Um novo computador não precisa receber um arquivo transferido manualmente. Após o login, o estado existente pode ser recargado.

Os serviços Cloud também são adequados para automatização central. Um servidor pode executar processos de fundo, distribuir notificações compartilhadas, integrar dados com outros sistemas e aplicar regras independentemente de se um smartphone específico está ativo. Isto é muitas vezes essencial para reservar portais, gestão da equipe ou avaliações em todo o mundo da empresa.

A backup e a recuperação também podem ser mais fácil para o usuário individual. As cópias do servidor redundant, a história da versão e os backups geridos reduzem o risco de um único dispositivo que contém tudo. No entanto, esta capacidade é uma capacidade do serviço específico, não uma propriedade automática da nuvem palavra. Os testes de armazenamento, recupero, regras de eliminação e processos de emergência devem realmente estar presentes.

A sincronização é um problema de produto em seu próprio direito

Um aplicativo com sincronização local de cópia e cloud, idealmente, oferece uso rápido offline e continuidade de devices cruzados. Isto levanta uma pergunta difícil: O que acontece quando dois dispositivos modificam o mesmo registro independentemente?

Alguns conflitos podem ser resolvidos após marcas de tempo. Outros “overscrever a última versão” informações valiosas. As listas podem fugir elementos enquanto os textos longos podem precisar de resolução de conflitos visíveis. Os arquivos precisam de um estado de upload, repetições após interrupção e regras para eliminação. O produto também deve mostrar se um estado é armazenado apenas localmente, já sincronizado ou errado.

O primeiro guia offline do Android descreve, entre outras coisas, fontes de dados locais e de rede, filas de sincronização e estratégias de leitura e escrita. Isto inclui uma gama significativa de testes: modo de voo, conexões instáveis, interrupções de processos, duplo envio, versões de aplicativos mais velhos e dados paralelos.

Por conseguinte, a sincronização não deve ser planejada como um único interruptor. É um componente permanente da lógica e da interface do domínio. Se não é necessário para o benefício real, sua omissão pode tornar um produto significativamente mais robusto. Se a cooperação é central, porém, a sua eliminação não seria focada, mas uma limitação errada.

Protecção dos dados depende do caminho completo de dados

O armazenamento local pode evitar transferências de dados e existências centrais de dados. É, portanto, uma forma eficaz de minimização de dados se a tarefa pode ser realizada sem um servidor. No entanto, a protecção do dispositivo, sandbox de aplicações, cifragem local, permissões, logs, exportações e backups permanece relevantes. Um arquivo de exportação não protegido num local compartilhado pode remover rapidamente a vantagem do armazenagem de aplicativos privados.

Para produtos de nuvem, as partes e perguntas adicionais entrem a imagem: Quais dados estão a sair do dispositivo? Na qual região são processados? Quem opera infraestrutura e suporte? Como são os acessos seguros, loginados e revogados? Quanto tempo os backups permanecem após a eliminação? Que dados são necessários para análise, notificação ou serviços AI?

Cloud não significa automaticamente uma ampla compartilhação. Uma plataforma bem diseñada pode minimizar os dados, cifrar, estritamente acesso separado e oferecer processos de eliminação transparentes. Localmente, não significa automáticamente que ninguém pode ver dados excepto o usuário; o sistema operacional, backups de dispositivos, arquivos compartilhados ou dispositivos comprometidos muda a imagem. A protecção dos dados é criada por arquitetura concreta e prática operacional.

Escalagem afeta mais do que os números de usuário

As arquitecturas de Cloud são muitas vezes baseadas na escalabilidade. Um serviço central pode acomodar usuários, dispositivos ou volumes de dados adicionais, desde que base de dados, armazenamento e operação sejam concebidos para ela. Isto resulta em custos de execução, monitoramento, planejamento de capacidade e responsabilidade de segurança. Basta utilização pode custar pouco; uso pesado ou grandes arquivos podem mudar o modelo de negócios.

Os aplicativos locais distribuem armazenamento e computação nos dispositivos. O provedor não paga um espaço de armazenagem de nuvem para cada arquivo pessoal. Para isso, os dispositivos diferem no desempenho e em armazenação disponível. Grandes conjuntos de imagens, modelos locais elaborados ou longas migrações podem cargar smartphones mais antigos. O suporte deve lidar com estados que não podem ser vistos ou reparados centralmente.

A escalação pode também ser específica do domínio. Um produto para dez propriedades só pode precisar de melhores filtros e de uma base de dados local maior. Um produtos para deze profissionais precisa papéis, regras de conflito e rastreabilidade. O número de registros somente não decide quando é necessário uma nuvem.

Propivio como um exemplo local consciente

Propivio é projetado para uma pessoa única que gerencia informações sobre algumas das suas próprias propriedades num smartphone. Não há conta de usuário, nenhum edição compartilhada e nenhum serviço automático de cloud do aplicativo. Documentos, fotos, contactos, leituras de metros e outros dados de domínio estão localizados na área de aplicações privadas.

Para este cenário, a abordagem reduz desnecessário conta e complexidade de sincronização. A consequência não está escondida: um processo de backup externo e recuperação é importante, e múltiplos dispositivos não compartilham um estado sincrático automaticamente. Qualquer que quer trabalhar com uma equipe, gerir grandes carteiras centralmente ou conectar portais deliberadamente está fora deste modelo de produto.

Outro produto de Zappapps poderia chegar a uma decisão diferente. Assim que o produto depende de colaboração, automatização centralizada ou acesso compartilhado, uma arquitetura de nuvem seria plausível apesar de maior complexidade. A consistência de uma marca não exige construir cada aplicação tecnicamente o mesmo. É necessário explicar cada decisão de forma compreensivel.

Uma matriz de decisão em vez de uma questão de crença

Antes de escolher a arquitetura, as perguntas concretas ajudam:

  • Uma pessoa trabalha sozinha ou vários papéis têm de ver o mesmo estado atual?
  • O processo central tem de funcionar completamente sem rede?
  • Quanto seria grave a perda do dispositivo?
  • Quem é responsável pelo apoio e recuperação?
  • O acesso ao dispositivo cruzamento é um benefício central ou uma conveniência ocasional?
  • Que dados são sensíveis e quais as transmissões são realmente necessárias?
  • O produto precisa de processos de fundo ou integrações se nenhum dispositivo não estiver ativo?
  • Que custos de funcionamento, apoio e infraestrutura são sustentáveis?
  • Como se resolvem as exportações, a eliminação, a migração e uma eventual mudança do fornecedor?

As respostas podem levar a primeira solução local, nuvem ou híbrido offline. Eles podem mudar com o produto. No entanto, uma mudança posterior é costosa porque a identidade, conflito e confiança são afetadas. Portanto, a primeira decisão não deve ser tomada exclusivamente através de uma tecnologia preferida.

A arquitetura certa torna as suas consequências visíveis

As pessoas não precisam compreender sistemas distribuídos para usar um aplicativo, mas você deve saber o que importa para sua vida cotidiana: Ela funciona sem uma rede? Os dados disponíveis em outros dispositivos? Podem trabalhar? O que acontece quando você perder ou desinstalar? Como ocorre um backup? Qual o conteúdo é transferido para um serviço?

Uma boa arquitetura de dados responde estas perguntas não só na tecnologia, mas também em textos e interações do produto. Local e nuvem não são níveis de qualidade. São diferentes distribuições de capacidades, riscos e responsabilidade. A melhor escolha é a que corresponde ao propósito real e cujas consequências o produto trata honestamente.

Fontes e informações adicionais