PIPEL: modelo de gerência da elasticidade para aplicações organizadas em pipeline

Detalhes bibliográficos
Ano de defesa: 2016
Autor(a) principal: Meyer, Vinícius
Orientador(a): Righi, Rodrigo da Rosa
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade do Vale do Rio dos Sinos
Programa de Pós-Graduação: Programa de Pós-Graduação em Computação Aplicada
Departamento: Escola Politécnica
País: Brasil
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: http://www.repositorio.jesuita.org.br/handle/UNISINOS/5772
Resumo: No ambiente da computação workflows tornam-se um padrão crescente para diversos experimentos científicos. Workflows científicos são compostos por várias aplicações estruturadas em um fluxo de atividades, onde o resultado de uma delas torna-se a entrada de outra. Uma aplicação pipeline é um tipo de workflow que recebe um conjunto de tarefas, as quais devem passar por todas as fases desta aplicação de forma sequencial, o que pode levar a um tempo de execução proibitivo. Tendo em vista este problema, aplicações pipeline podem se beneficiar da utilização de recursos distintos para cada um dos estágios, ou seja, executadas em plataformas distribuídas. Entretanto, dependências e necessidade especificas da computação distribuída surgem devido à interação entre os estágios de processamento e a grande quantidade de dados que devem ser processadas. O fluxo de entrada para aplicações que utilizam padrões pipeline pode ser intenso, inconstante ou irregular. De acordo com o comportamento do fluxo de tarefas, alguns estágios da aplicação podem ter seu desempenho prejudicado, atrasando os estágios subsequentes e por fim interferindo no desempenho da aplicação. Uma alternativa para resolver isto é alocar o máximo de recursos disponíveis (over-provisioning) em cada estágio da aplicação. Entretanto, esta técnica pode gerar um alto custo de infraestrutura, além da possibilidade que em alguns momentos os recursos fiquem ociosos. Sendo assim, a elasticidade em ambiente de nuvem computacional aparece como uma alternativa, explorando o conceito “pagar somente pelo que usar” (pay-as-you-go). Nesse contexto é proposto um modelo de elasticidade baseado na camada PaaS (Plataform as a Service) da nuvem, intitulado de Pipel. Este modelo permite que aplicações pipeline tirem vantagem do provisionamento dinâmico de recursos da infraestrutura de nuvem computacional. Pipel utiliza uma abordagem reativa, fazendo uso de thresholds para a tomada de decisões da elasticidade, baseados na carga de CPU das máquinas virtuais em cada estágio da aplicação. Cada estágio possui um balanceador de carga (chamado de controlador de estágio) e um determinado número de recursos em operação. O controlador do estágio recebe as tarefas que o estágio deve executar, as aloca em uma fila onde são distribuídas nas máquinas virtuais disponíveis em seu estágio. De acordo com regras estabelecidas Pipel realiza ações de elasticidade sobre o ambiente de nuvem. Para validar esta proposta foi desenvolvido um protótipo, o qual foi testado em dois cenários: (i) sem uso de elasticidade e (ii) com uso da elasticidade. Em cada cenário utilizou-se quatro cargas de processamento: (i) Crescente; (ii) Decrescente; (iii) Constante e (iv) Oscilante. Os resultados apresentam uma redução de 38% no tempo da execução da aplicação com o uso da elasticidade provida por Pipel.