Simple Science

Ciência de ponta explicada de forma simples

# Informática# Computação distribuída, paralela e em cluster

Melhorando Cargas de Trabalho na Nuvem com Inteligência de Carga de Trabalho

A Inteligência de Carga de Trabalho conecta as plataformas de nuvem e as cargas de trabalho, melhorando o desempenho.

― 12 min ler


Otimizando Cargas deOtimizando Cargas deTrabalho em Nuvemcustos.melhora o desempenho da nuvem e reduzA Inteligência de Carga de Trabalho
Índice

A computação em Nuvem virou uma parte chave de como as empresas funcionam hoje em dia. Muitas empresas dependem da nuvem pra rodar suas aplicações, armazenar dados e gerenciar recursos. Mas tem um problema: a forma como os serviços de nuvem e as cargas de trabalho se comunicam não é muito eficaz. Normalmente, a nuvem só sabe sobre o tipo de máquina virtual (VM) que tá sendo usada, e as cargas de trabalho não recebem muitas informações de volta. Essa falta de comunicação gera vários problemas, como ineficiências, custos mais altos e problemas de desempenho.

A interface restrita entre os serviços de nuvem e as cargas de trabalho tem várias desvantagens. Primeiro, tem tantos tipos de VMs e opções adicionais que fica difícil pros usuários escolherem o que é melhor pra suas necessidades. Segundo, aspectos importantes de como as cargas de trabalho operam, como o quanto de downtime elas podem tolerar ou quão rápido precisam reagir a eventos, geralmente não ficam claros. Isso dificulta pra nuvem ajustar seus serviços de maneira adequada. Terceiro, as cargas de trabalho muitas vezes não estão cientes de como poderiam melhorar, ou podem não ter tempo suficiente pra responder às mudanças da nuvem.

Nesse artigo, apresentamos um conceito chamado Inteligência de Carga de Trabalho (WI). Esse framework tem como objetivo melhorar a comunicação entre cargas de trabalho na nuvem e a plataforma de nuvem pra que elas possam trabalhar juntas de forma mais eficiente. Com o WI, as cargas de trabalho podem compartilhar suas principais necessidades, como requisitos de recursos e expectativas de desempenho. Ao mesmo tempo, a nuvem pode informar as cargas de trabalho sobre eventos importantes, otimizações futuras e outros cenários que podem afetar seu desempenho.

Por Que a Comunicação é Importante

A lacuna de comunicação entre plataformas de nuvem e cargas de trabalho cria vários desafios. Primeiro, o crescimento rápido dos tipos de VMs complica o processo de seleção pros usuários. Eles geralmente acham difícil identificar qual VM se encaixa melhor nos requisitos da sua carga de trabalho.

Em segundo lugar, sem informações claras sobre as características das cargas de trabalho-como tolerância ao downtime ou capacidade de escalar-fica complicado pra nuvem oferecer soluções otimizadas. Isso pode levar a custos desnecessários pros usuários, já que eles podem não estar usando os recursos da forma mais eficiente possível.

Por último, às vezes os usuários podem perder oportunidades de melhorar suas cargas de trabalho porque não recebem atualizações pontuais da nuvem. Essa falta de interação pode resultar em desperdício e chances perdidas de Otimização.

Nossa Abordagem pro WI

Reconhecendo esses problemas, propomos o framework de Inteligência de Carga de Trabalho (WI), visando uma comunicação mais eficiente entre cargas de trabalho e plataformas de nuvem. Ao implementar o WI, as cargas de trabalho podem articular claramente suas características, requisitos e qualquer mudança em tempo real. Por sua vez, a nuvem pode compartilhar atualizações importantes que permitem às cargas de trabalho otimizar seu desempenho.

Identificamos três desafios principais na construção desse framework:

  1. Projetar uma interface flexível pra cargas de trabalho compartilharem suas principais características.
  2. Desenvolver um sistema de comunicação que permita uma interação fluida enquanto mantém a segurança.
  3. Garantir que a nuvem consiga processar efetivamente as informações que recebe, maximizando oportunidades de otimização sem comprometer a qualidade do serviço.

Com esses desafios em mente, nosso trabalho começa analisando as características e necessidades de várias cargas de trabalho reais na nuvem. Ao entender isso, podemos criar um framework que possibilita interações melhores.

Características das Cargas de Trabalho na Nuvem

Pra personalizar o framework WI de forma eficaz, estudamos uma ampla variedade de cargas de trabalho na nuvem e suas características específicas. Após investigar muitas cargas de trabalho internas, focamos em um conjunto diversificado de aplicações, incluindo busca na web, ferramentas de produtividade e serviços de comunicação. Essas cargas de trabalho são usadas por milhões de usuários ao redor do mundo.

Baseado na nossa pesquisa, agrupamos as características das cargas de trabalho em quatro categorias principais:

Escalabilidade

Analisamos quão facilmente uma carga de trabalho pode escalar pra cima ou pra baixo com base na demanda. Muitas cargas de trabalho são parcialmente ou totalmente sem estado, o que significa que elas conseguem ajustar sem perder dados ou desempenho. A maioria das que estudamos não tem requisitos de tempo rígidos pra implantação, permitindo mais flexibilidade.

Confiabilidade

Examinamos as cargas de trabalho em relação à sua tolerância ao downtime, também conhecido como disponibilidade. A maioria das cargas de trabalho pode tolerar algum downtime, com muitas precisando de apenas algumas horas por ano. Além disso, muitas cargas de trabalho podem pausar e retomar seu progresso, oferecendo ainda mais flexibilidade na gestão de recursos.

Tolerância a Atrasos

Algumas cargas de trabalho conseguem lidar com atrasos no processamento de pedidos. Por exemplo, um serviço pode ter um tempo de resposta alvo, mas consegue tolerar picos ocasionais. Essa flexibilidade permite um uso mais eficiente dos recursos, já que a nuvem pode alocar recursos com base na necessidade em vez de manter uma disponibilidade rígida pra cada carga de trabalho.

Independência Regional

Essa característica indica se uma carga de trabalho pode operar em diferentes localizações geográficas. Muitas cargas de trabalho conseguem migrar ou operar em várias localizações sem perder funcionalidade.

Mecanismos de Otimização na Nuvem

As plataformas de nuvem desenvolveram diversas técnicas de otimização pra melhorar a Alocação de Recursos e eficiência. Esses mecanismos visam aproveitar ao máximo os recursos disponíveis enquanto minimizam custos pros usuários. Alguns dos principais mecanismos de otimização que examinamos incluem:

Auto-Escalar

Esse recurso ajusta o número de VMs com base na demanda em tempo real. Por exemplo, se o uso aumenta durante horários de pico, o sistema automaticamente ativa mais VMs, economizando custos durante horários de baixa.

VMs Spot

Essas são VMs mais baratas que podem ser removidas quando a nuvem precisa alocar recursos em outro lugar. Elas costumam ser usadas pra cargas de trabalho que não exigem disponibilidade constante.

VMs Harvest

Essas VMs podem crescer ou encolher dinamicamente com base nos recursos disponíveis. Elas otimizam o uso da capacidade extra dentro dos servidores, utilizando recursos adicionais quando disponíveis.

Overclocking

Essa técnica aumenta a frequência dos núcleos da CPU pra melhorar o desempenho durante períodos de alta demanda. A plataforma de nuvem precisa determinar quais cargas de trabalho podem se beneficiar disso sem comprometer a confiabilidade.

Pré-Provisionamento

Esse método envolve preparar VMs com antecedência, de modo que possam ser ativadas rapidamente quando necessário, abordando efetivamente os atrasos de implantação.

Colocação Independente de Região

Rodando cargas de trabalho em regiões mais baratas ou mais ecológicas, a nuvem pode reduzir custos e emissões de carbono, aproveitando recursos locais sem requisitos de latência rigorosos.

Ajuste de Tamanho de VM

Isso envolve a seleção e ajuste inteligente dos tipos de VM com base no uso atual de recursos, otimizando custos pra cargas de trabalho que podem não precisar de tanta potência de recursos.

Data Centers de Multi-Disponibilidade

Essa abordagem reduz a redundância da infraestrutura e permite que a nuvem lide com manutenção enquanto gerencia recursos de forma eficiente.

A Importância de uma Comunicação Eficaz

As interfaces existentes pra essas otimizações muitas vezes requerem que os usuários forneçam entradas específicas, o que pode ser complexo e confuso. Cada mecanismo atualmente tem sua própria interface; assim, a complexidade geral aumenta à medida que mais otimizações são introduzidas.

Propomos uma solução inovadora com a Inteligência de Carga de Trabalho pra criar uma interface única que desacopla as características da carga de trabalho das otimizações que elas permitem. Assim, as cargas de trabalho podem comunicar suas necessidades sem precisar entender os detalhes intrincados dos mecanismos de otimização da nuvem.

Três Requisitos Essenciais

Pra que o framework WI seja eficaz, ele deve atender a certos requisitos:

  1. Interface Geral: As cargas de trabalho precisam de uma forma flexível de expressar claramente suas características e requisitos.
  2. Atualizações Dinâmicas: As características da carga de trabalho devem poder mudar ao longo do tempo, e deve haver uma forma de atualizar a nuvem em tempo real.
  3. Incentivos: Os usuários devem ser incentivados a fornecer dicas e informações precisas pra otimizar os benefícios de desempenho.

Como a Inteligência de Carga de Trabalho Funciona

Com o framework WI, as cargas de trabalho podem fornecer sete dicas principais sobre suas características, ajudando a nuvem a tomar melhores decisões:

  1. Escalar pra Cima/Baixo: Indica se a carga de trabalho pode lidar com um aumento ou diminuição na alocação de recursos.
  2. Escalar pra Fora/Dentro: Determina se a carga de trabalho pode ajustar o número de instâncias com base na demanda.
  3. Tempo de Implantação: Especifica quão rápido uma VM deve estar disponível.
  4. Disponibilidade: Indica a tolerância ao downtime, geralmente expressa em termos de “nove” (por exemplo, três noves indicam 99,9% de disponibilidade).
  5. Preemptibilidade: Reflete quanto de uma carga de trabalho pode ser pausada ou removida temporariamente sem consequências graves.
  6. Tolerância a Atrasos: Especifica quanto tempo uma carga de trabalho pode esperar pelo processamento.
  7. Independência Regional: Indica se a carga de trabalho pode funcionar em diferentes regiões geográficas.

Dicas da Plataforma de Nuvem

Na direção oposta, a nuvem também pode fornecer dicas pras cargas de trabalho sobre eventos importantes ou oportunidades de otimização. Por exemplo, as cargas de trabalho podem ser notificadas quando uma VM está prestes a ser removida ou quando recursos adicionais estão disponíveis pra uso.

A Arquitetura do Sistema de Inteligência de Carga de Trabalho

A arquitetura do WI foi projetada pra escalabilidade e eficiência. Cada servidor dentro da nuvem roda um gerenciador WI local pra coletar informações das VMs. Esse gerenciador local encaminha as dicas coletadas pra um gerenciador WI global, que processa e agrega informações de várias fontes.

Esse sistema inclui:

  • Gerenciadores Locais: Cada servidor de nuvem tem um gerenciador WI local que coleta dicas em tempo real das cargas de trabalho e se comunica com o gerenciador global.
  • Gerenciador Global: Um componente central que atua como um corretor entre cargas de trabalho e otimizações na nuvem, armazenando e gerenciando dicas.
  • Gerenciadores de Otimização na Nuvem: Cada mecanismo de otimização pode usar as dicas coletadas pelo gerenciador global pra ajustar a alocação de recursos com base nas necessidades da carga de trabalho.

A comunicação entre esses componentes se baseia em uma combinação de um sistema Pub/Sub, como o Kafka, e um banco de dados robusto que garante persistência de dados e tolerância a falhas.

Avaliando a Inteligência de Carga de Trabalho

Pra avaliar a eficácia do WI, realizamos estudos de caso em três cargas de trabalho distintas: análise de big data, microserviços e videoconferência. Cada estudo mostrou como as cargas de trabalho se beneficiaram da implementação do framework WI.

Estudo de Caso: Análise de Big Data

No nosso primeiro estudo de caso, implantamos uma versão ciente de WI do Hadoop em um cluster de 20 nós. Ao utilizar dicas do framework WI, conseguimos ativar Auto-Escalar, VMs Spot e VMs Harvest. Os resultados mostraram que o uso dessas otimizações juntas levou a uma redução de custos de até 93,5% mantendo um nível aceitável de desempenho.

Estudo de Caso: Microserviços

No caso dos microserviços, usamos uma carga de trabalho de rede social em um cluster Kubernetes. Ao ativar várias estratégias de otimização, a plataforma conseguiu uma redução de 44% nos custos e melhorou a latência de cauda. Isso exemplificou os benefícios de usar o framework WI na gestão eficaz de cargas de trabalho dinâmicas.

Estudo de Caso: Videoconferência

Por último, na carga de trabalho de videoconferência, a plataforma de nuvem utilizou várias otimizações, incluindo Auto-Escalar e Overclocking. O estudo revelou uma redução de 26,3% nos custos e um aumento significativo no desempenho, demonstrando as capacidades do WI na gestão de cargas de trabalho ao vivo que exigem ajustes em tempo real.

Benefícios Gerais da Inteligência de Carga de Trabalho

Ao combinar as economias provenientes de várias otimizações habilitadas pelo framework WI, descobrimos que os proprietários de cargas de trabalho poderiam ver uma redução média de custos de 48,8%. Além disso, o framework contribuiu pra reduções significativas de emissões de carbono ao otimizar alocações de recursos e utilizar regiões mais ecológicas.

Conclusão

Neste artigo, apresentamos a Inteligência de Carga de Trabalho como uma solução pra preencher a lacuna de comunicação entre plataformas de nuvem e cargas de trabalho. Ao permitir um diálogo melhor entre os dois, podemos aumentar a eficiência, reduzir custos e melhorar as experiências dos usuários.

A pesquisa destaca a necessidade de um framework de nuvem mais adaptável e flexível, que possa responder de forma eficaz às necessidades de várias cargas de trabalho. Com a Inteligência de Carga de Trabalho em ação, a relação entre serviços de nuvem e cargas de trabalho pode evoluir significativamente, levando a melhorias gerais na computação em nuvem.

Adotando essas estratégias, as plataformas de nuvem podem não só otimizar o uso de recursos, mas também fornecer aos usuários melhores ferramentas pra gerenciar suas aplicações, pavimentando o caminho pra um ecossistema de nuvem mais eficiente.

Fonte original

Título: Workload Intelligence: Punching Holes Through the Cloud Abstraction

Resumo: Today, cloud workloads are essentially opaque to the cloud platform. Typically, the only information the platform receives is the virtual machine (VM) type and possibly a decoration to the type (e.g., the VM is evictable). Similarly, workloads receive little to no information from the platform; generally, workloads might receive telemetry from their VMs or exceptional signals (e.g., shortly before a VM is evicted). The narrow interface between workloads and platforms has several drawbacks: (1) a surge in VM types and decorations in public cloud platforms complicates customer selection; (2) essential workload characteristics (e.g., low availability requirements, high latency tolerance) are often unspecified, hindering platform customization for optimized resource usage and cost savings; and (3) workloads may be unaware of potential optimizations or lack sufficient time to react to platform events. In this paper, we propose a framework, called Workload Intelligence (WI), for dynamic bi-directional communication between cloud workloads and cloud platform. Via WI, workloads can programmatically adjust their key characteristics, requirements, and even dynamically adapt behaviors like VM priorities. In the other direction, WI allows the platform to programmatically inform workloads about upcoming events, opportunities for optimization, among other scenarios. Because of WI, the cloud platform can drastically simplify its offerings, reduce its costs without fear of violating any workload requirements, and reduce prices to its customers on average by 48.8%.

Autores: Lexiang Huang, Anjaly Parayil, Jue Zhang, Xiaoting Qin, Chetan Bansal, Jovan Stojkovic, Pantea Zardoshti, Pulkit Misra, Eli Cortez, Raphael Ghelman, Íñigo Goiri, Saravan Rajmohan, Jim Kleewein, Rodrigo Fonseca, Timothy Zhu, Ricardo Bianchini

Última atualização: 2024-04-29 00:00:00

Idioma: English

Fonte URL: https://arxiv.org/abs/2404.19143

Fonte PDF: https://arxiv.org/pdf/2404.19143

Licença: https://creativecommons.org/licenses/by-sa/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.

Mais de autores

Artigos semelhantes