Esse documento é uma versão pública do documento de arquitetura da informação da Privacy Tools e tem como objetivo apresentar nosso plano de escalabilidade da plataforma de privacidade.
Arquitetura base
A aplicação foi concebida no modelo MVC com modelo stateless, sendo as camadas de backend e frontend desacopladas e um facade com controle de cache para a pool de conexões. As linguagens de programa base são:
Java 11 - Kotlin
React.JS - Javascript -Angular
Swift -IOS
Java/Android
Segurança e Escalabilidade
Os recursos de escalabilidade da Privacy Tools na modalidade SAAS contam com uma estrutura de balanceamento com “round-and-robin” através de Nginx e mecanismo de auto-scaling com instâncias Docker em máquinas virtuais Ubuntu. A arquitetura simplificada abaixo se aplica a cada ambiente (teste, desenvolvimento, demo e produção).
Por se tratar de um documento público alguns elementos da arquitetura foram suprimidos como componentes de orquestração, portas específicas e VPN.
Como funciona o balanceamento e as decisões de carga
A Privacy Tools não utiliza cluster mas sim uma arquitetura dinâmica de balanceamento de carga onde todas as instância atuam para atender a demanda. Quando a demanda aumenta aloca-se mais instância para atender as requisições (horários de pico) e quando reduz existe um número menor de máquinas virtuais.
A base de cálculo é a carga de requisições e a utilização de recursos computacionais (load usage, cpu, memory and storage). A balanceadora baseada em Nginx foi configurada para trocar de instância em caso de “connect timeout” superior a 2seg. Caso ocorram sucessivas trocas o administrador é alertado para investigar possível inconsistência de balanceamento.
Comunicação TLS
A versão do Java (Java Runtime Environment) utilizado pela Privacy Tools é a 11 ou 12 em um dos componentes. Essa versão já utiliza TLS 1.3 por padrão na maior parte das comunicações entre servidores e bancos de dados. Para comunicação com HTTPS de alguns sites e para executar testes de compatibilidade com Selenium a plataforma executa em modo de compatibilidade com TLS 1.2.
Criptografia. Os dados pessoais são criptografados durante a transmissão através do protocolo TLS V1.2/1.3. Todos os canais de comunicação da aplicação trafegam dados pessoais de maneira criptografada. O armazenamento dos dados pessoais em banco de dados oferece recursos de pseudo-anonimização para exclusão completa de dados pessoais e inviabiliza que mesmo equipes internas da Privacy Tools consiga obter dados pessoais acessando diretamente o repositório de dados. As chaves de criptografia não são menores do que 20 dígitos e contém caracteres especiais, números e letras maiúsculas e minúsculas e utilizam AES (Advanced Encryption Standard) com blocos de 128 bits.
Autenticação
Os recursos de autenticação da plataforma podem ser habilitados conforme característica de cada projeto, sendo os mais comuns:
Usuário e senha com duplo fator de autenticação
AD - Azure e outros
OpenID Connect
SAML2.0
Auditoria
As auditorias de segurança do cliente devem corresponder a todos os sistemas e locais onde são armazenados dados exclusivos do cliente. Em ambiente compartilhados SAAS onde dados do cliente podem estar eventualmente compartilhando a mesma infraestrutura lógica e física com outros clientes da Privacy Tools então o acesso deverá ser moderado e com filtros preparados pela Privacy Tools de modo a garantir a confidencialidade, segurança e integridade dos demais clientes da Privacy Tools.
Todo acesso com a finalidade de auditoria será concedido permissão de “apenas leitura” e poderá ser um acesso permanente ou temporário a depender do recurso sendo solicitado.
Os testes de penetração podem ser realizados em ambiente de produção, contudo, testes de carga só podem ser executados de forma independente pelo cliente caso a aplicação esteja em uma infraestrutura exclusiva e mantida pelo cliente, não se aplicando ao formato SAAS onde a Privacy Tools é responsável pelo custo de sustentação da infraestrutura junto aos provedores de Cloud.
As demais auditorias, inclusive de segurança, intrusão e integridade o cliente tem total liberdade para executar e conta com apoio irrestrito do time técnico da Privacy Tools.
Restrições de arquitetura
De modo geral não há restrições para instalação da plataforma Privacy Tools. Existem algumas configurações recomendadas como o mínimo necessário para cada instância, tais como:
Linux/Ubuntu 64 bits
Pelo menos 8Gb de RAM
Pelo menos 4vcpu em homologação e 8 vcpu em produção
Cache de 5Gb para Nginx - A variar conforme a carga
Quantidade de nós/vms correspondente à previsão de carga
Todos os servidores em questão estão configurados com o fuso horário GMT-3, que corresponde ao horário padrão de Brasília (BRT). Essa configuração significa que os servidores mantêm uma sincronização precisa com o horário oficial do Brasil durante todo o ano, sem considerar o horário de verão