O blog da AWS

PSR economiza 1 milhão de reais por ano usando instâncias Spot do Amazon EC2

Por Felipe Olivieri, Andre Fellipe, Marcelo Cruz, João Pedro Dias Garcia

 

Fundada em 1987, a PSR oferece soluções em tecnologia e serviços de consultoria em energia e gás natural. Consolidou-se como referência no mercado, atuando no desenvolvimento de ferramentas de apoio à decisão e estudos econômicos em diversos países.

Com o intuito de expandir suas atividades, a PSR estabeleceu uma estratégia de expansão com a AWS em 2007, utilizando sua infraestrutura global para aplicar seus modelos, consultoria e inovações em escala mundial. A empresa, agora, está presente em mais de sessenta países, atendendo clientes na América Latina, América do Norte, Europa e Ásia-Pacífico.

A PSR enfrentou um desafio ambicioso ao colaborar com a NWPCC (Northwest Power and Conservation Council) para simular o sistema elétrico da Costa Oeste dos Estados Unidos. Esse sistema complexo compreende dezenas de usinas hidrelétricas, centenas de usinas termelétricas e fontes de energia renováveis. A otimização dessa rede complexa envolveu a consideração de fatores diversos, como a demanda variável, a imprevisibilidade da energia solar e eólica, além da eficiência no uso dos reservatórios das hidrelétricas.

Além dos desafios do próprio problema, existiam os desafios técnicos, dentre eles temos:

  1. Complexidade da otimização: o sistema elétrico envolvia diversas variáveis complexas, incluindo a demanda variável, a geração de energia a partir de fontes renováveis imprevisíveis (como energia solar e eólica) e a coordenação do uso das hidrelétricas para garantir uma oferta consistente de energia;
  2. Necessidade de processamento massivo: para atender às necessidades dos clientes, a PSR precisou gerar milhares de cenários e resolver inúmeros problemas de otimização em curtos períodos, o que demandou um poder computacional significativo;
  3. Armazenamento e recuperação de dados: lidar com a extensa quantidade de dados gerados durante a solução do problema, podendo chegar a TeraBytes de resultados por hora, requer um armazenamento eficiente e uma rápida recuperação para análises posteriores;
  4. Custo de um cluster HPC: a utilização de clusters de alto desempenho (HPC) poderia ser dispendiosa, o que levou a PSR a buscar soluções mais econômicas para seus clientes;
  5. Recuperação de interrupções Spot: a utilização de instâncias Spot da AWS, embora econômica, implicava a possibilidade de interrupções, por isso exigiu o desenvolvimento de soluções para garantir a recuperação do sistema em caso de reinicialização do cluster.

Como solução, a PSR adotou estratégias inovadoras, utilizando seu algoritmo SDDP , ou Stochastic Dual Dynamic Programming.”. A ferramenta, desenvolvida na linguagem Julia, utiliza a biblioteca JuMP (Julia for Mathematical Programming) com processamento paralelo para solucionar problemas de otimização. A nuvem AWS foi utilizada para resolver as necessidades de processamento, formatada como o PSR Cloud, o serviço de computação em nuvem da PSR que utiliza a infraestrutura AWS para resolver problemas matemáticos complexos de otimização.

As tecnologias disponíveis na nuvem AWS, permitem à PSR manter a arquitetura do PSR Cloud enxuta e robusta.

PSR Cloud

Os clientes da PSR, acessam o PSR Cloud via uma interface web, inserindo informações via API Gateway de metadados no Amazon DocumentDB e os dados de entrada via um Bucket do Amazon S3. O Amazon S3 foi escolhido como primeira opção de armazenamento, pois proporciona um ambiente confiável e escalável para o PSR Cloud.

Após a entrada de dados, o Amazon SQS é acionado e inicia o cluster HPC, que é formado por instâncias spots no Amazon EC2 e pelo Amazon FSx for Lustre, que funciona como um cache, com os dados sincronizados a partir do Bucket no Amazon S3 inicial. O tratamento das interrupções das instâncias Spots foram resolvidos usando discos EBS como cache. Desta forma o Cluster HPC retoma a execução das simulações do ponto de interrupção, quando acontece.

A quantidade de nodes do cluster HPC é determinada de acordo com a demanda do cliente. Isso pode ser feito através de solicitações específicas ou com base nas características da execução. As dimensões da execução são derivadas do número de iterações do modelo de otimização e da quantidade de cenários a serem gerados.

O Cluster HPC tem a flexibilidade de ser inicializado em qualquer Zona de Disponibilidade da região. No entanto, os nodes do cluster estão sempre localizados na mesma Zona de Disponibilidade. Isso é feito para otimizar o throughput de resultados, que são significativos. Os nodes precisam estar na mesma Zona de Disponibilidade para escrever os resultados no sistema de arquivos Amazon FSx for Lustre com alta velocidade. Esse design não apenas melhora o desempenho, mas também evita custos relacionados ao tráfego entre diferentes Zonas de Disponibilidade, que pode ser verificado neste link.

/O resultado da simulação no cluster HPC é escrito em outro Bucket do Amazon S3 e os usuários acessam via o Cluster WEB UI, que utiliza o Amazon Athena para entregar os dados já processados e no formato que o usuário precisa.

O cluster da interface web é iniciado em diferentes Zonas de Disponibilidade (AZs) para garantir redundância e disponibilidade. O “auto-scaling” desse cluster é planejado de acordo com a demanda prevista do cliente, permitindo a ativação manual de instâncias da aplicação web quando necessário. Essas instâncias possuem um componente de gerenciamento de filas chamado Agent. Esse agente monitora o banco de dados e identifica as execuções que foram iniciadas para serem acompanhadas pela interface ou para serem visualizadas graficamente com os recursos locais.

O uso da nuvem AWS habilitou a PSR para criar esta e outras soluções inovadoras. A PSR garante a continuidade da simulação, mantendo a alta capacidade de processamento e a economia de custos proporcionadas pelas instâncias Spot, sem comprometer a consistência dos resultados e a eficiência da execução. O compromisso da PSR é continuar avançando na vanguarda tecnológica para fornecer as melhores soluções em energia para seus clientes em todo o mundo usando a nuvem AWS.

Habilitar a PSR para o uso de instâncias Spot trouxe uma economia estimada de 1 milhão de reais por ano, quando comparamos com o uso de instâncias on-demand no início do projeto. A PSR vem trabalhando em melhorias continuamente no ambiente PSR Cloud, simplificando a infraestrutura utilizada com serviços AWS, o que permite ter uma arquitetura simples e robusta para atender as necessidades dos nossos clientes.

 

Próximos Passos

Visando simplificar ainda mais a arquitetura atual, a PSR está desenvolvendo uma nova arquitetura serverless, como o uso do AWS Lambda, que substituirá as funções realizadas por servidores que eram programados para executar jobs constantemente, como processos de upload, compressão e descompressão de dados e webservice de acesso. O próprio Amazon SQS entrou no desenho da solução pelo mesmo motivo. Para o PSR Cloud, os serviços serverless da AWS substituirão cerca de 90% do código fonte da versão atual. Essa arquitetura permitirá que os clientes utilizem recursos computacionais apenas quando necessário, tornando a computação de alto desempenho mais acessível para todos.

 


Sobre os autores

Felipe Olivieri é Arquiteto de Soluções na AWS, possuindo mais de 20 anos de experiência. Felipe atuou em centenas de projetos de infraestrutura de TI em sua carreira e agora utiliza esse aprendizado para apoiar clientes AWS em suas jornadas de migração para a nuvem.

 

 

 

 

Andre Fellipe é Arquiteto de Soluções na AWS, ajudando clientes a planejar e migrar suas aplicações mais críticas para a nuvem.

 

 

 

 

Marcelo Cruz é Head de TI na PSR onde trabalha desde 2005. Analisa arquiteturas de aplicações, busca e valida soluções tecnológicas inovadoras com provas conceituais. Analisa e valida a resiliência e a performance dos modelos matemáticos executados em nuvem.

 

 

 

João Pedro Dias Garcia é formado em Ciência da Computação e Sistemas de Informação pela PUC-Rio. Desde 2019 trabalha na PSR, atua como Lead Specialist como desenvolvedor e em projetos de pesquisa e desenvolvimento, inovação e consultoria.