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
Índice
- O Desafio da Sustentabilidade na Computação em Nuvem
- Objetivos de Implantação Sustentável
- Metodologia
- Ações de Refatoração
- Estudo de Caso: Serviço de Reserva de Passagens de Trem
- Configuração Experimental
- Resultados
- Impacto da Sustentabilidade no Desempenho e Custo
- Variações na Distribuição de Energia e Custo
- Mudanças nas Soluções Arquitetônicas
- Conclusão
- Fonte original
- Ligações de referência
À 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:
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.
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.
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.
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.
Título: Exploring sustainable alternatives for the deployment of microservices architectures in the cloud
Resumo: As organizations increasingly migrate their applications to the cloud, the optimization of microservices architectures becomes imperative for achieving sustainability goals. Nonetheless, sustainable deployments may increase costs and deteriorate performance, thus the identification of optimal tradeoffs among these conflicting requirements is a key objective not easy to achieve. This paper introduces a novel approach to support cloud deployment of microservices architectures by targeting optimal combinations of application performance, deployment costs, and power consumption. By leveraging genetic algorithms, specifically NSGA-II, we automate the generation of alternative architectural deployments. The results demonstrate the potential of our approach through a comprehensive assessment of the Train Ticket case study.
Autores: Vittorio Cortellessa, Daniele Di Pompeo, Michele Tucci
Última atualização: 2024-02-17 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2402.11238
Fonte PDF: https://arxiv.org/pdf/2402.11238
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.