Pular para o conteúdo principal

Arquitetura de Hardware

O E-Docs possui uma arquitetura de hardware robusta, composta por vários servidores e serviços que trabalham juntos para garantir o funcionamento do sistema. A seguir, descreveremos os principais componentes da arquitetura de hardware do E-Docs.

Servidores WEB/API

Atualmente, são compostos por quatro servidores Windows Server com IIS. Estes servidores são responsáveis por sustentar as aplicações WEB, API e DevArea do E-Docs. Cada servidor possui uma instância do E-Docs instalada para cada serviço, com as aplicações WEB e API configuradas para atender as requisições dos usuários e sistemas integrados, respectivamente.
Há um dimensionamento para atender a demanda média do sistema com apenas duas instâncias, com o ambiente completo servindo de escalabilidade horizontal e, também, para permitir atualizações online sem impacto para os usuários.

Servidores Background

Atualmente, são compostos por quatro servidores Windows Server com IIS. Estes servidores são responsáveis por sustentar as aplicações Background do E-Docs. Cada servidor possui uma instância do E-Docs instalada para cada serviço, sendo eles atualmente:

  • BackgroundJobs
  • ProcessJobs
  • API de Certificado
  • API de PDF

Cluster Kubernetes

Para permitir a execução de aplicações em containers, o E-Docs utiliza um cluster Kubernetes RedHat Openshift, composto por vários nós que executam os containers das aplicações. Este cluster é responsável por garantir a escalabilidade e disponibilidade das aplicações, permitindo que novas instâncias sejam criadas automaticamente em caso de falhas ou aumento de demanda.
Atualmente, as seguintes aplicações executam em containers no cluster Kubernetes:

  • API Negócio Query
  • API Agente Query
  • API Elastic Query
  • API Notificações Composer
  • API Negócio Base
  • API Classificação Query
  • API de Document Models
  • Redis (cache distribuído)

Para os próximos anos, a ideia é migrar todas as aplicações para containers, permitindo uma maior flexibilidade e escalabilidade do sistema, bem como padronizando o ambiente operacional do PRODEST.

Banco de Dados

O E-Docs utiliza um banco de dados SQL Server para armazenar os dados transacionais do sistema. O banco de dados é responsável por armazenar informações sobre processos, documentos, agentes, grupos, entre outros. O banco de dados é replicado no formato AlwaysOn para garantir a disponibilidade e integridade dos dados, além de permitir a recuperação em caso de falhas.
Como evolução da arquitetura, estamos trabalhando a segregação do banco de dados para atendimento de especificidades de cada aplicação, de forma a separar os dados do negócio principal dos dados auxiliares, estes utilizados como estratégia de cache persistente, funções administrativas e outras tarefas auxiliares.

ElasticSearch

O E-Docs utiliza o ElasticSearch para armazenar dados não transacionais, como caixas de documentos, processos, encaminhamentos, entre outros. O ElasticSearch é responsável por armazenar e indexar os dados de forma a permitir consultas rápidas e eficientes, garantindo que as informações sejam acessadas de forma rápida e consistente.
Atualmente, utilizamos um cluster de sete nós para garantir a disponibilidade e escalabilidade do ElasticSearch, com a replicação dos dados para garantir a integridade e recuperação em caso de falhas. Para os próximos anos, temos planos para migrar para a versão mais recente do ElasticSearch, revisando a arquitetura atual e aproveitando as novas funcionalidades e melhorias de desempenho.

MinIO

O E-Docs utiliza o MinIO para armazenar arquivos e documentos de forma distribuída e escalável. O MinIO é responsável por armazenar os arquivos de forma segura e eficiente, garantindo que os documentos sejam acessados de forma rápida e consistente. Atualmente, utilizamos um cluster para garantir a disponibilidade e escalabilidade do MinIO, com a replicação dos dados para garantir a integridade e recuperação em caso de falhas.