Simple Science

Ciência de ponta explicada de forma simples

# Informática# Engenharia de software

Otimizando Microserviços para Implantação Sustentável na Nuvem

Um método pra equilibrar desempenho, custo e energia em aplicações na nuvem.

― 9 min ler


Implantação SustentávelImplantação Sustentávelde Microserviçosotimizados.sustentáveis com microserviçosConseguindo aplicações em nuvem
Índice

À medida que as empresas estão migrando suas aplicações para a nuvem, é importante tornar essas aplicações mais sustentáveis. A Arquitetura de Microserviços, uma forma comum de construir aplicações na nuvem, pode ajudar a atingir esse objetivo. No entanto, tornar essas aplicações sustentáveis pode, às vezes, aumentar os custos e afetar o desempenho. Por isso, encontrar um equilíbrio entre o uso de energia, custo e desempenho é um objetivo chave, mas não é fácil de alcançar.

Este artigo discute um novo método que ajuda a implantar microserviços na nuvem. Ele foca em encontrar as melhores combinações de desempenho da aplicação, custos de implantação e energia consumida. Usando um método baseado em algoritmos genéticos, conseguimos criar rapidamente várias opções de implantação.

Vamos mostrar a eficácia desse método através de um estudo de caso específico relacionado a reservas de passagens de trem.

O Desafio da Sustentabilidade na Computação em Nuvem

Com o crescente uso de tecnologias digitais, os efeitos ambientais dos data centers estão se tornando mais significativos. A necessidade crescente de poder computacional e as demandas de energia dos data centers aumentam sua pegada de carbono. A computação em nuvem é fundamental para atender a essas necessidades, já que permite que as empresas aprimorem suas capacidades tecnológicas.

A arquitetura de microserviços, que organiza as aplicações em serviços menores que podem ser desenvolvidos e implantados de forma independente, é comumente usada em ambientes de nuvem. Essa abordagem é preferida porque se encaixa bem na natureza escalável da computação em nuvem. No entanto, ao implantar aplicações de microserviços, o consumo de energia frequentemente recebe menos atenção do que as métricas de desempenho e os custos de implantação, que costumam ser priorizados.

O problema de focar no consumo de energia é que isso adiciona complexidade ao planejamento das implantações. Diferentes configurações têm necessidades de energia variadas, tornando mais difícil avaliar todas as opções. No entanto, para o sucesso a longo prazo da arquitetura de microserviços baseada em nuvem, é crucial considerar os trade-offs entre desempenho, custos e uso de energia.

Recentemente, vários métodos foram desenvolvidos para melhorar a eficiência energética e reduzir custos ao implantar na nuvem. No entanto, muitos desses métodos não consideram os aspectos arquitetônicos, limitando a compreensão dos projetistas sobre os complexos trade-offs que surgem. Essa falta de clareza é intensificada pela forma como o comportamento do usuário afeta o consumo de energia dentro dos microserviços.

Este artigo tem como objetivo abordar esse problema, introduzindo uma nova maneira de encontrar soluções sustentáveis para a implantação de microserviços na nuvem. Especificamente, usaremos algoritmos genéticos para criar várias configurações de implantação, fazendo alterações em uma arquitetura existente. Essa abordagem oferece aos projetistas várias opções que otimizam desempenho, custos e uso de energia.

Além disso, estudaremos como esses elementos interagem, analisando como o uso de energia, custos e comportamento do usuário variam com diferentes tipos de solicitações. Finalmente, vamos investigar como ocorrem mudanças arquitetônicas quando focamos no consumo de energia, identificando modificações comuns em contextos onde a energia é uma prioridade.

Para ilustrar a aplicação prática dessa abordagem, usaremos o estudo de caso do Serviço de Reserva de Passagens de Trem, que foi projetado para representar um cenário do mundo real comumente usado em pesquisas sobre microserviços.

Objetivos de Implantação Sustentável

Nossa abordagem foca em vários objetivos principais:

  1. Consumo de Energia: Para estimar a energia total consumida por um sistema, adaptamos modelos existentes que analisam o uso de recursos durante períodos de pico e de inatividade. Ao focar principalmente no uso da CPU, podemos calcular a energia necessária com base no nível de atividade dos servidores.

  2. Tempo de Resposta: Essa é uma métrica comum usada para medir quão rapidamente o sistema responde às solicitações. Nosso objetivo é minimizar esse tempo, considerando diferentes tipos de solicitações e como elas interagem com o sistema.

  3. Complexidade de Refatoração: Mudar a arquitetura de software pode envolver níveis variados de complexidade. Queremos medir quão complicado é aplicar diferentes mudanças para entender melhor os trade-offs.

  4. Custo de Implantação: O custo de implantar a arquitetura em um ambiente de nuvem é outro fator essencial a ser considerado. Isso está intimamente ligado ao tipo e ao número de servidores usados.

Esses objetivos ajudam a formular uma implantação mais sustentável de microserviços, equilibrando seu desempenho, custo e eficiência energética.

Metodologia

Nossa abordagem utiliza algoritmos genéticos, que são inspirados na seleção natural, para explorar várias implantações arquitetônicas. Aproveitamos um algoritmo específico, conhecido como NSGA-II, que é eficaz para otimização de múltiplos objetivos. O algoritmo evolui soluções potenciais através de processos semelhantes à reprodução, combinando soluções existentes enquanto introduz variações.

No nosso contexto, cada solução potencial consiste em uma série de ações que refatoram a arquitetura-modificações que podem melhorar o desempenho, reduzir custos ou diminuir o uso de energia. Esse método nos permite encontrar soluções de implantação diversas, levando a uma variedade de configurações arquitetônicas.

Ações de Refatoração

Definimos vários tipos de ações de refatoração que podem ser aplicadas à arquitetura de software:

  • Reimplantar Componente Existente: Mover um componente de um servidor para outro para otimizar toda a arquitetura.
  • Realocar Operação para Componente Existente: Transferir uma tarefa específica para um componente já existente, garantindo uma operação suave.
  • Clonar Nó: Criar uma duplicata de um servidor para aumentar a redundância e suportar a tolerância a falhas.
  • Mover Operação para Novo Componente em Novo Nó: Transferir uma tarefa para um novo componente em um novo servidor, o que requer planejamento cuidadoso.
  • Remover Nó: Eliminar um servidor e mover seus componentes para servidores próximos para manter uma estrutura eficiente.

Cada uma dessas ações afeta o uso de energia, custos e desempenho do sistema de maneira diferente, e nosso algoritmo avalia esses efeitos ao gerar novas configurações.

Estudo de Caso: Serviço de Reserva de Passagens de Trem

Para validar nossa abordagem, aplicamos ela ao estudo de caso do Serviço de Reserva de Passagens de Trem. Esta aplicação web é composta por vários microserviços e foi projetada para representar um cenário típico encontrado em aplicações do mundo real.

A arquitetura desse serviço inclui 40 microserviços, cada um hospedado em seu próprio container. Focamos em algumas ações comuns dos usuários, como fazer login, atualizar os detalhes do usuário e remarcar passagens, para avaliar efetivamente o desempenho do nosso método.

Configuração Experimental

Realizamos uma série de experimentos para testar nosso método. Nesses experimentos, comparamos cenários onde os aspectos de sustentabilidade, especialmente o consumo de energia, foram incluídos como alvos de otimização com cenários em que não foram.

Ao realizar várias tentativas, coletamos dados sobre como diferentes configurações impactaram o desempenho, custo e uso de energia. Isso nos ajudou a avaliar a eficácia da nossa abordagem e identificar os trade-offs envolvidos em priorizar a sustentabilidade.

Resultados

Os achados dos nossos experimentos fornecem insights valiosos sobre a relação entre sustentabilidade e desempenho da aplicação. Notavelmente, descobrimos que focar no consumo de energia teve um impacto significativo nos tempos de resposta em todo o sistema. No entanto, esse foco não afetou visivelmente os custos de implantação, o que é um resultado promissor para organizações que buscam sustentabilidade sem incorrer em despesas adicionais.

Impacto da Sustentabilidade no Desempenho e Custo

Nossos resultados indicaram que enfatizar a sustentabilidade, particularmente o consumo de energia, normalmente resultou em uma redução perceptível nos tempos de resposta. Os experimentos demonstraram que as soluções descobertas quando a energia era um alvo ofereciam mais opções no geral, implicando que os projetistas podem selecionar a partir de uma gama mais ampla de implantações eficazes.

Curiosamente, enquanto o desempenho foi afetado, os custos de implantação permaneceram relativamente estáveis. Isso sugere que as organizações podem buscar aplicações em nuvem sustentáveis sem sacrificar a eficiência financeira.

Variações na Distribuição de Energia e Custo

Ao analisar como diferentes solicitações de usuários afetaram o consumo de energia e os custos, observamos que funcionalidades individuais contribuíram de maneiras variadas. Diferentes ações dos usuários poderiam alterar drasticamente o carregamento total de energia e custo do sistema.

Por exemplo, em cenários onde solicitações foram otimizadas, algumas ações dos usuários eram responsáveis por uma parte mais significativa do total de consumo de energia. Esses dados permitem que os projetistas arquitetônicos tomem decisões informadas sobre quais aspectos do serviço podem exigir ajustes para melhorar os resultados de sustentabilidade.

Mudanças nas Soluções Arquitetônicas

Também examinamos como os tipos de ações de refatoração usadas no processo arquitetônico mudaram quando consideramos o consumo de energia como um objetivo. Nossas descobertas mostraram que ações específicas, como remover nós da arquitetura, eram mais prevalentes quando o consumo de energia era priorizado.

Como resultado, diferentes padrões arquitetônicos emergiram. Isso indica que considerar a sustentabilidade na fase de design pode revelar oportunidades de melhoria antes invisíveis e orientar decisões sobre quais componentes da arquitetura podem estar superprovisionados ou subutilizados.

Conclusão

Através de nossos esforços, introduzimos uma nova maneira de implantar microserviços na nuvem enquanto buscamos sustentabilidade. Usar algoritmos genéticos e uma abordagem direcionada nos permite criar uma variedade de configurações que equilibram efetivamente desempenho, custos e uso de energia.

Os resultados do nosso estudo de caso indicam que os objetivos de sustentabilidade, particularmente o foco no consumo de energia, impactam significativamente o desempenho enquanto têm um efeito desprezível nos custos. Este trabalho abre novas avenidas para futuras pesquisas, incluindo testar a abordagem em diferentes contextos e estudar como mudanças nas decisões de implantação afetam interações dos usuários e a sustentabilidade.

À medida que as organizações se concentram cada vez mais na sustentabilidade na tecnologia, nossa abordagem fornece uma estrutura prática para melhorar a eficiência energética de aplicações baseadas em nuvem, ajudando, em última análise, na jornada em direção a soluções de computação mais amigáveis ao meio ambiente.

Mais de autores

Artigos semelhantes