David Candeia Medeiros Maia - PDF
Download "David Candeia Medeiros Maia"
Alice Sintra de Sá
1 Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Coordenação de Pós-Graduação em Ciência da Computação Planejamento de Capacidade Dirigido a Negócios para Aplicações SaaS de Comércio Eletrônico David Candeia Medeiros Maia Dissertação submetida à Coordenação do Curso de Pós-Graduação em Ciência da Computação da Universidade Federal de Campina Grande - Campus I como parte dos requisitos necessários para obtenção do grau de Mestre em Ciência da Computação. Área de Concentração: Ciência da Computação Linha de Pesquisa: Metodologia e Técnicas da Computação Raquel Vigolvino Lopes (Orientadora) Campina Grande, Paraíba, Brasil c David Candeia Medeiros Maia, 12/07/2012
2 FICHA CATALOGRÁFICA ELABORADA PELA BIBLIOTECA CENTRAL DA UFCG M28p Maia, David Candeia Medeiros. Planejamento de Capacidade Dirigido a Negócios para Aplicações SaaS de Comércio Eletrônico / David Candeia Medeiros Maia. Campina Grande, f.: il. color. Dissertação (Mestrado em Ciência da Computação) Universidade Federal de Campina Grande, Centro de Engenharia Elétrica e Informática. Orientadora: Profa. Dra. Raquel Vigolvino Lopes. Referências. 1. Computação na Nuvem. 2. Planejamento de Capacidade. 3. Software como Serviço. I. Título. CDU (043)
4 Resumo Na última década acompanhou-se o crescimento de um novo mercado na computação denominado de Computação na Nuvem. Este mercado tem por base a oferta de três serviços principais: (i) recursos computacionais virtuais sob demanda, por exemplo, processamento e armazenamento serviço este denominado de Infraestrutura como Serviço (do inglês, Infrastructure as a Service IaaS); (ii) plataformas que facilitam o desenvolvimento de novas aplicações serviço este denominado de Plataforma como Serviço (do inglês, Platform as a Service PaaS); (iii) aplicações prontas para uso serviço este denominado de Software como Serviço (do inglês, Software as a Service SaaS). Empresas que ofertam software como serviço (provedores de SaaS) podem planejar e montar sua infraestrutura de Tecnologia da Informação (TI) fazendo uso de recursos computacionais obtidos junto às empresas que ofertam recursos computacionais (provedores de IaaS). O modelo de negócio utilizado por provedores de IaaS prevê que recursos computacionais possam ser reservados com antecedência mediante pagamento de uma taxa de reserva. A reserva de um recurso garante aos contratantes deste serviço que lhes serão cobradas tarifas reduzidas quando do uso dos recursos computacionais. Realizar um planejamento de capacidade de longo prazo para estimar a quantidade de recursos necessários para execução de uma carga de trabalho e, assim, estabelecer bons contratos de reserva junto aos provedores de IaaS é uma das etapas do gerenciamento de infraestruturas de TI a ser realizada pelo provedor de SaaS. Esta dissertação apresenta duas heurísticas para realização do planejamento de capacidade: heurística UT e RF. Tais heurísticas consideram o modelo de utilidade desenvolvido nesta dissertação para estimar a quantidade de recursos a serem reservados. A avaliação realizada utiliza um modelo de simulação que considera a carga de trabalho de uma aplicação de comércio eletrônico. Em todos os cenários avaliados UT e RF apresentaram valores positivos de utilidade, com RF apresentando uma maior margem de utilidade em relação a uma estratégia base que não realiza reserva de recursos. Por fim, foi descoberto que, de acordo com a qualidade da predição da carga de trabalho, pode-se realizar uma escolha mais criteriosa dentre as heurísticas propostas. iii
5 Abstract In the last decade we have seen the advent and growth of the Cloud Computing market. This market is based on offering three main services: (i) virtual on-demand computing resources such as storage and processing this service is called Infrastructure as a Service (IaaS); (ii) platforms that facilitate the development of new applications this service is called Platform as a Service (PaaS); (iii) software and data hosted on the cloud this service is called Software as a Service (SaaS). SaaS providers can plan and build their Information Technology (IT) infrastructure making use of computing resources offered by IaaS providers. The business model used by IaaS providers states that computing resources can be reserved in advance by paying a reservation fee. A reserved resource has the advantage that its usage fee is lower than the usage fee of non-reserved resources. Capacity planning is one step in the IT infrastructure management performed by a SaaS provider that helps to estimate the amount of resources required to execute a future workload and thus establish good reservation contracts with IaaS providers. This dissertation presents two capacity planning heuristics: (i) heuristic based on resources utilization rates UT; (ii) heuristic based on queue networks RF. These heuristics consider an utility model based on the SaaS provider profit. The evaluation of such heuristics uses a simulation model that considers an e-commerce workload. In all scenarios evaluated UT and RF presented positive utility values and RF presented the best utility gains compared to a strategy that does not reserve resources. Finally, we discovered that according to the quality of the workload prediction that is used by a SaaS provider a better choice can be done among proposed heuristics. iv
6 A vida é uma peça de teatro que não permite ensaios. Por isso, cante, chore, dance, ria e viva intensamente, antes que a cortina se feche e a peça termine sem aplausos. Charles Chaplin v
7 Agradecimentos Agradeço primeiramente a Deus. Vários foram os momentos vividos durante estes anos e foi por acreditar nele que encontrei forças para superar os obstáculos e procurar sempre aprender com as mais diversas situações. Agradeço enormemente aos meus pais, que investiram e acreditaram em mim desde o meu nascimento e que me mostraram que o conhecimento, a educação, o cultivo aos valores pessoais e a busca por ideais movem a vida de uma pessoa. Acho que dificilmente conseguirei retribuir todo o amor e a força que me deram durante todos estes anos e por isso tenho orgulho de dizer que sou filho deles. Agradeço do fundo do meu coração a minha noiva, Érika. Inúmeros foram os momentos nos quais busquei força em nossas conversas, em nossas brincadeiras, nos sonhos que compartilhamos e no amor que sentimos. Sem dúvida alguma ela é uma peça fundamental para guiar todas as ações que busco tomar em minha vida. Agradeço a minha orientadora, Raquel Vigolvino Lopes, por me deixar muito à vontade para pesquisar em um tema que fosse do meu interesse, por todos os ensinamentos, por todas as conversas e pela amizade que foi cultivada ao longo destes anos. Agradeço muito ao meu irmão de sangue, Lucas, aos meus primos (Amanda, Bruno, Herllen, Talytha e Yohanna), aos meus tios (Herbet e Luísa), a minha sobrinha (Helena) e aos meus amigos que cultivei ao longo da vida, que são meus irmãos por opção: Anderson Trindade, Ana Karolina, Felipe Nóbrega, Guilherme Nóbrega, Mary Alves, Renan Ribeiro, Rennan Melo, Rodolpho Dias, Paulo José, Thiago Tavares, Vanessa Santos. Gostaria de falar o quão importante foram as mais simples atitudes de todos para comigo, porém isto precisaria de uma quantidade enorme de páginas para retratar uma pequena parte deste carinho. Gostaria de agradecer a todos os amigos que fazem o Laboratório de Sistemas Distribuídos (LSD). Alguns já terminaram seus trabalhos e partiram, mas possuem um local especial em meu coração. Agradeço particularmente aos que estiveram mais próximos nos últimos dois anos: Marcus Williams, Lília Sampaio, Ricardo Araújo e Paulo Ditarso, com os quais compartilhei a sala Carvalheira, muitas gargalhadas e muitas conversas; Abmar Granjeiro, vi
8 Antônio Flávio, Carla Araújo, Edigley Fraga, Fábio Jorge, Francisco Brasileiro, Geraldo Sarmento, Giovanni Farias, João Arthur, Lesandro Ponciano, Lívia Sampaio, Patrick Jourdan, Pryscilla Dora e Thiago Emmanuel, que compartilharam várias conversas e contribuíram de diferentes formas para a conclusão do trabalho. Agradecer a todos que ajudaram a construir esta dissertação não é tarefa fácil. O maior perigo que se coloca para o agradecimento seletivo é esquecer de mencionar algúem. Então, a meus amigos que não mencionei acima gostaria de expressar minha profunda gratidão. Todos vocês são co-autores deste trabalho! Por fim, agradeço à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CA- PES) pelo apoio financeiro concedido para a realização desta pesquisa. vii
9 Conteúdo 1 Introdução Contexto Escopo Definição do Problema Objetivos Objetivo Geral Objetivos Específicos Metodologia Contribuições e Resultados Estrutura da Dissertação Fundamentação Teórica e Trabalhos Relacionados Fundamentação Teórica Trabalhos Relacionados Modelo de Utilidade Modelo de Receita de Aplicações SaaS Modelo de Custos dos Provedores de Infraestrutura Função de Utilidade: Lucro do provedor de SaaS Heurísticas de Planejamento de Capacidade Conceitos Gerais Heurística baseada na taxa de utilização dos recursos UT Heurística baseada em Redes de Filas RF viii
10 CONTEÚDO ix 5 Modelo de Simulação Visão Geral do Sistema Componente de Provisão Dinâmica de Recursos Componente de Planejamento de Capacidade Carga de trabalho Execução das Simulações Apresentação e Análise dos Resultados Heurísticas base para comparação Métrica de Avaliação Projeto Experimental Instância do Modelo Análise dos Resultados Viabilidade do planejamento de capacidade Importância Prática Análise de Sensibilidade: Erro de predição Análise das heurísticas Lições aprendidas Recomendações de Uso Considerações Finais Conclusões e Trabalhos Futuros Conclusões Trabalhos Futuros Análise preliminar do fator risco Próximos Passos
11 Lista de Símbolos Tabela de Siglas Notação BDIM CRM DPS EC2 IaaS PaaS PDCA PS RF SaaS SLA TI UT Descrição Gerência de TI Orientada a Negócios Gestão de relacionamento com o Cliente, do inglês Customer Relationship Management Sistema de Provisão Dinâmica de Recursos Nuvem Elástica de Computação da Amazon, do inglês Amazon Elastic Compute Cloud Infraestrutura como Serviço, do inglês Infrastructure as a Service Plataforma como Serviço, do inglês Platform as a Service Planejar, Executar, Verificar e Agir, do inglês Plan, Do, Check and Act Disciplina de Compartilhamento de Unidade de Processamento, do inglês Processor Sharing Heurística de Planejamento de Capacidade Baseada em Rede de Filas Software como Serviço, do inglês Software as a Service Acordo de Nível de Serviço, do inglês Service Level Agreement Tecnologia da Informação Heurística de Planejamento de Capacidade Baseada em Taxa de Utilização de Recurso x
12 xi Tabela de Símbolos Matemáticos Notação A A MIN a n s a s α(d) c s C o ca(n) cv(n) c(n) d j,m D E j Descrição Aplicação ofertada pelo provedor de SaaS Disponibilidade mínimia exigida para a aplicação A Contador de consumo de grãos θ para um recurso de tipo s em um período n Quantidade do recurso de tipo s reservada junto ao provedor de IaaS Custo do provedor de SaaS em um intervalo D Custo de uso de recurso do tipo s junto ao provedor de IaaS Conjunto de tuplas que definem tipos e custos de uso para um recurso ω Custo do provedor de SaaS gerado pelo uso de recursos junto ao provedor de IaaS em um período n Custo do provedor de SaaS gerado pela reserva de recursos junto ao provedor de IaaS em um período n Custo total do provedor de SaaS em um período n Demanda de uma requisição em um recurso r j,m Intervalo de avaliação da aplicação Conjunto de taxas adicionais a serem pagas pelo uso de recursos de um plano p j além dos limiares definidos no conjunto L j e j,m Taxa adicional a ser paga por unidade do recurso r j,m, segundo o plano p j, consumida além do limiar l j,m f s Ij b i b k (n) I j Taxa de reserva de um recurso de tipo s junto ao provedor de IaaS Taxa de configuração do plano p j contratado pelo cliente u k Função que determina a taxa de configuração a ser paga pelo cliente u k em um período n Taxa de uso paga pelo cliente u k, de plano p j, ao provedor de SaaS a cada período τ continua na página seguinte
13 xii Tabela 0.1 continuação da página anterior Notação i τ k (n) i k (n) i(n) ι(d) γ L j Descrição Função que determina a taxa de uso a ser paga pelo cliente u k em um período n Receita gerada por um cliente u k para o provedor de SaaS em um período n Receita gerada por todos os clientes de SaaS para o provedor de SaaS em um período n Receita obtida pelo provedor de SaaS em um intervalo D de avaliação Conjunto de contratos de reserva firmados entre o provedor de SaaS e o provedor de IaaS Conjunto de limiares de uso dos recursos tarifáveis estabelecidos pelo l j,m plano p j Limiar de uso do recurso r j,m estabelecido pelo plano p j M j Multa a ser paga pelo provedor de SaaS, em caso de violação do SLA j, para um cliente de plano p j n b k n e k n b n e n b s n e s O o P p j Período no qual o cliente u k SaaS assinou seu contrato junto ao provedor de SaaS Último período no qual o cliente u k realizou um pagamento para utilizar o sistema Período de início da avaliação da aplicação Período de término da avaliação da aplicação Início da vigência de contrato de reserva de recursos Término da vigência de contrato de reserva de recursos Conjunto de classes de recursos ofertados pelo provedor de IaaS Classe de recurso ofertado pelo provedor de IaaS Conjunto de planos ofertados pelo provedor de SaaS Plano contratado pelo cliente u k junto ao provedor de SaaS continua na página seguinte
14 xiii Tabela 0.1 continuação da página anterior Notação p(n) Q n k R j Descrição Soma de todas as penalidades pagas pelo provedor de SaaS no período n Conjunto de requisições submetidas pelo cliente u k à aplicação durante um período n Conjunto de recursos tarifáveis ofertados pelo provedor de SaaS no plano p j r j,m Recurso tarifável ofertado pelo provedor de SaaS e pertencente ao conjunto R j s SLA j τ T MAX t U u k υ(d) V θ Tipo de recurso da classe o Acordo de nível de serviço para um plano p j Intervalo de tempo durante o qual um cliente SaaS pode fazer uso da aplicação mediante um pagamento Tempo de resposta máximo aceitável para requisições da aplicação A Instante de chegada da requisição aos recursos do provedor de SaaS Conjunto de clientes de SaaS Cliente de SaaS Utilidade (lucro) do provedor de SaaS em um intervalo D Contrato de reserva de recursos Grão de uso de um recurso tarifável no provedor de IaaS Quantum durante o qual uma requisição pode fazer uso de uma CPU
15 Lista de Figuras 1.1 Modelos de organização de infraestrutura para um provedor de SaaS que deseja utilizar recursos adquiridos no mercado de Computação na Nuvem Modelo do Sistema: Visão geral sobre filas e recursos de processamento Modelo do Sistema: Visão geral sobre DPS, Agente de Planejamento e Sistema de Contabilidade Modelo de Simulação Análise de Sensibilidade: Variação do erro de predição da carga de trabalho Quantidade média de núcleos reservados por cada heurística Consumo de núcleos computacionais ao longo do intervalo D de avaliação CDF do percentual de utilização dos recursos CDF do percentual de utilização dos recursos: erro de predição de +40% CDF do percentual de utilização dos recursos: erro de predição de -40%.. 81 xiv
16 Lista de Tabelas 1.1 Definição de problema segundo modelo Goal, Question, Metric Caracterização dos parâmetros relativos ao provedor de IaaS Caracterização dos parâmetros relativos ao provedor de SaaS Caracterização da taxa média de chegada de requisições por plano do provedor de SaaS Caracterização dos parâmetros gerais utilizados na simulação Intervalos de 95% de confiança para melhorias/perdas: erro de predição de -40% Intervalos de 95% de confiança para melhorias/perdas: erro de predição de +40% Intervalos de 95% de confiança para melhorias/perdas: erro de predição de 0% Intervalos de 95% de confiança para ganhos: erro de predição de -40% Intervalos de 95% de confiança para ganhos: erro de predição de +40% Intervalos de 95% de confiança para ganhos: erro de predição de 0% Intervalos de 95% de confiança para ganhos: planejamento ótimo xv
17 Lista de Algoritmos 1 Heurística baseada na taxa de utilização dos recursos Heurística baseada em Redes de Filas: Parte Heurística baseada em Redes de Filas: Parte xvi
18 Capítulo 1 Introdução Neste capítulo, apresentamos o contexto da pesquisa descrita nesta dissertação discorrendo sobre aspectos relacionados à realização da atividade de planejamento de capacidade considerando o ambiente de Computação na Nuvem. Em seguida, apresentamos o escopo da pesquisa realizada, bem como a especificação do problema. Por fim, o capítulo é encerrado com uma descrição dos demais capítulos que compõem esta dissertação. 1.1 Contexto O mercado de Computação na Nuvem tem experimentado um rápido crescimento 1 e atualmente muitas empresas fornecem diversos serviços: (i) recursos virtuais sob demanda, por exemplo, poder computacional e armazenamento; (ii) plataformas que facilitam o desenvolvimento de novas aplicações; (iii) aplicações prontas para uso. Esse novo mercado apresenta um modelo de negócio no qual receitas são obtidas de acordo com o uso dos recursos (do inglês, pay-per-use), de acordo com quantidades de transações realizadas (do inglês, pay-per-transaction) ou ainda de acordo com inscrições (do inglês, pay-per-subscription) [Sääksjärvi, Lassila e Nordström 2005] realizadas pelos clientes dos serviços. Aqueles que promovem este mercado afirmam que alguns dos principais benefícios deste modelo de serviço estão relacionados com o fato dos modelos de cobrança utilizados levarem a reduções nos custos de execução das infraestruturas e/ou serviços de Tecnologia da Informação (TI), 1 Gartner Says Worldwide Cloud Services Market to Surpass $68 Billion in 2010: 1
19 1.1 Contexto 2 bem como com a simplificação da gerência de infraestruturas de TI [Tak, Urgaonkar e Sivasubramaniam 2011]. Além disso, outro grande benefício apresentado é a flexibilidade de se aumentar e diminuir a capacidade dos serviços adquiridos. Como a busca para reduzir o custo total de propriedade de componentes de TI deve continuar, pode-se afirmar que se está vivenciando uma mudança importante na forma como as infraestruturas são montadas, configuradas e gerenciadas. Os serviços oferecidos no mercado de Computação na Nuvem são, tipicamente, classificados em diferentes níveis, porém não há um consenso sobre esta classificação. A classificação proposta em [Vaquero et al. 2008] é o estado da prática e divide os serviços em: Infraestrutura como Serviço (do inglês, Infrastructure as a Service IaaS) [Vogels 2008]: este tipo de serviço oferece recursos computacionais como processamento e armazenamento de dados para que as empresas possam montar sua infraestrutura de TI. A base para a oferta desses recursos é a utilização das tecnologias de virtualização. Os provedores deste tipo de serviço oferecem a possibilidade de reserva de recursos para um longo prazo (mercado de reservas), ou, ainda, a aquisição de recursos no curto prazo (mercado sob demanda). Os exemplos de provedores de IaaS mais conhecidos são o Amazon (através do serviço Amazon Elastic Compute Cloud 2 ), RackSpace 3, GoGrid 4 e Cloud Sigma 5 ; Plataforma como Serviço (do inglês, Platform as a Service PaaS) [Lawton 2008]: este tipo de serviço oferece ferramentas para auxiliar desde o desenvolvimento de aplicações até a manutenção do ciclo de vida delas. Exemplos de soluções na modalidade PaaS são Google App Engine 6 e Microsoft Azure 7 ; Software como Serviço (do inglês, Software as a Service SaaS) [Jacobs 2005]: este tipo de serviço oferece aplicações prontas para um cliente. Alguns exemplos conhecidos de aplicações que são ofertadas no modelo SaaS são aplicações de Customer Re
20 1.1 Contexto 3 lationship Management (CRM) 8 9, editores de texto como o Google Docs 10 e soluções de comércio eletrônico desenvolvidas pelas empresas BigCommerce 11 e Volusion 12. A oferta de aplicações no modelo SaaS vem atraindo provedores tanto no mundo acadêmico como no mundo comercial. No mundo acadêmico, demandas como processamento de texto e tabelas, envio de mensagens de correio eletrônico, processamento e análise de dados de simulação e transferência de arquivos vêm sendo atendidas, respectivamente, por soluções como Google Docs, Gmail, Hotmail, R-php 13 e Globus Online 14. No mundo comercial soluções vêm sendo desenvolvidas por diversas empresas como a SalesForce 15 e SugarCRM 16, que oferecem soluções de CRM, e por empresas como a BigCommnerce 11, que oferece uma solução de comércio eletrônico. Para oferecer software como um serviço com base nos demais serviços existentes no mercado de Computação na Nuvem, os provedores de SaaS podem organizar sua infraestrutura segundo dois modelos básicos (vide Figura 1.1): (a) Modelo SaaS, PaaS, IaaS (b) Modelo SaaS, IaaS Figura 1.1: Modelos de organização de infraestrutura para um provedor de SaaS que deseja utilizar recursos adquiridos no mercado de Computação na Nuvem
21 1.1 Contexto 4 1. Modelo SaaS + PaaS + IaaS, Figura 1.1(a) [Buyya, Broberg e Goscinski 2011]: neste modelo uma aplicação SaaS é desenvolvida com base na utilização de serviços ofertados por um provedor de PaaS, delegando para este a gerência dos recursos computacionais; 2. Modelo SaaS + IaaS, Figura 1.1(b) [Namjoshi e Gupte 2009]: neste modelo um provedor de SaaS desenvolve sua aplicação utilizando diretamente provedores de IaaS. Neste modelo, o provedor de SaaS é responsável por gerenciar o conjunto de recursos necessários para sua solução. Especialmente quando o Modelo SaaS + IaaS é usado, a forma como o provedor de SaaS adquire recursos de um ou mais provedores de IaaS e a forma como estes recursos são utilizados impactam diretamente no custo de manter o serviço e na qualidade do serviço oferecido, influenciando, por consequência, o lucro do provedor de SaaS. A gerência de quais recursos devem ser adquiridos no provedor de IaaS para executar o serviço é uma decisão do provedor de SaaS que envolve diferentes mercados para aquisição destes recursos e diferentes tipos de decisão. Os recursos a serem requisitados em um provedor de IaaS podem ser adquiridos em dois mercados: (i) mercado de reservas; (ii) mercado sob demanda. No mercado de reservas, o cliente do IaaS paga inicialmente uma taxa de reserva com certa antecedência (e.g., um ano) para ter os recursos a sua disposição por um longo período futuro (e.g., da ordem de anos). Esta taxa de reserva é proporcional à quantidade de recursos reservados. Os recursos reservados podem ser requisitados pelos clientes quando eles desejarem e, nesta ocasião, uma outra taxa com valor tipicamente muito pequeno, a taxa de uso, é cobrada pelo uso efetivo dos recursos previamente reservados. Uma vez que o recurso foi reservado, o provedor de IaaS não pode negar ao cliente o uso do recurso, caso contrário estará sujeito ao pagamento de grandes penalidades/multas a seus clientes. A Amazon é a principal empresa praticante deste mercado através do serviço Amazon EC2 17, porém outras empresas, como a GoGrid, praticam este mercado de reservas com algumas diferenças em relação ao mercado da Amazon. Neste serviço, a opção de reserva, se bem usada 18, permite a economia de até 58% em Recursos são bem usados no mercado de reservas quando a taxa efetiva de utilização dos mesmos ul-
22 1.1 Contexto 5 relação à utilização de recursos do mercado sob demanda 19. Atualmente as empresas que praticam este mercado de reservas permitem apenas a reserva de recursos de processamento. No mercado sob demanda, o cliente do provedor de IaaS solicita instâncias imediatamente antes de usá-las, sem ter a necessidade de realizar uma reserva prévia. Neste mercado a taxa paga pelos clientes em relação ao uso efetivo dos recursos é superior à taxa de uso paga no mercado de reservas. O provedor de IaaS tipicamente limita a quantidade de instâncias simultâneas que um dado cliente pode solicitar e mesmo que o número de instâncias solicitadas esteja dentro deste limite, é aceitável que o provedor de IaaS negue recursos ao cliente em um momento de contenção. Isto significa que nem sempre é possível obter as instâncias de recursos desejadas no mercado sob demanda no momento desejado. O mercado de reservas oferece benefícios financeiros, bem como benefícios relacionados à qualidade de serviço, contanto que as reservas sejam realizadas para um longo período futuro, tipicamente um ou três anos. À medida que recursos são utilizados para execução da aplicação novas reservas podem ser realizadas para ampliar o total de recursos disponíveis, neste caso múltiplas reservas estariam firmadas entre o provedor de SaaS e o provedor de IaaS. Devido à existência destes dois mercados, a execução de uma aplicação implica em dois tipos de decisão: (i) o estabelecimento de contratos de reservas para longos períodos futuros; (ii) a requisição de recursos para atendimento da demanda da aplicação. A atividade de planejamento e estabelecimento de contratos de reservas para longos prazos futuros é denominada de planejamento de capacidade de longo prazo. A atividade de avaliação e requisição de recursos para execução da aplicação em um curto prazo é denominada de planejamento de capacidade de curto prazo, escalonamento ou provisão dinâmica de recursos. Por convenção esta dissertação referencia o planejamento de capacidade de longo prazo como planejamento de capacidade e o planejamento de capacidade de curto prazo como provisão dinâmica de recursos. Ao optar por realizar reservas de longo prazo junto ao provedor de IaaS o provedor de SaaS deve avaliar a viabilidade financeira de se realizar tais reservas e decidir a quantidade trapassa um certo patamar, que depende dos preços de reserva e uso destes recursos e dos preços de uso no mercado sob demanda. Atualmente, na Amazon, só vale a pena reservar um recurso se ele vier a ser usado durante pelo menos 20% do tempo reservado. 19
23 1.1 Contexto 6 de recursos a serem reservados. É importante destacar que o planejamento de capacidade lida com uma incerteza inerente uma vez que se está realizando o planejamento de um longo prazo futuro (e.g., um ano ou períodos maiores) para atender uma carga de trabalho estimada para o futuro. Uma das formas de lidar com esta incerteza é considerar, durante a fase de planejamento, que se a quantidade de recursos reservados não for suficiente para atender a demanda da aplicação em um certo instante, recursos adicionais podem ser adquiridos no mercado sob demanda. Ou seja, um planejamento de capacidade pode considerar o uso dos dois mercados acima de forma complementar para a execução da aplicação. No momento em que a aplicação vai ser efetivamente executada, deve existir um sistema de provisão dinâmica de recursos [Ranjan et al. 2002] [Urgaonkar et al. 2008] [Lee et al. 2010] [Kwok e Mohindra 2008] [Zhu et al. 2011] [Bi et al. 2010] [Chi, Qian e Lu 2011] que decide sobre a quantidade de recursos que deve ser requisitada junto ao provedor de IaaS e, posteriormente, cedida à aplicação em um curto intervalo de tempo para que a demanda atual da aplicação possa ser atendida. Pode-se chamar este sistema de escalonador, ou planejador de capacidade de curto prazo. O planejamento de capacidade que deve ser realizado pelos provedores de SaaS envolve as seguintes questões: é interessante para o negócio (visão do provedor de SaaS) reservar recursos no mercado de reservas? Quantos recursos e de que capacidade devem ser reservados? O cenário de Computação na Nuvem requer que o planejamento de capacidade seja realizado com base em métricas de negócio (e.g., lucro obtido pelo provedor de SaaS) e não baseado apenas em métricas técnicas, como tempo de resposta ou taxa de rejeição de serviço. O planejamento de capacidade baseado em métricas de negócio deve conhecer a ponte que faz a ligação entre as decisões técnicas e o impacto destas para o negócio em termos de receitas e perdas. Assim como nos ambientes Web tradicionais, a atividade de planejamento de capacidade precisa lidar com a incerteza inerente às variações futuras nas cargas de trabalho das aplicações. Porém, o planejamento de capacidade específico para aplicações SaaS que serão executadas sobre recursos de provedores de IaaS possui diferenças em relação ao planejamento realizado para as aplicações Web anteriores que lidavam com as infraestruturas tradicionais. Primeiramente, o ambiente de Computação na Nuvem tem como forte argumento a redução de custos para seus clientes dado que só se paga pelo montante usado dos recursos. Como
Anais 571 Planejamento de Capacidade a Longo Prazo Dirigido por Métricas de Negócio para Aplicações SaaS David Candeia 1, Raquel Lopes 2, Ricardo Araújo Santos 2 1 Instituto Federal de Educação, Ciência