Pular para o conteúdo principal
BlogBases de dadosImplantar um sistema de gerenciamento de documentos eletrônicos baseado em nuvem

Implantar um sistema de gerenciamento de documentos eletrônicos baseado em nuvem

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

Para o trabalho diário, o armazenamento de documentos é normalmente feito através de software de produtividade on-line e armazenamento em nuvem. Fica mais desafiador à medida que uma aplicação precisa processar, armazenar e recuperar volumes maiores. Usar um Sistema de Gerenciamento Eletrônico de Documentos (EDMS) é uma solução melhor, pois eles são projetados para armazenar, indexar e recuperar documentos com alto desempenho e disponibilidade, e alguns incluem recursos como metadados personalizáveis e controle de versão.

Embora haja muitas soluções EDMS baseadas em SaaS disponíveis, você pode implantar seu próprio EDMS de código aberto para manter o controle completo sobre seus dados. Neste post, você aprenderá como configurar um EDMS maia altamente disponível, apoiado por um banco de dados PostgreSQL.

Benefícios do EDMS

Esta configuração é ideal se você armazena e processa um grande número de documentos e precisa de um EDMS que esteja anexado a uma aplicação baseada na web, eliminando a necessidade de qualquer instalação do lado do cliente. A execução de um EDMS como um hub central garante:

  • segurança, privacidade e controle total de seus dados;
  • fácil integração com software de terceiros; e
  • automação de fluxos de trabalho de documentos para processos comerciais.

Por que PostgreSQL?

O PostgreSQL é um poderoso sistema de gerenciamento de banco de dados de código aberto de código aberto que é altamente valorizado por sua escalabilidade, segurança e desempenho. A fim de suportar escalabilidade de ponta a ponta para sua aplicação, seu banco de dados também precisa estar altamente disponível, de modo que este exemplo de arquitetura incorpora uma ferramenta de replicação especificamente para o PostgreSQL.

Começando com o EDMS maia

Mayan é um EDMS de código aberto baseado na web escrito em Python. Os padrões maias (por projeto) para instalação e execução em um único sistema; todos os componentes de sua aplicação e banco de dados podem viver em um único servidor ou dentro de vários containers Docker. Embora isto seja ótimo para testes ou ambientes triviais, para um ambiente de produção queremos alta disponibilidade e um conceito amplamente conhecido e adotado 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 arquitetura de referência demonstra como fazer isso com o Mayan.

Prós

  • Código aberto significa sem taxas de licenciamento
  • Armazenar, visualizar e reverter facilmente versões de documentos
  • Busca de texto completo de documentos usando metadados personalizáveis definidos pelo usuário
  • Controles de acesso flexíveis para projetar funções e permissões de usuário eficazes
  • Fluxos de trabalho personalizáveis com acionadores de eventos para manter os documentos atualizados

Contras

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

Arquitetura de referência de aplicação

Para otimizar as capacidades dos maias em aplicações do mundo real, nossa arquitetura utiliza:

Um NodeBalancer distribui o tráfego para nossos nós de aplicação. Se um servidor de aplicação for desligado, o serviço de balanceamento de carga começará apenas a direcionar o tráfego para o nó saudável. Assim que o nó insalubre se recuperar, ele retomará as conexões de balanceamento como antes. Isto facilita a adição, remoção ou atualização de servidores de aplicação sem tempo de inatividade, tudo enquanto mantém as conexões com os nós do banco de dados PostgreSQL.

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

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

Você também pode conseguir alta disponibilidade e replicação com um serviço gerenciado de banco de dados que suporta PostgreSQL, mas tenha em mente que a maioria das ofertas DBaaS focam na atualização das versões do PostgreSQL e em manter seu cluster de banco de dados online e disponível. A implementação do Bucardo dá ao seu banco de dados PostgreSQL replicação bidirecional entre dois ou mais nós de banco de dados, garantindo que seu banco de dados esteja altamente disponível.

Neste exemplo, todos os nós são protegidos com Cloud Firewalls para proteção contra a Internet pública e se comunicam internamente por meio 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 no nível do banco de dados para que um nó de banco de dados saudável seja conectado ao cluster de seus nós de aplicação.

Atingir tolerância a falhas para arquivos críticos

Um EDMS servirá freqüentemente como um núcleo central para as operações diárias e hospedará alguns dos arquivos mais críticos de sua organização. Nossa aplicação é construída com redundância em todos os níveis para tolerância a falhas de base e otimização do desempenho:

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

Explorar mais Conteúdo Técnico e Arquiteturas

Nossa equipe de Engenharia de Soluções compartilha estruturas, guias e ferramentas como esta para facilitar aos desenvolvedores a construção de aplicações que seguem as melhores práticas para a arquitetura de software. Confira nossa arquitetura de referência do cluster Galera para uma arquitetura MySQL/MariaDB altamente disponível, ou consulte nossos exemplos de arquitetura de referência disponíveis no 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

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados com *