Webinar
Eventos ITGLOBAL.COM

Desempenho e capacidades Low-code/Pro-code do SimpleOne

SimpleOne Solutions

SimpleOne é uma plataforma Low-code para automação de processos de negócio e criação de aplicações empresariais completas. Este artigo é destinado a especialistas técnicos, arquitetos e desenvolvedores que desejam compreender a estrutura técnica da plataforma.

Aqui exploraremos a arquitetura do SimpleOne, o stack tecnológico e os detalhes de implementação — desde a escolha das linguagens de programação até as formas de implantação.

Informações detalhadas sobre o produto estão disponíveis na documentação oficial, acessível em múltiplos idiomas.

Stack Tecnológico e Arquitetura

Arquitetura Geral

O Backend do SimpleOne é construído sobre uma combinação de núcleo monolítico e microsserviços, escritos em Golang e Node.js.

O Frontend é desenvolvido em TypeScript com a biblioteca React e o gerenciador de estado MobX.

Para a execução de scripts personalizados, a plataforma utiliza o motor V8.

Componentes de Infraestrutura

Banco de Dados

O armazenamento principal de dados da plataforma é o PostgreSQL. Em casos específicos, mediante acordo com o fornecedor, é possível integração com fontes de dados externas para atender necessidades particulares do cliente.

Cache

Para caching é utilizado o Redis, que desempenha duas funções: atua como cache e como repositório de dados. No API Gateway, por exemplo, o Redis é utilizado para armazenar informações de autorização.

Brokers de Mensagens

Internamente, a plataforma opera com RabbitMQ e Kafka — responsáveis pelo processamento assíncrono de eventos.

Implantação

A implantação é realizada por meio de contêineres Docker.

Características de Entrega

O SimpleOne é fornecido como imagens Docker para implantação na infraestrutura própria do cliente (on-premise).

A plataforma está disponível no formato de distribuição offline — arquivos com imagens Docker que podem ser implantados sem conexão à internet.

Trabalho com Dados

Modelo de Dados

O SimpleOne possui tipos de dados básicos pré-instalados, utilizáveis na criação de campos em tabelas. Esses tipos estão previamente disponíveis no sistema para uso na configuração.

A plataforma suporta diversos tipos de relacionamentos entre tabelas, sem restrições:

  • reference (referências a outros registros);
  • many-to-many (muitos para muitos) por meio de tabelas MTM;
  • um para um;
  • um para muitos.

As tabelas no SimpleOne suportam herança — tabelas filhas herdam os campos das tabelas pai. Isso permite criar qualquer estrutura hierárquica de dados. É possível criar uma grande quantidade de tabelas sem restrições de desempenho.

REM

O SimpleOne utiliza a abordagem REM (Record Extended Model) — uma abordagem para organização de dados baseada na extensão dinâmica do modelo de dados. Ao contrário da abordagem tradicional, onde é necessário criar uma tabela filha para armazenar atributos de um novo tipo de solicitação, o REM permite armazenar os valores desses atributos em uma tabela separada e vinculá-los a um registro específico quando necessário (modelo clássico EAV).

O SimpleOne utiliza REM nos produtos SimpleOne ITSM, ITAM e B2B CRM, além de testar essa abordagem para SDLC e HRMS. A tecnologia é eficaz para sistemas complexos com grande quantidade de entidades em grandes empresas, onde é necessário gerenciar catálogos de serviços e processar solicitações de diferentes departamentos com flexibilidade.

Transacionalidade e Integridade

Todas as operações de salvamento de registros são executadas em transações. Se ocorrer um erro durante o salvamento ou se alguma regra de negócio não for atendida, a transação é completamente revertida.

A plataforma oferece ferramentas para gerenciar os dados processados e os eventos que ocorrem dentro de uma transação.

SimpleOne ITSM: Gerenciamento de serviços de TI

Desempenho

Trabalho com Grandes Volumes de Dados

Para trabalhar com grandes volumes de dados, o SimpleOne implementa:

  • pagination (carregamento por página);
  • lazy loading (carregamento sob demanda).

Cache Multinível

O SimpleOne utiliza vários níveis de cache:

  • Cache no servidor via Redis — principal camada de cache para dados frequentemente solicitados;
  • Caches in-memory — tanto no backend quanto no frontend são utilizados caches em memória RAM para acelerar o acesso aos dados.

Migração e Versionamento

VCS (Version Control System)

O SimpleOne possui um módulo de VCS (Version Control System) — um sistema de controle de versões para configurações da plataforma.

Com o VCS é possível migrar pacotes entre ambientes (por exemplo, de teste para produção). São configurações versionadas que são aplicadas na instância.

Durante a migração, o sistema detecta automaticamente:

  • collisions (conflitos de dados);
  • warnings (avisos);
  • skips (ignorados).

O VCS trabalha com dados versionados — tabelas, colunas e elementos de configuração relacionados que definem a estrutura e o comportamento do sistema.

Importação Rápida

Para dados que não estão sujeitos ao versionamento via VCS, existe um mecanismo de importação rápida. Ele funciona via formato JSON: é possível exportar registros de um sistema e importá-los em outro servidor ou instância.

Este método é adequado para transferência de dados de usuários que não fazem parte da configuração da plataforma.

Registro e Auditoria

O SimpleOne possui uma tabela sys_log, que armazena o log de sistema de todas as alterações. Se a auditoria estiver habilitada para uma tabela, todas as ações dos usuários são registradas nesse log.

Registros de configuração são versionados automaticamente — o sistema armazena todas as versões ao longo de toda a existência do registro. Isso permite rastrear o histórico de alterações de qualquer configuração.

A plataforma disponibiliza um feed de atividades que mostra as ações dos usuários. Se a auditoria estiver habilitada para um usuário, é possível ver exatamente o que ele realizou no sistema — criação, alteração ou exclusão de registros.

Extensibilidade e Customização

No-code, Low-code e Pro-code

O SimpleOne oferece três níveis de configuração do sistema às necessidades do negócio:

No-code — usuários de negócio configuram processos padrão por meio de interface visual, sem programação, para aplicações de negócio prontas (ITSM, ITAM, SDLC, HRMS, B2B CRM). Em poucos cliques, alteram formulários de entrada de dados, adicionam novos campos e status, e configuram fluxos de aprovação de documentos. Essa abordagem permite iniciar rapidamente a automação básica e evoluir o sistema gradualmente.

Low-code — para adaptações mais profundas, administradores ou analistas utilizam ferramentas integradas para criar lógica de negócio. Eles conectam sistemas externos via conectores prontos, configuram regras de processamento de dados e automatizam cenários complexos com scripts simples. A plataforma suporta desenvolvimento paralelo e criação de aplicações de negócio replicáveis. O Low-code acelera o desenvolvimento sem perder flexibilidade.

Pro-code — para tarefas não padronizadas, a plataforma oferece acesso completo ao desenvolvimento de scripts em JavaScript utilizando o motor V8. Os desenvolvedores criam componentes de interface próprios, expandem a API da plataforma e implementam lógica específica de processamento de dados.

Inclusão de Bibliotecas Externas

Existe um mecanismo de include scripts que permite carregar e utilizar bibliotecas JavaScript externas. É possível copiar o código-fonte de uma biblioteca, configurá-lo como script inclusível e adicioná-lo à lógica cliente ou servidor.

Bibliotecas externas são utilizadas para expandir a funcionalidade da plataforma, como por exemplo:

  • geração de PDF — bibliotecas para criação de arquivos PDF no cliente;
  • bibliotecas de gráficos — ferramentas para renderização e construção de visualizações de dados.

Customização de UI

O SimpleOne permite criar e configurar diversos componentes de UI:

  • botões;
  • visualizações e formulários;
  • listas relacionadas.

Todos esses componentes possuem configurações, podem ser criados e posicionados na interface.

Também é possível escrever HTML arbitrário e aplicar CSS para estilização da interface em scripts de cliente.

Widgets

Widgets são componentes reutilizáveis completos, criados com Pro-code. Nos widgets é possível definir:

  • HTML arbitrário;
  • estilos CSS;
  • lógica JavaScript;
  • listas relacionadas com scripts.

Os widgets podem ser posicionados em formulários da interface de agentes e também em páginas do portal de autoatendimento.

Integrações

REST API

O REST API é uma das formas de integração no SimpleOne. A plataforma oferece a possibilidade de criar requisições REST API para interação com sistemas externos.

Brokers de Mensagens

Internamente, a plataforma utiliza Kafka e RabbitMQ. Eventos no sistema entram nessas filas, mas não é uma integração direta — os clientes não podem trabalhar diretamente com o Kafka e RabbitMQ internos do SimpleOne. A interação é possível apenas via endpoint e lógica de servidor.

A plataforma fornece classes de servidor para integração com RabbitMQ externo:

  • ExternalRabbitMQConsumer — para leitura de mensagens;
  • ExternalRabbitMQProducer — para publicação de mensagens.

É possível conectar-se a um RabbitMQ externo, especificando host, endereço, porta e credenciais.

Conectores Prontos

A plataforma possui conectores prontos, que são periodicamente atualizados pelo fornecedor para atender diferentes necessidades dos clientes. Cada cliente e parceiro também pode implementar conectores próprios e disponibilizá-los no Marketplace.

Armazenamento de Arquivos

O armazenamento principal de arquivos é o MinIO, compatível com S3. Quando um usuário carrega um arquivo no SimpleOne, o arquivo é salvo como anexo e simultaneamente enviado ao S3 MinIO. O MinIO retorna um link para o arquivo, pelo qual ele pode ser baixado.

Para trabalhar com armazenamentos externos, existe a classe de servidor SimpleAttachment disponível na API de scripts, que permite, por exemplo, copiar um anexo via URL de uma fonte externa e adicioná-lo ao sistema SimpleOne.

Segurança

Autenticação e Autorização

O SimpleOne suporta os seguintes mecanismos de autenticação:

  • LDAP;
  • Active Directory;
  • OAuth2;
  • SAML.

Gestão de Acesso

O SimpleOne implementa um modelo combinado de controle de acesso, combinando as abordagens RBAC (baseado em papéis) e ABAC (baseado em atributos). Os papéis básicos fazem parte do fornecimento padrão da plataforma:

  • Security admin (administrador de segurança);
  • Admin (administrador);
  • Gerentes;
  • Auditor — fornece acesso de leitura similar aos direitos de administrador;
  • Outros papéis (descritos na documentação ou disponíveis para visualização nas instâncias).

Os papéis e permissões de acesso podem ser customizados para as necessidades específicas da organização.

O sistema de controle de acesso é baseado em regras ACL com granularidade até o nível de campos individuais e contextos. Se uma ação não estiver explicitamente proibida por uma regra ACL, o usuário pode executá-la.

Além de papéis estáticos, a plataforma suporta diferenciação dinâmica de acesso baseada em contexto — os direitos podem variar de acordo com os atributos do usuário, do registro e das condições de acesso.

Para tarefas de administração e depuração, está disponível o modo de impersonação — possibilidade de executar ações em nome de outro usuário. Todas as ações são registradas: a plataforma garante registro completo de operações com dados e direitos de acesso.

Proteção de Dados

Proteção contra injeções

A plataforma implementa medidas para prevenir injeções SQL e outros tipos de ataques. As possibilidades de injeção são bloqueadas no nível da arquitetura.

Testes de Penetração

O sistema passa regularmente por testes de penetração (pentests) realizados por empresas terceirizadas.

Desempenho e DevOps

Processamento em Background

O SimpleOne possui schedulers integrados que executam tarefas regulares em background:

  • parsing de e-mails;
  • arquivamento de logs;
  • indexação de anexos;
  • eventos de sistema e scripts agendados;
  • outras operações do sistema.

Os administradores podem criar suas próprias tarefas em background:

  • scripts agendados — executados pelo scheduler no horário definido;
  • tarefas postergadas — scripts que são iniciados com atraso;
  • eventos — funcionam via filas de forma assíncrona.

É possível configurar regras de negócio que podem disparar tarefas em background. O scheduler processa tanto cenários integrados quanto customizados.

Testes

Para testes automatizados é utilizado o Playwright.

Para testes de carga é aplicado o K6, mas de forma personalizada:

  • cliente próprio — desenvolvido especificamente para as características da plataforma SimpleOne, para cenários com customização de cliente;
  • wrapper em torno do K6 — criado para simplificar o trabalho, a abordagem se assemelha ao uso do Selenium em autotestes;
  • templates de requisições pré-preenchidos — todas as requisições frequentes já estão descritas. Se uma requisição não existir, ela é adicionada; se existir, usa-se o template pronto.

Conclusões: Vantagens do SimpleOne

A plataforma Low-code SimpleOne combina um núcleo monolítico com microsserviços em Golang e Node.js. Isso oferece equilíbrio entre a estabilidade do monólito e a flexibilidade da arquitetura de microsserviços.

A plataforma disponibiliza ferramentas tanto para usuários de negócio (Low-code) quanto para desenvolvedores (Pro-code em JavaScript), o que permite resolver tarefas de diferentes complexidades sem a necessidade de migrar para outras ferramentas.

O sistema demonstra alta resiliência a cargas elevadas e recuperação rápida após picos. O cache multinível e a otimização de consultas garantem alta velocidade de operação mesmo com grandes volumes de dados.

O SimpleOne evolui ativamente considerando as necessidades dos clientes e as tendências tecnológicas modernas, mantendo ao mesmo tempo a estabilidade e confiabilidade da funcionalidade core.

Usamos cookies para otimizar a funcionalidade do site e aprimorar nossos serviços. Para saber mais, leia nossa Política de Privacidade.
Configurações de cookies
Cookies estritamente necessários
Cookies analíticos