Requisitos do sistema
Os requisitos descritos abaixo são para exclusivo uso do programa de computador denominado Engine. Caso haja necessidade de execução de outros aplicativos ou bases de dados concorrentes, as características deverão ser revistas de modo a comportar a demanda complementar.
Ajustes futuros ao ambiente técnico operacional poderão ser necessários em decorrência de novas funcionalidades desenvolvidas no sistema, aumento do tamanho da base de dados ou aumento do número de usuários.
Requisitos de software
O sistema utiliza compiladores, bibliotecas e frameworks desenvolvidos por terceiros e em geral essas ferramentas eliminam o suporte oficial para versões de sistemas operacionais, navegadores e sistemas gerenciadores de bases de dados que não são mais suportados pelos fornecedores desses softwares. Por esse motivo, é importante que o administrador mantenha os softwares instalados atualizados e migre de versão quando eles chegarem ao final do seu ciclo de vida ou quando for encerrado o suporte convencional e gratuito desse software, garantindo assim o correto funcionamento do sistema.
Para fins de avaliação de compatibilidade com o sistema, serviços de suporte premium ou estendido que prolonguem a utilização de um software ou de uma versão específica não devem ser considerados. Esses serviços são voltados para sistemas legados que não são atualizados, cenário que não se aplica ao Engine, que recebe atualizações frequentes.
Em casos excepcionais, pode ocorrer de uma versão de software ainda suportada pelo seu fornecedor deixar de ser suportada pelo Engine quando for observado que o suporte a essa versão específica impede uma evolução significativa do sistema. Essa prática visa impedir que o sistema deixe de evoluir em razão de softwares que não recebem mais melhorias, apesar de ainda serem oficialmente suportados. Casos como esses serão notificados com antecedência a fim permitir que os usuários do sistema possam atualizar o seu ambiente antes que o sistema se torne incompatível.
Sistemas operacionais
Os requisitos de sistemas operacionais se aplicam apenas aos servidores ou estações onde o Engine será instalado. Nas estações de usuários que apenas utilizam o sistema via navegador web ou no servidor da base de dados, deve ser seguida a recomendação indicada pelo fornecedor desses softwares.
Servidores de aplicação e de borda:
- Recomendado: Windows Server 2022 ou superior
- Mínimo: Windows Server 2016
Estações de usuários finais ou de desenvolvedores:
- Recomendado: Windows 11 ou superior
- Mínimo: Windows 10 21H1 (64 bits)
Importante: no Windows, o Engine utiliza o componente Universal C Runtime da Microsoft que é distribuído e atualizado via Windows Update. Para o correto funcionamento do Engine, é necessário que sejam aplicadas de forma rotineira as atualizações sugeridas pelo Windows Update.
Requisitos adicionais no Linux
- GLIBC na versão 2.31 ou superior.
- As variáveis de ambiente
LANG
eLC_*
devem utilizar um locale com codificação UTF-8. - A biblioteca libssl1.1 é requerida na instalação do Engine em estações clientes que acessam o servidor utilizando o protocolo HTTPS. Ela normalmente está disponível nas distribuições Linux em um pacote com o mesmo nome.
Navegadores web
As interfaces web do sistema suportam os seguintes navegadores:
Os navegadores relacionados acima são atualizados de forma automática pelo seus fornecedores e sempre devem ser utilizados em sua última versão estável.
Outros navegadores que implementem as especificações definidas pelo W3C possivelmente são compatíveis com o sistema, no entanto, eles não tem suporte oficial por não serem verificados nos processos de homologação e testes do sistema.
Sistemas gerenciadores de bases de dados
Atualmente são suportados os seguintes sistemas gerenciadores de base de dados (SGBD).
PostgreSQL
- Versão recomendada: 16 ou superior
- Versão mínima suportada: 12
Oracle
- Versão recomendada: 23ai ou superior
- Versão mínima suportada: 19c
Microsoft SQL Server
- Versão recomendada: 2022 ou superior
- Versão mínima suportada: 2019
Detalhes da configuração desses SGBDs no sistema podem ser obtidos no manual Banco de dados.
Recomendações de hardware e software
As recomendações a seguir foram elaboradas considerando o perfil médio das empresas que atualmente utilizam o sistema, com volume de dados cadastrais distribuídos no cache local do Engine inferior a 2 GB e presumindo que cada Engine servidor atenda até 25 sessões de usuários simultâneas.
Essas recomendações podem variar de acordo com a natureza e porte da empresa. Elas devem ser ajustadas de acordo com o crescimento de utilização da base de dados, dos usuários e pela retenção de dados históricos, sendo necessário revisá-las periodicamente. Por esse motivo, é recomendado o uso de serviços de hospedagem ou virtualização que permitam a readequação ágil e dinâmica dessas configurações, possibilitando até que elas sejam reduzidas durante a implantação do sistema e sejam gradualmente incrementadas até o uso pleno do sistema.
O uso de rede do sistema é reduzido devido à distribuição de processamento via Engines de borda, com a replicação parcial da base de dados. No entanto, nos eventuais cenários de reconstrução desses caches, de vários Engines simultaneamente, é requerida uma largura de banda superior dos servidores do que a observada no uso cotidiano do sistema. Por esse motivo, deve ser dada preferência aos serviços de hospedagem de nuvem que tarifam pela quantidade de dados trafegados em vez da largura de banda contratada. Essa forma de tarifação também atende melhor o perfil de uso do sistema, mais intenso durante o horário comercial.
Servidor da base de dados
É a máquina onde deve ser instalada exclusivamente a base de dados de produção com todas as informações do sistema. Também deve existir um outro servidor semelhante para suportar as bases de dados de desenvolvimento, homologação, manutenção e treinamento, garantindo que o uso dessas bases de dados não interfira no desempenho do ambiente de produção. Recomendação:
- Sistema operacional: Linux
- Disco: 500 GB SSD de alta performance ou superior
- Memória RAM: 32 GB ECC ou superior
- Processador: Intel Xeon ou AMD EPYC, de 8 núcleos, ou superior
- Rede: conexão gigabit ethernet ou superior
É recomendado o uso do Linux em todos os servidores de SGBDs. O Windows Server também é uma opção adequada caso seja utilizado o Microsoft SQL Server.
Bases de produção que utilizem o Oracle ou o Microsoft SQL Server e necessitem operar 24x7 devem utilizar a edição Enterprise para que a manutenção dos índices possa ser realizada sem o bloqueio das tabelas do sistema. Essa observação não se aplica ao PostgreSQL, pois ele possui essa capacidade sem distinção de edição.
A utilização de disco pelo SGBD tem relação direta com o volume de dados criados pelas operações do sistema, podendo variar de forma significativa de acordo com o porte da empresa e pelas regras de negócio. A retenção de log transacional também influencia o tamanho da base de dados, não sendo recomendada uma retenção de log superior a 2 anos. Dada a dinamicidade do uso do sistema, a evolução do consumo do espaço em disco precisa ser monitorada de forma constante pelo DBA responsável pela base de dados.
O uso da memória do servidor pelo SGBD normalmente não é uma configuração automática e deve ser configurada pelo DBA responsável pela base de dados a fim de que os recursos do servidor sejam devidamente utilizados. A reserva de memória para cache de dados influencia significativamente o desempenho das consultas do sistema e deve ser maximizada.
Servidores de aplicação
São as máquinas onde devem estar instalados os Engines que farão o acesso ao SGBD e executarão programas de computador solicitados por outros Engines. Devem estar ligados ao SGBD através de de uma rede de alta velocidade como gigabit ethernet ou superior. Recomendação:
- Sistema operacional: Windows Server 2022 ou superior
- Disco: 100 GB SSD ou superior
- Memória RAM: 16 GB ECC ou superior
- Processador: Intel Xeon ou AMD EPYC, de 8 núcleos, ou superior
- Rede: conexão gigabit ethernet ou superior
Em um mesmo servidor, podem ser configurados Engines distintos e especializados para funções específicas como:
- Servidor IAP dos Engines clientes e de borda.
- Servidor HTTP da interface Web do sistema.
- Servidor HTTP das APIs de integração com outros sistemas.
- Servidor de execução de scripts agendados ou de rotinas de alto custo de processamento.
Para cada Engine adicional instalado em um mesmo servidor de aplicação, deve ser considerado um incremento de 8 GB de RAM, 4 núcleos de CPU e 50 GB de disco nas recomendações acima. Essa recomendação pode variar de acordo com a especialização do Engine, podendo ser necessária uma quantidade maior de memória para Engines responsáveis pelo atendimento das sessões de usuários e mais CPUs para Engines especializados em rotinas de alto custo de processamento.
Para cada Engine configurado em um servidor de aplicação, é recomendado que a quantidade máxima de sessões de usuários atendidas pelos Engines conectados a ele, direta ou indiretamente, não seja superior a 150 (cento e cinquenta). Também é recomendando que a quantidade máxima de sessões de usuários HTTP não seja superior a 25 (vinte e cinco).
Deve ser evitado o uso do servidor de aplicação diretamente pelos usuários finais, sendo recomendado o uso de servidores de borda para distribuir o processamento e para reduzir a latência entre o navegador web do usuário final e o Engine.
Os Engines configurados em servidores de aplicação devem ser ser executados preferencialmente sob uma estrutura de balanceamento de carga. No entanto, é importante observar que não há compartilhamento das conexões com o SGBD entre eles e cada Engine configurado como servidor de aplicação criará um pool de conexões próprio. Caso seja necessário impor um limite de conexões ao banco de dados, é recomendado que para fins de distribuição de carga seja dada preferência ao uso de servidores de borda. Se não houver essa restrição, é preferível configurar os Engines com acesso direto ao SGBD sempre que eles estiverem na mesma zona ou data center do banco de dados. O acesso direto resulta em um melhor desempenho do sistema e evita um ponto adicional de falha na topologia do sistema.
Para mais detalhes sobre a configuração de balanceamento de carga, consulte o manual Alta disponibilidade.
Servidores de borda
São as máquinas onde devem estar instalados os Engines que produzirão as páginas HTTP dinâmicas para outras máquinas que estejam utilizando navegadores web e que farão acesso a um servidor de aplicação Engine utilizando o protocolo de comunicação entre Engines. Recomendação:
- Sistema operacional: Windows Server 2022 ou superior
- Disco: 100 GB SSD ou superior
- Memória RAM: 16 GB ECC ou superior
- Processador: Intel Xeon ou AMD EPYC, de 8 núcleos, ou superior
- Rede: conexão dedicada e simétrica de 100 Mbps ou superior, com latência de conexão inferior a 100 ms com os servidores de aplicação
A principal diferença entre um Engine atuando como servidor de aplicação e um de borda é o acesso ao SGBD. O Engine configurado como servidor de aplicação acessa o SGBD diretamente por meio de uma biblioteca cliente nativa fornecida pelo SGBD, enquanto um Engine de borda faz esse acesso indiretamente, solicitando os dados ao servidor de aplicação utilizando um protocolo de comunicação entre Engines. Enquanto os servidores de aplicação precisam estar conectados ao SGBD por meio de uma rede privada de alta velocidade, seja por questões de desempenho ou de segurança, os servidores de borda são mais flexíveis e podem ser instalados na nuvem, na sede da empresa, em suas filiais ou em outras unidades de negócio, podendo ser conectados ao servidor de aplicação utilizando links de Internet convencional.
É recomendável que a quantidade máxima de sessões de usuários HTTP não seja superior a 25 (vinte e cinco) por Engine. Caso necessário, podem ser instalados vários Engines em um mesmo servidor e para cada Engine adicional deve ser considerado um incremento de 8 GB de RAM, 4 núcleos de CPU e 50 GB de disco nas recomendações acima. Esses Engines podem ser configurados sob uma estrutura de balanceamento de carga, permitindo que os usuários acessem o sistema por meio de um endereço único.
Estações de usuários com o Engine instalado
São as máquinas que devem ser utilizadas para operação do sistema através de um servidor HTTP (web server) local, executado na própria máquina. A instalação do Engine é requerida para o uso da IDE embarcada e em estações que necessitem comunicação com dispositivos locais, como balanças, pin pads, impressoras ou quando for necessário que o Engine tenha acesso aos arquivos locais do sistema operacional. Recomendação:
- Sistema operacional: Windows 11 ou superior
- Disco: 100 GB SSD ou superior
- Memória RAM: 8 GB ou superior
- Processador: Intel Core i5 ou AMD Ryzen 5, de 4 núcleos, ou superior
- Rede: conexão assimétrica de 100 Mbps ou superior, com latência de conexão inferior a 100 ms com os servidores de aplicação
As máquinas utilizadas por usuários que utilizem mais de uma base de dados, como os desenvolvedores e os administradores do sistema, devem considerar um incremento de 30 GB em disco e 4GB de memória RAM por base de dados adicional. Aquelas utilizadas por desenvolvedores que necessitem testar o sistema em múltiplos sistemas operacionais por meio de ferramentas de virtualização devem ter ao menos 16 GB de memória RAM e 400 GB de disco SSD e, para esse perfil, também é recomendado o uso Intel Core i7 ou AMD Ryzen 7, de 8 núcleos, ou superior.
Estações de usuários sem o Engine instalado (apenas navegador web)
São as máquinas que devem ser utilizadas normalmente para operação do sistema, acessando os servidores Engine a partir de um navegador web. Recomendação:
- Sistema operacional: Windows 11, Ubuntu 22.04 LTS, macOS Big Sur ou superior
- Disco: 50 GB HDD ou superior
- Memória RAM: 8 GB ou superior
- Processador: Intel Core i3 ou AMD Ryzen 3, de 4 núcleos, ou superior
- Rede: conexão assimétrica de 50 Mbps ou superior, com latência de conexão inferior a 100 ms com os servidores de aplicação ou de borda
Ciclo de vida dos softwares de terceiro
Alguns dos softwares utilizados pelo sistema praticam o conceito de versões de suporte de longo prazo (LTS). Essas versões são preferíveis por terem um ciclo de vida maior, diminuindo o esforço de atualização do ambiente. Em novas instalações, deve ser dada preferência às últimas versões desses softwares, pois além de terem um tempo de vida maior, elas normalmente possuem mais recursos e melhor desempenho.
Abaixo segue a documentação da política de ciclo de vida e liberações dos softwares de terceiros relacionados ao sistema:
- Windows: https://docs.microsoft.com/en-us/lifecycle/faq/windows
- Ubuntu: https://wiki.ubuntu.com/Releases
- Debian: https://wiki.debian.org/DebianReleases
- PostgreSQL: https://www.postgresql.org/support/versioning/
- Oracle: https://support.oracle.com/knowledge/Oracle%20Database%20Products/742060_1.html
- Microsoft SQL Server: https://docs.microsoft.com/en-us/lifecycle/products/?filter-products=SQL&products=sql-server