sexta-feira, 2 de fevereiro de 2024

Arquitetura Eficiente: Lições do Caos no Resultado do ENEM 2023

No dia 13 de novembro de 2023, o Instituto Nacional de Pesquisas Educacionais Anísio Teixeira (INEP) anunciou a data oficial de divulgação do resultado do ENEM 2023. De acordo com os dados do INEP, mais de 2 milhões e 700 mil estudantes aguardavam ansiosos pelos resultados, considerando-se automaticamente parte do público interessado nessa informação crucial.

No entanto, no dia 16 de janeiro de 2024, poucas horas antes do tão aguardado momento da liberação dos resultados, uma situação “inesperada” ocorreu. Milhares de estudantes, ávidos por avaliar seus esforços no exame, começaram a acessar o site, resultando em uma sobrecarga que desencadeou reclamações e memes nas redes sociais. Às 9 horas, horário oficial, o portal do estudante (https://enem.inep.gov.br/participante/) tornou-se inacessível. Durante uma transmissão ao vivo realizada pelo órgão, foi anunciado que as notas estariam disponíveis às 10h30min do mesmo dia. O resultado? Horas intermináveis de instabilidade no portal, exigindo dezenas de tentativas individuais de cada estudante e gerando uma demanda muito além do necessário. 

Diante desse contexto, é essencial refletir sobre os caminhos alternativos, do ponto de vista arquitetural, que deveriam ser considerados, principalmente com foco na objetividade de atingir a melhor experiência para os alunos que estão "desesperados" pelos seus resultados, os quais podem moldar seus destinos de maneira permanente.

Envio dos Resultados por E-mail

Uma abordagem eficaz seria automatizar o envio dos resultados diretamente para os e-mails cadastrados durante o processo de inscrição. Este método aproveita a robusta infraestrutura de segurança já implementada no processo de credenciamento, garantindo a confidencialidade das informações. Além disso, ao reduzir a dependência do portal, a carga nos servidores seria significativamente aliviada, evitando gargalos de acesso massivo. Isso não apenas proporcionaria uma experiência mais fluida para os usuários ansiosos, mas também garantiria a entrega segura e pontual dos resultados, eliminando a incerteza e a frustração associadas às falhas técnicas.

Implementação de uma CDN Personalizada

Observando o comportamento atual do site, uma solução viável seria a implementação de uma CDN (Content Delivery Network) personalizada. Ao distribuir os dados estáticos, como imagens e folhas de estilo, por uma rede global de servidores, a latência seria reduzida, melhorando significativamente o desempenho do site. Isso não só aceleraria a entrega de conteúdo para os usuários, mas também aliviaria a carga nos servidores principais. Ao adotar uma abordagem mais distribuída, mitigaríamos efetivamente os efeitos negativos de picos de tráfego, proporcionando uma experiência mais estável e responsiva para os alunos ansiosos pelo resultado.

Armazenamento em Cachê no Modelo Chave-Valor

A proposta aqui é utilizar um sistema de armazenamento em cache, seguindo o modelo chave-valor, para otimizar a recuperação de resultados individuais. Dado que a grande maioria dos estudantes está interessada apenas em cinco números específicos (suas notas em cada bloco e a nota de redação), armazenar essas informações em um cache distribuído, onde a chave seria associada ao CPF do estudante e o valor seria o conjunto de resultados, permitiria consultas extremamente rápidas. Essa estratégia reduziria drasticamente a carga nos servidores de banco de dados, proporcionando uma resposta quase instantânea aos alunos que acessam o portal. Essa abordagem, além de eficiente em termos de desempenho, é altamente escalável e adaptável a períodos de pico de tráfego.

Alteração Temporária do Processo de Autenticação

Para contornar possíveis desafios relacionados ao envio automatizado de e-mails, especialmente em momentos de alta demanda, uma alternativa seria a implementação temporária de um formulário simplificado. Esse formulário permitiria aos estudantes inserir seu e-mail e CPF, gerando um registro em um serviço de mensageria. Um processo escalável seria encarregado de validar esses dados em relação aos registros cadastrados, efetuando o envio de e-mails com os resultados. Essa abordagem não apenas preserva a segurança, mas também introduz um mecanismo eficiente de fila, garantindo uma distribuição controlada e equitativa dos resultados. Essa mudança temporária no processo de autenticação minimiza a pressão sobre os servidores e oferece uma alternativa prática para lidar com volumes excepcionais de acesso.

Certamente, essas soluções podem parecer simplistas à primeira vista. Contudo, na área de TI, devemos lembrar que a simplicidade frequentemente supera arquiteturas complexas que, quando submetidas ao teste real, tendem a falhar de maneira significativa, prejudicando usuários, clientes, negócios e lucratividade.

Mais valioso do que uma arquitetura tecnológica supercomplexa e “update” são aquelas que proporcionam um valor tangível ao público final, indo além do simples acumulo de recursos tecnológicos. Essa abordagem não apenas garante a estabilidade em momentos cruciais, mas também constrói uma base sólida para o sucesso contínuo.


Marcelo Goberto de Azevedo 

Arquiteto Soluções 

//marcelogoberto.com.br