Aprimorando a Elasticidade da Nuvem com uma Nova Abordagem Híbrida
Um novo sistema melhora o desempenho da nuvem e reduz custos ao combinar VMs e FaaS.
― 7 min ler
Índice
- Desafios com as Soluções Atuais
- Nossa Abordagem Pra Melhorar a Elasticidade
- O Conceito de Elasticidade Efêmera
- Como Conectamos VMs e FaaS
- Melhorias de Desempenho
- Análise das Cargas de Trabalho na Nuvem
- Ineficiências nos Sistemas Atuais
- O Mecanismo Por Trás da Nossa Solução
- Interceptação de Chamadas de Função
- Emulando Ambientes de Rede Tradicionais
- Aplicações Práticas
- Testes do Mundo Real e Resultados
- Análise de Custos
- Trabalho Futuro e Melhorias
- Conclusão
- Fonte original
- Ligações de referência
Computação em nuvem é uma tecnologia que permite que os usuários acessem e usem recursos de computação pela internet. Uma característica importante da computação em nuvem é a Elasticidade, que significa a capacidade de ajustar rapidamente os recursos com base na demanda. Porém, os métodos atuais pra conseguir isso muitas vezes não funcionam bem, especialmente quando lidam com aumentos repentinos de demanda ou falhas nos serviços. Isso pode gerar altos custos, já que os usuários podem alugar mais recursos do que realmente precisam pra garantir o desempenho.
Desafios com as Soluções Atuais
Os serviços de nuvem tradicionais geralmente oferecem elasticidade no nível das Máquinas Virtuais (VMs). Mas iniciar uma VM pode levar um tempo considerável - muitas vezes, dezenas de segundos. Essa demora não é ideal pra aplicações que precisam responder rapidamente a mudanças, como serviços web que enfrentam picos de tráfego repentino. Pra contornar isso, muitos usuários optam por superprovisionamento, ou seja, alugam mais recursos do que o necessário, resultando em gastos desnecessários.
Funções como Serviço (FaaS), como o AWS Lambda, oferecem uma alternativa mais flexível. Elas podem rapidamente escalar os recursos com base no uso. Contudo, o FaaS também tem suas limitações. Exige que as aplicações sejam reescritas de uma maneira orientada a eventos, o que torna difícil pra muitas aplicações existentes que não conseguem se adaptar facilmente a esse modelo.
Nossa Abordagem Pra Melhorar a Elasticidade
Na nossa pesquisa, focamos em ajudar aplicações de nuvem padrão a aproveitarem as capacidades de escalabilidade rápida do FaaS, sem precisar de mudanças significativas. Propomos uma solução que permite que aplicações existentes usem a elasticidade rápida do FaaS, enquanto ainda mantêm sua estrutura original. Com isso, conseguimos melhorar bastante o desempenho e reduzir os custos.
O Conceito de Elasticidade Efêmera
Introduzimos a ideia de elasticidade efêmera, que combina os benefícios das VMs tradicionais e do FaaS. O objetivo é ter um sistema que use VMs pra cargas estáveis e previsíveis e mude pra FaaS em picos repentinos de tráfego. Assim, as aplicações conseguem lidar com demandas imprevisíveis sem o fardo financeiro do superprovisionamento.
Como Conectamos VMs e FaaS
Pra que isso seja possível, desenvolvemos um sistema que age como uma ponte entre VMs e FaaS. Esse sistema intercepta a execução das aplicações e cria um ambiente de rede parecido com o que as aplicações esperam em configurações tradicionais. Isso permite que as aplicações acessem as capacidades de escalabilidade rápida do FaaS, mantendo seu código existente.
Melhorias de Desempenho
Nosso sistema foi testado com aplicações reais, mostrando que conseguia absorver picos repentinos de tráfego de forma eficaz. Por exemplo, ele apresentou tempos de recuperação mais de cinco vezes mais rápidos que as VMs tradicionais, melhorando muito a capacidade da aplicação de responder aos usuários.
Análise das Cargas de Trabalho na Nuvem
Pra entender melhor as necessidades das aplicações em nuvem, analisamos dados do mundo real, focando nos padrões de pedido de um serviço web popular. Encontramos duas observações principais:
- Elasticidade de grão grosso: Pra algumas aplicações, a demanda muda gradualmente ao longo de períodos mais longos. Essas aplicações podem se beneficiar de métodos de escalonamento mais lentos.
- Elasticidade de grão fino: Por outro lado, outras aplicações enfrentam picos repentinos que exigem ajustes imediatos. Pra essas cargas de trabalho, os métodos tradicionais têm dificuldade em acompanhar.
Essas descobertas indicam que diferentes aplicações precisam de abordagens diferentes pra elasticidade. Nossa solução tem como objetivo atender efetivamente ambos os tipos de cargas de trabalho.
Ineficiências nos Sistemas Atuais
Muitos serviços tradicionais de nuvem, sejam VMs ou contêineres, são frequentemente ineficientes. Eles demoram pra iniciar e não são bem adaptados pra lidar com mudanças súbitas na demanda. Isso resulta em desperdício de recursos e, no final, em custos aumentados pros usuários.
Propomos que nosso sistema pode reduzir significativamente essas ineficiências ao combinar as forças das VMs e do FaaS. Isso significa que os usuários não vão ter que desperdiçar dinheiro com recursos desnecessários enquanto suas aplicações rodam suavemente.
O Mecanismo Por Trás da Nossa Solução
Nosso sistema opera assumindo tarefas-chave das quais as aplicações dependem, como rede e nomeação. Ao fazer isso, conseguimos criar um ambiente que se comporta como uma configuração de nuvem tradicional, aproveitando a velocidade e flexibilidade oferecidas pelo FaaS.
Interceptação de Chamadas de Função
No coração da nossa solução está a capacidade de interceptar as chamadas de função feitas pelas aplicações. Ao interceptar pedidos de acesso à rede ou gerenciamento de arquivos, nosso sistema consegue gerenciar essas operações de uma maneira compatível com a infraestrutura de nuvem subjacente.
Emulando Ambientes de Rede Tradicionais
Nossa solução imita os ambientes de rede tradicionais que muitas aplicações esperam. Ela cuida da comunicação entre diferentes componentes da aplicação, permitindo que eles compartilhem dados e recursos facilmente.
Aplicações Práticas
Um exemplo prático do nosso sistema em ação é no contexto de microserviços. Ao implantar aplicações que consistem em vários serviços independentes, nossa solução pode ajudar a escalá-los com base na demanda, sem precisar de modificações extensas. Isso permite que os desenvolvedores foquem em construir suas aplicações em vez de se preocupar com a infraestrutura subjacente.
Testes do Mundo Real e Resultados
Realizamos vários testes pra avaliar o desempenho do nosso sistema. Ao medir o tempo que levou pra responder aos pedidos e como ele lidou com aumentos repentinos na carga, descobrimos que nossa solução não só conseguia acompanhar a demanda, mas também fazia isso de uma maneira econômica.
Análise de Custos
Os testes incluíram uma análise de custos detalhada comparando nossa solução com métodos tradicionais. Descobrimos que usar nossa abordagem diminui significativamente a necessidade de superprovisionamento de recursos, resultando em custos mais baixos pros usuários.
Trabalho Futuro e Melhorias
Embora nosso sistema atual ofereça vantagens significativas, ainda existem áreas pra melhorar. Trabalhos futuros vão se concentrar em aprimorar as capacidades de interceptação pra lidar melhor com uma gama mais ampla de aplicações e cenários. Também planejamos adaptar nosso sistema pra funcionar em diferentes plataformas de nuvem além daquelas usadas nos nossos testes iniciais.
Conclusão
Em resumo, nossa pesquisa apresenta uma nova abordagem pra elasticidade na computação em nuvem ao integrar os benefícios das VMs e do FaaS. Ao oferecer uma solução que permite que aplicações existentes utilizem escalabilidade rápida sem grandes modificações, acreditamos que podemos melhorar significativamente o desempenho enquanto reduzimos custos. Esse avanço promete ser especialmente benéfico no cenário digital acelerado de hoje, onde a capacidade de ajustar rapidamente os recursos é cada vez mais crítica.
Título: Boxer: FaaSt Ephemeral Elasticity for Off-the-Shelf Cloud Applications
Resumo: Elasticity is a key property of cloud computing. However, elasticity is offered today at the granularity of virtual machines, which take tens of seconds to start. This is insufficient to react to load spikes and sudden failures in latency sensitive applications, leading users to resort to expensive overprovisioning. Function-as-a-Service (FaaS) provides significantly higher elasticity than VMs, but comes coupled with an event-triggered programming model and a constrained execution environment that makes them unsuitable for off-the-shelf applications. Previous work tries to overcome these obstacles but often requires re-architecting the applications. In this paper, we show how off-the-shelf applications can transparently benefit from ephemeral elasticity with FaaS. We built Boxer, an interposition layer spanning VMs and AWS Lambda, that intercepts application execution and emulates the network-of-hosts environment that applications expect when deployed in a conventional VM/container environment. The ephemeral elasticity of Boxer enables significant performance and cost savings for off-the-shelf applications with, e.g., recovery times over 5x faster than EC2 instances and absorbing load spikes comparable to overprovisioned EC2 VM instances.
Autores: Michael Wawrzoniak, Rodrigo Bruno, Ana Klimovic, Gustavo Alonso
Última atualização: 2024-06-30 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2407.00832
Fonte PDF: https://arxiv.org/pdf/2407.00832
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.