O blog da AWS
Migração do Sistema Eletrônico de Execução Unificado (SEEU) para AWS
Por Jairo da Silva Junior, Solutions Architect, Brazil Public Sector,
Thiago Pádua, Partner Solutions Architect, Brazil Public Sector,
Thiago Vieira, CIO, Conselho Nacional de Justiça.
O Conselho Nacional de Justiça (CNJ) é uma instituição pública que visa aperfeiçoar o trabalho do sistema judiciário brasileiro, principalmente no que diz respeito ao controle e à transparência administrativa e processual. Sua missão é desenvolver políticas judiciárias que promovam a efetividade e a unidade do Poder Judiciário, orientadas para os valores de justiça e paz social.
O SEEU (Sistema Unificado de Execução Eletrônica), desenvolvido originariamente pelo Tribunal de Justiça do Paraná, foi adotado como política judiciária pelo CNJ, por meio da Resolução 223/2016, para apoiar o enfrentamento do estado de coisas inconstitucional das prisões brasileiras a partir da melhoria em gestão processual.
Desafio
Expandir a adoção do SEEU em mais tribunais no Brasil, apoiando a visão do CNJ de ter análises em tempo real dos indicadores de desempenho (KPIs) de Justiça e alavancar o uso de inteligência artificial na otimização dos fluxos de trabalho existentes. Requer uma rápida expansão que não pode ser alcançada usando a infraestrutura atual (on-premises), pois o sistema consumia dois terços da infraestrutura do datacenter do CNJ e até 80% de sua largura de banda, com apenas metade da carga esperada para a utilização em nível nacional.
A migração para a AWS incluiu 24 máquinas virtuais em sua camada de aplicação, um banco de dados de 1 TB com 900 tabelas, acompanhado de uma réplica de leitura, e mais de 130 milhões de arquivos que totalizam 30 TB de dados armazenados em um servidor de arquivos. Além disso, essa atividade aconteceu em paralelo ao processo de modernização do SEEU.
Solução
A arquitetura da solução foi desenvolvida aplicando alta disponibilidade em todas as camadas, aproveitando a infraestrutura Multi-AZ na Região de São Paulo (sa-east-1). Também foram incluídos serviços gerenciados, como Application Load Balancer (ALB), Amazon Elastic Kubernetes Service (EKS) e AWS WAF (Web Application Firewall), para automatizar e simplificar tarefas importantes como o provisionamento, aplicação de patches e monitoramento, além de padronizar operações em todos os ambientes e reduzir a carga operacional.
Para a migração dos dados, foram utilizados o AWS DataSync e o AWS Database Migration Service (DMS). Através do DataSync foi possível migrar aproximadamente 100 milhões de arquivos em apenas uma semana, enquanto o DMS levou menos de uma hora para replicar todo o banco de dados. Com isso, foi possível reduzir consideravelmente o tempo de indisponibilidade necessário durante o go-live na AWS, já que em 1 hora e 30 minutos os dados estavam sincronizados e foi possível liberar o acesso para um grupo restrito de usuários.
Figura 1 – Migração de Dados do SEEU
Após a migração, a instância de replicação do DMS foi desativada, enquanto o DataSync foi mantido para migrar outros 30 milhões de arquivos de um novo Tribunal. Este processo inicialmente era realizado através de HD’s enviados aos tribunais e retornados aos datacenters do CNJ, mas agora tornam-se uma opção para facilitar a migração de documentos de novos tribunais que venham a utilizar o sistema.
A modernização da aplicação aconteceu em diferentes aspectos da solução como, por exemplo, o servidor de aplicação foi alterado de GlassFish para WildFly e teve seu ambiente de execução modificado de máquinas virtuais para contêineres. Já o banco de dados sofreu um upgrade para uma versão mais recente do PostgreSQL, permitindo maior padronização e um ciclo de vida de suporte/correções mais longo. A base de dados também foi migrada para o Amazon Relational Database Service (RDS). O servidor de armazenamento de arquivos foi substituído pelo Amazon S3 para os documentos dos processos enquanto o Amazon Elastic File System (EFS) foi utilizado para arquivos compartilhados pela aplicação.
Figura 2 – Arquitetura do SEEU em AWS
Para garantir alta disponibilidade (HA) do sistema o conceito de Multi-AZ foi aplicado nas diferentes camadas da aplicação:
- Balanceamento de Carga: O Application Load Balancer pode ser provisionado automaticamente em múltiplas zonas de disponibilidade, permitindo distribuir automaticamente o tráfego entre os contêineres do SEEU, além de escalar de forma automática e incluir mecanismos de segurança como integração com AWS WAF e AWS Certificate Manager, permitindo que seja feito o SSL Offload.
- Aplicação: Os contêineres são implantados em instâncias gerenciadas pelo Amazon EKS através de Node Groups, distribuídos em Múltiplas Zonas de Disponibilidade, e que definem as características dos servidores onde estes contêineres irão executar, como quantidade, tamanho e tipo da instância e disco. Os Managed Node Groups facilitam escalar a capacidade do seu cluster Kubernetes, verticalmente ou horizontalmente, e ainda aplicar patches dos componentes do Kubernetes e Sistema Operacional.
- Banco de Dados: O Amazon Relational Database Service (Amazon RDS) facilita a configuração, a operação e a escalabilidade de bancos de dados relacionais na nuvem. O serviço oferece capacidade econômica e redimensionável e automatiza tarefas demoradas de administração, como provisionamento de hardware, configuração de bancos de dados, aplicação de patches e backups. A implantação desse banco de dados utiliza o conceito de Multi-AZ, ou seja, o Amazon RDS automaticamente providencia e mantém uma réplica “em espera” simultânea em uma zona de disponibilidade diferente, garantindo maior proteção para caso de falhas e um menor tempo de recuperação.
- Armazenamento de Documentos: O Amazon S3 é um armazenamento de objetos criado para armazenar e recuperar qualquer quantidade de dados de qualquer local na Internet. Trata-se de um serviço de armazenamento simples que oferece durabilidade, disponibilidade, segurança e, virtualmente, capacidade de dimensionamento ilimitada e desempenho líderes do setor a um custo muito baixo. As categorias de armazenamento Amazon S3 Standard, S3 Standard-IA e S3 Glacier armazenam os objetos de forma redundante em vários dispositivos em no mínimo três zonas de disponibilidade de uma região do Amazon S3 antes de confirmar o êxito da operação.
- Servidor de Arquivos: O Amazon Elastic File System (Amazon EFS) fornece um sistema de arquivos elástico simples e sem servidor de configuração única que permite compartilhar dados de arquivos sem provisionar ou gerenciar o armazenamento. As classes de armazenamento Standard armazenam dados em várias zonas de disponibilidade (AZ).
Segurança
O ambiente de nuvem é construído para atender os requisitos de segurança dos clientes mais exigentes, como grandes instituições financeiras, agências e órgãos do governo, militares, empresas do ramo de saúde e etc. A escala em que este investimento é realizado, permite que se possa adotar muito mais em controles e mecanismos para aumento da segurança, tanto física quanto das demais camadas de um datacenter, como hardware, software e redes.
Este ambiente, além de diversas de certificações de segurança, está de acordo com as certificações exigidas pelo Governo Federal para ambientes de Nuvem do governo, como SOC 1 e 2, ISO 27001, 27017, 27018 e ISO 9001.
Aliado a isso, serviços AWS foram utilizados para elevar a segurança da aplicação, provendo criptografia em trânsito (ELB e AWS Certificate Manager) e em repouso (AWS KMS) para os dados de processos, trilhas de auditoria (AWS CloudTrail) para operações realizadas no ambiente e controle de acesso granular (AWS Identity and Access Management).
Adicionalmente dois outros serviços são utilizados na frente de qualquer acesso a aplicação:
- O AWS WAF, é um firewall de aplicações Web que ajuda a proteger aplicações Web de ataques por meio da configuração de regras que permitem, bloqueiam ou monitoram (contagem) solicitações da Web de acordo com condições que você mesmo define. Essas condições incluem endereços IP, cabeçalhos e corpo HTTP, strings de URI, assim como tentativas de injeção de SQL e cross-site scripting.
- O AWS Shield, um serviço gerenciado que fornece proteção contra ataques distribuídos de negação de serviço (DDoS) para os aplicativos executados na AWS. O AWS Shield Standard oferece a todos os clientes da AWS proteção contra ataques comuns e mais frequentes à infraestrutura (camadas 3 e 4), como floods de SYN/UDP, ataques de reflexão e outros tipos de ataque, proporcionando alta disponibilidade aos aplicativos na AWS.
Conclusão e próximos passos
Após a migração e modernização o SEEU recebe em média 35 milhões de requisições por dia, com picos de 3,7 milhões por hora e 1.100 por segundo, com um tráfego de dados de saída de 800GB por dia e picos de 90GB por hora.
A adoção de nuvem permite a utilização da ferramenta por cada vez mais tribunais, e possibilita que o time de desenvolvimento possa focar em implementar melhorias na aplicação e otimizar a arquitetura. Por exemplo, utilizando bancos de dados especialmente construídos para registros de auditoria e sessões de aplicação, e preparação dos dados para casos de uso analíticos, como painéis com informações históricas e em tempo real.
Sobre os autores
Jairo Silva Junior é Arquiteto de Soluções na AWS no time de Public Sector com foco em Governo. Anteriormente atuou em diversos papéis no ciclo de entrega de software, como desenvolvimento, arquitetura e operação, em diversos tipos de empresas. Possui Mestrado em Ciência da Computação e é apaixonado por viagens e comida.
Thiago Pádua é Arquiteto de Soluções na AWS atuando com o desenvolvimento e apoio aos parceiros do Setor Público. Tem experiência em desenvolvimento de software e integração de sistemas, principalmente na indústria de Telecomunicações. Tem um interesse especial em serverless, arquitetura de microserviços e containers.
Thiago de Andrade Vieira é formado em Análise de Sistemas. Servidor do Conselho Nacional de Justiça desde 2008. Atuou como líder de desenvolvimento e implantação do programa Processo Judicial Eletrônico – PJe no âmbito das Justiças Estadual, Federal e Eleitoral. Foi Coordenador de Tecnologia da Informação na Escola Nacional de Formação e Aperfeiçoamento de Magistrados – Enfam. Foi coordenador de gestão de sistemas corporativos do Conselho Nacional de Justiça. Atualmente é Diretor do Departamento de Tecnologia da Informação e Comunicação do Conselho Nacional de Justiça.