Introdução
Motivação
Os benchmarks precisam de um sistema real para serem executados e, às vezes, se tornam um processo caro e demorado [Silva et al, 2015]. Para amenizar esse problema, existem os simuladores, que são ferramentas capazes de promover uma avaliação prévia de forma barata e precisa sobre um modelo que apenas representa um sistema que pode ou não existir.
Objetivo
Organização do Texto
A Figura 4.7 mostra o gráfico do número de instâncias em função do número de tarefas fornecidas pela política de provisionamento dinâmico implementada. A política de provisionamento estático não economizou o tempo total de execução ao aumentar o número de tarefas.
Revisão Bibliográfica
Conceitos sobre computação em nuvem
- Características Essenciais
- Classes de serviço
- Camada de virtualização
A computação em nuvem é um conceito relativamente recente que vem ganhando cada vez mais espaço no mercado de TI. Buyya e outros definem a computação em nuvem como uma coleção de máquinas virtuais interconectadas e provisionadas dinamicamente disponíveis sob um acordo de nível de serviço. Portanto, a virtualização é um conceito muito importante dentro do contexto da computação em nuvem e será discutido a seguir juntamente com os recursos essenciais e classes de serviço que compõem um sistema de computação em nuvem.
De acordo com [Mell; Grance, 2011] em um artigo publicado pelo NIST (National Institute of Standards and Technology), um sistema de computação em nuvem consiste em cinco características essenciais. Conforme discutido anteriormente, um sistema de computação em nuvem consiste em uma coleção de máquinas virtuais implantadas sobre um sistema distribuído de máquinas físicas. Um sistema de computação em nuvem tem muitas máquinas físicas que podem hospedar uma máquina virtual.
Portanto, a camada de virtualização é um dispositivo crucial em um sistema de computação em nuvem e seu design pode afetar diretamente o desempenho.
Provisionamento Dinâmico
- Monitoramento de recursos
- Autoscaling
- Balanceamento de cargas
Para isso, os recursos são organizados em uma lista circular e selecionados um a um para receber uma máquina virtual. First-Fit: Neste algoritmo, as máquinas virtuais são instanciadas no primeiro recurso físico que pode hospedá-las encontrado pelo VMM. Para determinar se um aplicativo precisa de mais ou menos recursos, o sistema de computação em nuvem que o hospeda monitora seus recursos e os dimensiona de acordo com suas próprias políticas.
Quando critérios baseados em métricas de computação (tamanho da fila, uso de memória, etc.) são adotados, um valor limite é definido para aumentar os recursos e outro para diminuir. As técnicas de dimensionamento automático funcionam diretamente em recursos virtualizados, portanto, essas técnicas são integradas à camada de virtualização do sistema. Por exemplo, aumentar ou diminuir a RAM e alocar ou liberar núcleos virtuais para uma ou mais máquinas virtuais.
Como já mencionado, os recursos virtuais de um sistema de computação em nuvem funcionam de forma semelhante a um grupo de máquinas físicas, sendo assim chamado de cluster virtual.
Platform as a Service (PaaS)
- Características essenciais
- Oferta e cobrança de serviço
- Aspectos simuláveis
Os critérios de balanceamento de carga dependem diretamente da finalidade que o cluster virtual está atendendo. As aplicações desenvolvidas são colocadas na central de atendimento do provedor, que é responsável por todo o gerenciamento da infraestrutura, desde a instalação de plataformas, sistemas operacionais, até o fornecimento dinâmico de recursos. Quanto à implantação de aplicativos, as máquinas virtuais são fornecidas dinamicamente ao centro de serviços do provedor, que é responsável por gerenciar os servidores e garantir a qualidade do serviço.
Cada perfil tem um valor agregado em relação à qualidade do serviço que oferece. Como a qualidade do serviço é de responsabilidade do provedor, os recursos computacionais são fornecidos dinamicamente de acordo com critérios do próprio provedor ou definidos pelo cliente. Até o momento foi definido que o serviço PaaS consiste em ferramentas de suporte ao desenvolvimento de aplicações e sua hospedagem na central de atendimento do provedor.
A simulação de PaaS consiste na simulação de implantação de aplicativos, abordando seus aspectos essenciais, como políticas de provisionamento dinâmico, avaliação de qualidade de serviço e cálculo de custos.
Simuladores de computação em nuvem
- CloudSim
- iCanCloud
- GreenCloud
- iSPD
Número de Núcleos Virtuais: Número de núcleos virtuais que este perfil de máquina virtual terá. Tráfego alto: as aplicações possuem um grande número de tarefas, mas com baixa carga computacional. A primeira seção avalia as métricas usando provisionamento dinâmico variando o número de tarefas em cada iteração.
Observa-se que ao aumentar o número de tarefas, aumenta o número de instâncias e consequentemente o custo total de implantação da aplicação. Variações no número de instâncias em função do número de tarefas também coincidiram em ambos os compiladores. Manutenção da qualidade do serviço: Ao aumentar o número de tarefas, aumenta a demanda por poder computacional.
Para isso, o número de máquinas virtuais trazidas para os testes de provisionamento estático foi determinado em testes anteriores usando a política de provisionamento dinâmico.
Implementação de novas funcionalidades
Novas interfaces gráficas
- Modelagem de perfis de máquinas virtuais
- Modelagem de aplicações
Clicar no botão que representa as máquinas virtuais acessa a interface de modelagem do serviço em nuvem mostrada na Figura 3.3. Configurações do aplicativo: Aplicativos de modelagem que serão executados no centro de serviços do sistema modelado. Nome da oferta de serviço: uma string exclusiva que representa cada perfil de máquina virtual modelado.
Memória alocada (MB): quantidade de memória primária em MB alocada para o perfil da máquina virtual. Virtual Machine Monitor: servidor que hospeda o front-end do hipervisor para este perfil de máquina virtual. Disk Allocated (GB): Quantidade de memória secundária em GB alocada para este perfil de máquina virtual.
Possibilita a modelagem de aplicações a serem simuladas no centro de serviço do modelo gerado.
Novas classes
- Classe de perfil de máquina virtual
- Classe de aplicações
Tamanho Máximo da Fila: Se este perfil executar autoscaling, este atributo definirá o valor máximo para o tamanho da fila para esta máquina virtual. Se o tamanho da fila da máquina virtual associada a este perfil exceder o valor máximo, o servidor VMM é solicitado a alocar outra máquina virtual. Max Computational Load: O valor máximo da carga computacional que uma tarefa pode suportar, em MFlop.
Carga útil de computação mínima: valor mínimo de carga útil de computação que uma tarefa pode assumir, em MFlop.
Especificação de escalonadores
Como já mencionado, o iSPD vê os aplicativos como um conjunto limitado de tarefas, com cargas e destinos computacionais específicos. No processo de simulação da classe de serviço IaaS, o operador do simulador define um cluster virtual juntamente com um conjunto de tarefas por usuário. Em uma simulação de PaaS, é necessário criar uma especialização para este escalonador para escalonar as tarefas de acordo com a aplicação.
Essa nova funcionalidade significa que os recursos virtuais são fornecidos exclusivamente por aplicativos, e cada cluster virtual apenas agenda tarefas para um aplicativo específico, independentemente de seu proprietário.
Provisionamento dinâmico
- Política baseada em filas
Com mais de um nó de máquina virtual por aplicativo, a interface do cluster virtual facilita o balanceamento de carga enviando novas tarefas ao servidor com a menor fila. Como n é o número, Filai é o tamanho da fila de um determinado nó i e TamMaxFila é o tamanho máximo da fila definido por usuário, temos a condição (4).
Novas métricas
Baixo tráfego: As aplicações possuem um baixo número de tarefas, mas possuem uma alta carga computacional. A Tabela 4.3 mostra os valores de tempo médio obtidos com seus respectivos desvios padrão para cada simulador. Nesta seção, o número de instâncias em cada iteração corresponde ao mesmo número de instâncias provisionadas dinamicamente na primeira seção para cada teste executado.
A Tabela 4.7 mostra os resultados obtidos no simulador iSPD e a Tabela 4.8 mostra os resultados obtidos no simulador CloudSim. Assim como no teste de alto tráfego, a política de provisionamento dinâmico preservou o tempo geral de execução do aplicativo, aumentando o número de instâncias e, portanto, o custo de implantação. A Tabela 4.9 mostra os valores de tempo médio obtidos com seus respectivos desvios padrão para cada simulador.
A política implementada conseguiu manter o tempo total de execução da aplicação, independentemente do número de tarefas submetidas, devido à capacidade de provisionar novos recursos, flexibilizando rapidamente o serviço oferecido.
Testes de novas funcionalidades
Considerações iniciais
Cada tarefa, denominada cloudlet, possui uma carga computacional e os servidores possuem uma velocidade de processamento. No entanto, esta situação não se torna um problema, pois a relação entre a carga de processamento e a velocidade de processamento é a mesma quando correspondem aos valores que ignoram as unidades.
Modelo de ambiente para testes
Realização e Resultados
- Primeira seção de testes de alto tráfego
- Segunda seção de testes de alto tráfego
- Primeira seção de testes de baixo tráfego
- Segunda seção de testes de baixo tráfego
No entanto, o tempo total foi mantido, demonstrando que houve preservação na qualidade do serviço devido à política de abastecimento dinâmica implementada. Abaixo a Tabela 4.4 mostra os resultados obtidos com relação ao simulador iSPD e na Tabela 4.5 os resultados obtidos com relação ao simulador CloudSim. A Tabela 4.6 mostra as médias e desvios padrão em comparação com os tempos médios obtidos nos testes.
Assim como ocorre com os aplicativos de alto tráfego, esta seção de teste compara uma política de provisionamento dinâmica com uma política de provisionamento estática. A Tabela 4.10 mostra os resultados obtidos com o simulador iSPD, e a Tabela 4.11 mostra os resultados obtidos com o simulador CloudSim. Novamente, há uma grande diferença entre os valores apresentados em cada iteração para a política de provisionamento estático, indicando que não há conservação de tempo.
No entanto, mesmo para baixo tráfego, a política de provisionamento estático ofereceu um tempo de execução menor.
Considerações finais
Em resumo, o provisionamento estático se mostrou mais eficiente, mas é necessário conhecer o poder computacional da aplicação implantada, diferentemente do caso das políticas de provisionamento dinâmico em que o sistema tem que lidar com aumentos de tráfego imprevistos. A discussão apresentada neste trabalho mostra que é possível obter melhores resultados escolhendo a estratégia certa, resultando em economia de tempo e dinheiro. A política de entrega dinâmica implementada no iSPD para realizar este trabalho não é nativa no simulador CloudSim, portanto foi necessário implementá-la no simulador para realizar testes de comparação.
Além de fornecer uma interface gráfica fácil de usar, a camada de serviços, como IaaS e PaaS, é implementada, ao contrário de outros simuladores, que apenas simulam a infraestrutura do sistema de computação em nuvem. O iSPD ainda não considera a simulação de classe de serviço SaaS, o que pode se tornar um trabalho futuro. O provisionamento dinâmico está presente em todas as classes de serviço de computação em nuvem, portanto, é possível implementar novas políticas ao mesmo tempo em que implementa a classe de serviço SaaS. Computação em Nuvem: Princípios e Paradigmas.
A.; Modeling and Simulation of Scalable Cloud Computing Environments and the Cloudsim Toolkit: Challenges and Opportunities.
Conclusões
Ações futuras