Computação em nuvem: Gerencie seus recursos

Gerenciamento de recursos para um sistema inerentemente complexo tal como computação em nuvem requer diferentes formas de medição e alocação de recursos.

Dan Marinescu

Adaptado de "computação em nuvem: Teoria e prática"(Elsevier Science & Livros de tecnologia)

Gerenciamento de recursos é uma função de núcleo necessária de qualquer sistema feito pelo homem. Isso afeta os três critérios básicos para avaliação do sistema: desempenho, funcionalidade e custo. Gestão ineficiente de recursos tem um efeito negativo direto sobre o desempenho e custo. Ele também indiretamente pode afetar a funcionalidade do sistema. Algumas funções que o sistema oferece podem tornar-se demasiado caro ou ineficaz devido ao mau desempenho.

Uma infra-estrutura de computação em nuvem é um sistema complexo com um grande número de recursos compartilhados. Estas estão sujeitas a solicitações imprevisíveis e podem ser afetadas por eventos externos, além de seu controle. Gerenciamento de recursos de nuvem requer condições complexas e decisões para otimização multi-objetiva. É extremamente desafiador devido à complexidade do sistema, o que torna impossível ter informações precisas estado global. Também está sujeita a incessantes e imprevisíveis de interações com o meio ambiente.

As estratégias de gerenciamento de recursos de nuvem associados com os modelos de entrega de três nuvens, infraestrutura como serviço (IaaS), plataforma como serviço (PaaS) e Software como serviço (SaaS), diferem um do outro. Em todos os casos, os provedores de serviços de nuvem deparam-se com cargas grandes, flutuantes que desafiam a alegação da elasticidade de nuvem. Em alguns casos, quando eles podem prever que um pico pode ser previsto, eles podem provisionar recursos com antecedência. Por exemplo, serviços de Web sazonais sujeitas a picos.

Um pico não planejado, a situação é um pouco mais complicada. Você pode usar Auto dimensionamento para cargas de pico não planejadas, desde que haja um pool de recursos, você pode liberar ou alocar na demanda e um sistema de monitoramento que permite que você decida em tempo real para realocar recursos. Auto Scaling é suportado pelo PaaS serviços como o Google App Engine. Auto Scaling para IaaS é complicada devido à falta de padrões.

Na nuvem, onde mudanças são freqüentes e imprevisíveis, o controle centralizado é improvável fornecer garantias de serviço e desempenho contínuas. Com efeito, um controle centralizado não pode fornecer soluções adequadas para o host de políticas de gerenciamento de nuvem, que você tem que impor.

Políticas autônomas são de grande interesse devido a escala do sistema, o grande número de solicitações de serviço, a população de grandes usuários e a imprevisibilidade da carga. A relação da média para o recurso de pico precisa pode ser grande.

Políticas e mecanismos

Uma política normalmente refere-se ao diretor orientando decisões, Considerando que os mecanismos representam os meios para implementar políticas. Separando políticas de mecanismos é um princípio orientador em ciência da computação. Butler Lampson e Per Brinch Hansen oferecem argumentos sólidos para esta separação no contexto de design OS.

Vagamente, você pode agrupar políticas de gestão de recursos de nuvem em cinco classes:

O objetivo explícito de uma política de controle de admissão é para impedir que o sistema de aceitar as cargas de trabalho em violação das políticas do sistema de alto nível. Por exemplo, um sistema não pode aceitar uma carga de trabalho adicional que poderia impedi-lo de completar o trabalho já em andamento ou contratados. Limitar a carga de trabalho requer algum conhecimento do estado do sistema global. Em um sistema dinâmico, esta informação é frequentemente obsoleta na melhor das hipóteses.

Alocação de capacidade significa a afectação de recursos para as instâncias individuais. Uma instância é uma ativação do serviço. Localizar recursos que estão sujeitas a várias restrições de otimização global requer que você para uma pesquisa de um grande espaço quando o estado de sistemas individuais está a mudar tão rapidamente.

Você pode executar o balanceamento de carga e otimização de energia localmente, mas políticas de balanceamento de carga e otimização energética globais encontram as mesmas dificuldades que os que já discutidas. Otimização de carga balanceamento e energia são correlacionadas e afetam o custo do fornecimento dos serviços.

O balanceamento de carga de termo o significado comum é a de distribuir uniformemente a carga para um conjunto de servidores. Por exemplo, considere o caso de quatro servidores idênticos, A, B, C e D. Suas cargas relativas são 80%, 60%, 40% e 20%, respectivamente, da sua capacidade. Perfeito balanceamento resultaria em todos os servidores que trabalham com a mesma carga — 50% da capacidade de cada servidor.

Em computação em nuvem, uma meta fundamental é minimizar o custo da prestação do serviço. Em particular, isso também significa minimizar o consumo de energia. Isto leva a um significado diferente do balanceamento de carga de termo. Em vez de ter a carga uniformemente distribuída entre todos os servidores, queremos concentrá-lo e usar o menor número de servidores, enquanto os outros de comutação para o modo standby, um estado no qual um servidor usa menos energia. No nosso exemplo, a carga de D migrará para o A e a carga de C migrará para B. Assim, A e B serão carregados em plena capacidade, Considerando que C e D serão ser comutada para o modo standby.

Qualidade do serviço é que aspecto do gerenciamento de recursos que é provavelmente o mais difícil para o endereço e, ao mesmo tempo, possivelmente a mais crítica para o futuro da computação em nuvem. Estratégias de gestão de recursos, muitas vezes em conjunto, alvo desempenho e consumo de energia.

Tensão dinâmica e técnicas (DVFS), como Intel SpeedStep e a AMD PowerNow de escala de freqüência inferior a tensão e a freqüência para diminuir o consumo de energia. Motivado inicialmente pela necessidade de economizar energia para dispositivos móveis, estas técnicas têm migrado para praticamente todos os processadores, incluindo os utilizados em servidores de alto desempenho. Como resultado da baixa tensões e frequências, diminui o desempenho do processador. No entanto, ele faz isso em uma taxa substancialmente mais lenta do que o consumo de energia.

Praticamente todos os mecanismos ideais ou perto do ideal para abordar as cinco política classes não aumenta. Eles normalmente visar um único aspecto da gestão de recursos, tais como controle de admissão, mas ignoram a conservação de energia. Muitos exigem cálculos complexos que não podem ser feitos de forma eficaz no tempo disponível para responder. Modelos de desempenho são complexos, soluções analíticas são intratáveis e os sistemas de monitoramento usados para reunir informações de estado para estes modelos podem ser demasiado intrusivo e incapaz de fornecer dados precisos.

Portanto, muitas técnicas concentram-se no desempenho do sistema em termos de produtividade e tempo no sistema. Eles raramente incluem trocas de energia ou garantias de QoS. Algumas técnicas são baseadas em suposições irrealistas. Por exemplo, a alocação de capacidade é vista como um problema de otimização, mas sob a suposição de que os servidores são protegidos contra sobrecarga.

Controle na nuvem

Técnicas de alocação em nuvens de computador devem basear-se em uma abordagem disciplinada, em vez de métodos ad hoc. Os quatro mecanismos básicos para a implementação de políticas de gestão de recursos são:

  • **Teoria de controle:**Teoria de controle usa o feedback para garantir a estabilidade do sistema e prever o comportamento transiente, mas ele só pode prever o comportamento local.
  • **Aprendizado de máquina:**Uma grande vantagem das técnicas de aprendizado de máquina é que não precisam de um modelo de desempenho do sistema. Você pode aplicar essa técnica para coordenar diversos gerenciadores de sistema autonômico.
  • **Utilitário baseado:**Abordagens baseadas em utilitário requerem um modelo de desempenho e um mecanismo para correlacionar o desempenho em nível de usuário com o custo.
  • **Mecanismos de mercado-oriented/econômico:**Tais mecanismos não requerem um modelo de sistema, tais como a combinação de leilões de pacotes de recursos.

Deve ser feita uma distinção entre as cargas de trabalho interativas e não interativo. As técnicas de gestão para cargas de trabalho interativas (serviços da Web, por exemplo) envolvem o controle de fluxo e colocação de aplicação dinâmica, Considerando que as cargas de trabalho não-interativo concentram-se na programação.

Uma quantidade justa de trabalho relatado na literatura é dedicada à gestão de recursos de cargas de trabalho interativas — alguns para não-interativo e apenas cargas heterogêneas para alguns, uma combinação dos dois. Planejamento para frente como você está indo para gerenciá-los ajudará a garantir uma transição suave para trabalhar com a nuvem.

Dan C. Marinescu

Dan C. Marinescu foi professor de ciência da computação na Universidade de Purdue de 1984 a 2001. Então ele se juntou ao departamento de ciência da computação da Universidade da Flórida Central. Ocupou cargos de professores visitando na IBM T. J. Watson Research Center, Instituto de Ciências da informação em Pequim, a divisão de sistemas escalonáveis de Intel Corp., Deutsche Telecom AG e Rocquancourt INRIA na França. Seus interesses tampa paralela e distribuída sistemas de pesquisa, computação em nuvem, científico de computação, quântica computação e teoria da informação quântica.

Para mais informações sobre este e outros títulos da Elsevier, confira Elsevier Science & Livros de tecnologia.

Conteúdo relacionado