Avançar para o conteúdo principal
BlogBases de dadosImplantar um Sistema de Gestão de Documentos Electrónicos Baseado na Nuvem

Implantar um Sistema de Gestão de Documentos Electrónicos Baseado na Nuvem

_EEDMS- com-Mayan-and-PostgreSQL de alta disponibilidade

Para o trabalho quotidiano, o armazenamento de documentos é normalmente feito através de software de produtividade online e armazenamento em nuvem. Torna-se mais desafiante à medida que uma aplicação precisa de processar, armazenar e recuperar volumes maiores. A utilização de um Sistema de Gestão Electrónica de Documentos (EDMS) é uma solução melhor, uma vez que são concebidos para armazenar, indexar e recuperar documentos com elevado desempenho e disponibilidade, e alguns incluem características como metadados personalizáveis e controlo de versões.

Embora haja muitas soluções EDMS baseadas em SaaS disponíveis, pode implementar o seu próprio EDMS de código aberto para manter o controlo completo sobre os seus dados. Neste post, aprenderá como criar um EDMS maia altamente disponível, apoiado por uma base de dados PostgreSQL.

Benefícios do EDMS

Esta configuração é ideal se armazenar e processar um grande número de documentos e precisar de um EDMS anexado a uma aplicação baseada na web, eliminando a necessidade de quaisquer instalações do lado do cliente. A execução de um EDMS como um núcleo central garante:

  • segurança, privacidade, e controlo total dos seus dados;
  • fácil integração com software de terceiros; e
  • automatização dos fluxos de trabalho de documentos para processos empresariais.

Porquê o PostgreSQL?

O PostgreSQL é um poderoso sistema de gestão de bases de dados de código aberto, de fonte aberta, altamente valorizado pela sua escalabilidade, segurança e desempenho. A fim de suportar escalabilidade de ponta a ponta para a sua aplicação, a sua base de dados também precisa de estar altamente disponível, pelo que este exemplo de arquitectura incorpora uma ferramenta de replicação especificamente para o PostgreSQL.

Começar com o EDMS Maia

Mayan é um EDMS de código aberto baseado na web escrito em Python. O Mayan tem por defeito (por concepção) instalar e executar num único sistema; todos os componentes da sua aplicação e base de dados podem viver num único servidor ou dentro de vários contentores Docker. Embora isto seja óptimo para testes ou ambientes triviais, para um ambiente de produção queremos uma alta disponibilidade e um conceito amplamente conhecido e adoptado conhecido como o princípio SoC (Separation of Concern). Esta é a melhor prática crucial para a construção de aplicações em camadas e escaláveis. Esta arquitectura de referência demonstra como fazer isso com o Mayan.

Prós

  • Código aberto significa sem taxas de licenciamento
  • Facilmente armazenar, visualizar e reverter versões de documentos
  • Pesquisa de texto completo de documentos utilizando metadados personalizáveis definidos pelo utilizador
  • Controlos de acesso flexíveis para conceber funções e permissões de utilizador eficazes
  • Fluxos de trabalho personalizáveis com desencadeadores de eventos para manter os documentos actualizados

Contras

  • Complexo para casos de uso menor
  • A interface do utilizador é menos intuitiva do que outras soluções
  • Recurso pesado para CPUs com reconhecimento óptico de caracteres (OCR)

Arquitectura de referência de aplicação

Para optimizar as capacidades dos Maias em aplicações do mundo real, a nossa arquitectura utiliza:

Um NodeBalancer distribui o tráfego para os nossos nós de aplicação. Se um servidor de aplicação for abaixo, o serviço de balanceamento de carga começará apenas a dirigir o tráfego para o nó saudável. Logo que o nó não saudável recupere, retomará as ligações de equilíbrio como antes. Isto torna fácil adicionar, remover, ou actualizar servidores de aplicação sem tempo de inactividade, tudo isto mantendo as ligações aos nós da base de dados PostgreSQL.

Para o "cérebro" da aplicação, o Mayan e o NGINX são implementados nas mesmas máquinas virtuais e podemos aproveitar o suporte do Mayan para o s3boto3 como um backend de armazenamento para carregar os nossos documentos para o S3 compatível com o Linode Object Storage.

Se a sua aplicação é de missão crítica e utiliza PostgreSQL como base de dados backend primária, a incorporação de Bucardo oferece uma melhor garantia de tempo de funcionamento e torna a sua base de dados tolerante a falhas.

Também pode conseguir alta disponibilidade e replicação com um serviço de base de dados gerido que suporta PostgreSQL, mas tenha em mente que a maioria das ofertas de DBaaS focam-se na actualização das versões do PostgreSQL e em manter o seu cluster de bases de dados online e disponível. A implementação do Bucardo dá à sua base de dados PostgreSQL replicação bidireccional entre dois ou mais nós de base de dados, assegurando que a sua base de dados esteja altamente disponível.

Neste exemplo, todos os nós estão protegidos com Firewalls de Nuvem para proteção da Internet pública e comunicam internamente através de VLAN privado. Os servidores de aplicativos se conectam aos bancos de dados por meio de um endereço IP flutuante compartilhado VLAN com keepalived para facilitar o failover.

Keepalived, ou outro sistema de failover IP como o FRRouting (FRR), é implementado ao nível da base de dados para que um nó de base de dados saudável seja ligado ao cluster dos seus nós de aplicação.

Atingir tolerância a falhas para ficheiros críticos

Um EDMS servirá muitas vezes como um núcleo central para as operações diárias e acolherá alguns dos ficheiros mais críticos da sua organização. A nossa aplicação é construída com redundância a todos os níveis para tolerância a falhas de base e optimização do desempenho:

  • Os documentos são armazenados no Object Storage altamente disponível da Linode.
  • A base de dados está num nó separado para aumentar o desempenho e evitar ter um único ponto de falha.
  • Bucardo realiza a replicação automática da base de dados entre os nós Postgres.

Explorar mais Conteúdo Técnico e Arquitecturas

A nossa equipa de Engenharia de Soluções partilha estruturas, guias e ferramentas como esta para facilitar aos programadores a construção de aplicações que sigam as melhores práticas para a arquitectura de software. Consulte a nossa arquitectura de referência de clusters Galera para uma arquitectura MySQL/MariaDB altamente disponível, ou consulte os nossos exemplos de arquitectura de referência disponíveis em Linode Docs.


Comentários (2)

  1. Author Photo

    How much those it cost to implement the mayan edms in a month and in a year.
    Your swift response is best appreciated

Deixe uma resposta

O seu endereço de correio electrónico não será publicado. Os campos obrigatórios estão marcados com *