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


sábado, 23 de setembro de 2023

Habilidades Verdes em Soluções Tecnológicas Sustentáveis e Acessíveis


A busca por soluções sustentáveis tornou-se uma prioridade em diversas áreas, incluindo o desenvolvimento de softwares. Ao incorporar práticas de sustentabilidade nesse setor, podemos reduzir significativamente o impacto ambiental, minimizando o consumo de recursos e a geração de resíduos eletrônicos. Além disso, a implementação de sustentabilidade também pode beneficiar os quesitos de acessibilidade nos softwares, tornando-os mais inclusivos e proporcionando uma melhor experiência para todos os usuários. 

Para essa busca o papel do profissional que detém habilidades verdes é de extrema importância para garantir que a implementação da sustentabilidade no desenvolvimento de softwares beneficie tanto o meio ambiente quanto os usuários. Esses profissionais são essenciais para liderar e orientar as equipes de desenvolvimento em direção a práticas mais responsáveis e eficientes. 

Os profissionais com habilidades verdes dominam conhecimentos sobre as melhores práticas sustentáveis no desenvolvimento de softwares, são defensores da sustentabilidade no setor de tecnologia, promovem a inovação sustentável através da tecnologia, facilitar na conscientização e no treinamento de outras equipes, contribuir para a imagem de responsabilidade social corporativa de uma empresa, avaliar o impacto ambiental dos softwares ao longo de seu ciclo de vida e ainda garantir que a implementação de práticas sustentáveis também leve em consideração as necessidades de acessibilidade dos usuários. Em resumo, o profissional com habilidades verdes são agentes de transformação que podem garantir que as empresas e equipes de desenvolvimento adotem práticas mais responsáveis e se tornem protagonistas na construção de um futuro sustentável e acessível para todos.

Implementar acessibilidade nas soluções tecnológicas traz benefícios que vão além da inclusão, estendendo-se também à sustentabilidade e vice-versa. Essa interligação entre acessibilidade e sustentabilidade abre portas para uma abordagem mais holística na concepção e desenvolvimento de tecnologias, promovendo um impacto positivo tanto para os usuários quanto para o meio ambiente.

Economia de Recursos: Práticas sustentáveis no desenvolvimento de softwares podem resultar em uma redução no consumo de energia e no uso de recursos, tornando as soluções mais eficientes e econômicas para os usuários.

Compatibilidade com Diferentes Dispositivos: Softwares desenvolvidos com foco na sustentabilidade são frequentemente otimizados para funcionar em diferentes dispositivos e plataformas, melhorando a acessibilidade para usuários que utilizam computadores, tablets, smartphones e outros dispositivos.

Menor Consumo de Banda Larga: Softwares sustentáveis tendem a ter um tamanho de arquivo menor e um menor uso de recursos de rede, beneficiando usuários com conexões de internet mais lentas ou limitadas.

Design Inclusivo: A mentalidade sustentável muitas vezes se alinha com a filosofia do design inclusivo. Ao desenvolver softwares mais eficientes e com foco no usuário, as equipes de desenvolvimento podem considerar diferentes necessidades e habilidades, tornando o software mais acessível para pessoas com deficiência ou dificuldades específicas.

A implementação da sustentabilidade no desenvolvimento de softwares é um desafio que traz inúmeros benefícios para os usuários, especialmente quando se trata de acessibilidade. Superar os desafios requer uma abordagem proativa, conscientização e compromisso das equipes de desenvolvimento. Ao adotar práticas sustentáveis, os desenvolvedores podem criar softwares mais eficientes, inclusivos e que contribuam para um futuro mais sustentável para o planeta e para todos os seus habitantes. A busca por soluções tecnológicas verdes não só impulsiona a acessibilidade, mas também promove um impacto positivo no meio ambiente e na sociedade como um todo. 

Concluímos que a capacitação dos profissionais com habilidades verdes é um passo crucial para a transformação positiva do setor tecnológico. Ao unir forças em prol de um desenvolvimento mais inclusivo e sustentável, estaremos construindo um futuro no qual a tecnologia seja um instrumento poderoso para melhorar a vida das pessoas e preservar o nosso planeta para as gerações vindouras.


Marcelo Goberto de Azevedo 

Cloud Leader

//marcelogoberto.com.br


sexta-feira, 8 de setembro de 2023

Gestão Eficaz de Custos na Nuvem do que Economia Custos

O cenário atual está cada vez mais impulsionado pela tecnologia, e a nuvem se tornou o coração das operações de muitas empresas. No entanto, o uso da nuvem pode rapidamente se transformar em uma faca de dois gumes quando se trata de custos. Muitas empresas concentram-se apenas em buscar descontos com provedores de serviços em nuvem, acreditando que isso resolverá seus problemas financeiros. No entanto, a verdadeira chave para eficiência financeira na nuvem está na gestão eficaz dos custos, ou seja, a implementação da cultura FinOps.

O Falso Brilho dos Descontos

Imagine que sua empresa gasta uma quantia significativa, digamos, $600.000 por ano em recursos de nuvem. Em um esforço para reduzir esses custos, você negocia um desconto de 20% com seu provedor de serviços em nuvem, e seus custos caem para $480.000 por ano. A princípio, parece uma vitória, mas há um problema.

Se sua empresa ainda está desperdiçando recursos não utilizados na nuvem, provisionando servidores que não precisa, mantendo bancos de dados subutilizados e ignorando a otimização, então a economia de 20% com o desconto não resolve o problema subjacente. Você ainda está desperdiçando $150.000 todos os anos (conforme estudo da Forbes) e esse dinheiro está indo para o ralo.

O Papel da Gestão Eficaz

Aqui está a realidade crua: a a gestão eficaz de custos na nuvem é o que realmente impulsiona a eficiência financeira. Não se trata apenas de reduzir os custos, mas de otimizar estrategicamente seus gastos para evitar desperdícios contínuos.

Identificar e Eliminar Desperdícios

O primeiro passo para a gestão eficaz de custos na nuvem é identificar e eliminar desperdícios. Isso envolve uma análise profunda dos seus recursos de nuvem para identificar instâncias subutilizadas, servidores não utilizados e recursos de armazenamento redundantes. Uma vez identificados, esses recursos podem ser desativados ou otimizados.

Automatização e Escalonamento

A automação desempenha um papel fundamental na gestão eficaz de custos. Use ferramentas de automação para ajustar automaticamente a capacidade dos recursos com base na demanda. Isso significa dimensionar recursos para cima durante picos de uso e dimensioná-los para baixo quando a demanda é menor.

Escolher as Instâncias Certas

Selecione as instâncias de servidor, tipos de armazenamento e outros recursos que melhor atendem às necessidades da sua carga de trabalho. Evite a alocação de recursos de alto custo quando alternativas mais econômicas forem suficientes.

Revisão de Políticas e Processos

Revise e ajuste as políticas internas e os processos de aprovação para garantir que os recursos sejam provisionados e gerenciados de maneira eficiente. Isso inclui estabelecer orçamentos claros e responsabilidades para o gerenciamento de custos.

Educação da Equipe

Uma equipe bem informada é um ativo valioso. Eduque sua equipe sobre práticas de custos conscientes na nuvem, como desligar recursos não utilizados, otimizar consultas de banco de dados e fazer escolhas conscientes em relação aos recursos.

Ferramentas de Monitoramento

Use ferramentas de monitoramento e gerenciamento de custos para obter insights em tempo real sobre seus gastos na nuvem. Isso permite tomar medidas imediatas para evitar desperdícios.

Em última análise, cortar custos na nuvem é importante, mas não deve ser uma solução única. A gestão eficaz de custos na nuvem é o que levará a uma eficiência financeira real e sustentável. Ao identificar e eliminar desperdícios, automatizar processos, escolher recursos adequados e educar sua equipe, sua empresa poderá alcançar não apenas economia imediata, mas também uma estratégia de custos eficaz e duradoura na nuvem. Lembre-se, economizar 20% pode parecer ótimo, mas a eliminação de desperdícios é o verdadeiro caminho para evitar que o dinheiro vá pelo ralo. 

Essas são algumas temas que precisam ter foco desde o início da implementação de FinOps. No livro “O Caminho das Pedras da Cultura FinOps”, além de tratar desses temas, ainda ofereço outras ideias, conceitos básicos, princípios, nível de maturidade, terminologia, estrutura de times, responsabilidades, entre outras tantas informações que devem levadas em consideração para compor um plano personalizado para uma organização durante a habilitação da cultura FinOps de forma que possam transformar os gastos com a nuvem de um passivo em um ativo da organização.


Marcelo Goberto de Azevedo

Cloud Transformation Leader

//marcelogoberto.com.br