Padrões de carga de computação

Concluído

Se o tráfego para um recurso de nuvem (como uma VM, um conjunto de VMs ou um aplicativo Web) fosse constante e inalterável, não haveria necessidade de dimensionar. Um administrador de nuvem pode simplesmente provisionar o número de instâncias necessárias para lidar com a carga e ponto final. Mas os padrões de tráfego mudam ao longo do tempo, às vezes de maneira previsível, ás vezes não. No mundo real, os administradores precisam diagnosticar a carga sobre os recursos que gerenciam e usar o dimensionamento para garantir que o sistema possa acompanhar a demanda.

Antes de discutirmos como dimensionar, discutiremos por que dimensionamos, dividindo alguns dos padrões comuns de carga que as VMs e outros recursos de nuvem experimentam.

Crescimento consistente

Um dos motivadores mais comuns para a necessidade de dimensionar é o crescimento consistente na demanda. A Figura 1 mostra o tráfego para o site da empresa durante um período de 24 meses. A empresa está crescendo rapidamente e o tráfego para seu site reflete isso. Se presumirmos que um servidor Web possa lidar com 5.000 solicitações por unidade de tempo, a empresa começará com, talvez, três ou quatro servidores Web, mas em questão de mais dois anos, precisará de 20 deles para acompanhar a demanda crescente e continuar atendendo bem seus clientes.

Figura 1: Crescimento consistente.

Figura 1: Crescimento consistente.

O crescimento consistente está entre os padrões de carga pelos quais é mais fácil compensar, porque a alteração é contínua e gradual. Provavelmente, podemos dimensionar usando servidores físicos, já que podemos prever quando o próximo servidor (ou conjunto de servidores) será exigido e ter semanas, se não meses, para preparação. No entanto, a computação em nuvem nos permite colocar novos servidores virtuais online em questão de minutos. E embora a tendência de 24 meses mostre um crescimento estável e previsível, as cargas podem flutuar substancialmente dentro de períodos de tempo menores. A computação em nuvem é muito mais adaptável a microtendências do que o dimensionamento com servidores físicos.

Cargas em flutuação constante

A elasticidade rápida oferecida pela computação em nuvem é essencial quando as cargas flutuam de maneira imprevisível em períodos de tempo relativamente curtos. A Figura 2 mostra a carga em um site da Web em um período de 24 horas. Supondo novamente que um servidor possa lidar com 5.000 solicitações por unidade de tempo, o número de servidores necessários varia de dois a 16 ao longo do dia. Poderíamos acomodar esse tráfego mantendo 16 servidores Web virtuais sempre online, mas lembre-se de que os provedores de serviço de nuvem cobram pelas VMs mesmo quando estão ociosos. A capacidade em excesso não apenas gastaria energia, mas aumentaria o custo para um valor próximo do dobro.

Figura 2: Carga em flutuação constante.

Figura 2: Carga em flutuação constante.

Cargas cíclicas

A Figura 3 mostra uma carga que aumenta e diminui em um padrão regular e um pouco previsível. Por exemplo, a demanda aumenta durante o horário de trabalho e cai novamente durante o anoitecer e o restante da noite. Em seu pico, essa carga exige cerca de 20 servidores para lidar com a demanda, novamente supondo 5.000 solicitações por unidade de tempo por servidor. Não é possível realizar um rodízio de servidores físicos 24 horas por dia, mas os servidores virtuais podem ser facilmente provisionados e desprovisionados segundo um agendamento, a fim de garantir que a capacidade do servidor seja aproximadamente igual à demanda. Servidores físicos que ficam ociosos ou pouco utilizados 12 horas por dia representam gasto de capital indesejado e consumo de energia desnecessário. Os servidores virtuais também têm um custo, mas podem ser desprovisionados quando não forem necessários e recriados rapidamente quando a demanda assim exigir.

Figura 3: Carga cíclica que se repete a cada 24 horas.

Figura 3: Carga cíclica que se repete a cada 24 horas.

Intermitências imprevisíveis

Um dos padrões mais difíceis de lidar sob um ponto de vista de custo e manutenção é aquele que incorre em intermitências imprevisíveis (Figura 4). Se os picos forem previsíveis, por exemplo, se o site da Web atender a um serviço de entrega de pizza que apresenta cargas maiores em fins de semana e feriados, o provisionamento de capacidade extra poderá ser planejado. Mas, se esses picos não forem previsíveis, devemos estar preparados para lidar com eles a qualquer momento.

Figura 4: Intermitências imprevisíveis.

Figura 4: Intermitências imprevisíveis.

Podemos prever custos excessivos (o custo dos servidores provisionados para lidar com picos de carga, mas que são relativamente ociosos durante os horários de tráfego menor) como a área entre a parte superior da curva e uma linha horizontal desenhada cruzando o ponto mais alto. Nesse caso, o custo de fornecer capacidade para 100.000 solicitações por unidade de tempo para a carga na Figura 4 é consideravelmente maior do que o custo de fornecer uma capacidade equivalente na Figura 3.

Se pudermos prever a magnitude da demanda de pico (não necessariamente o momento em que ela ocorre) e não nos preocuparmos com os custos, poderemos fornecer a capacidade adequada o tempo todo, provisionando servidores suficientes para lidar com as cargas mais altas. A computação em nuvem nos permite colocar os recursos online quando eles são necessários e, quando não são, colocá-los offline (e parar de incorrer em encargos para eles). A elasticidade é promovida pelo dimensionamento de recursos de nuvem. Vamos examinar o conceito de dimensionamento mais detalhadamente e ver por que ele é um fator fundamental na economia da computação em nuvem.

Verificar seu conhecimento

1.

Suponha que um servidor possa lidar com 5.000 solicitações por unidade de tempo e que um site tenha cargas que variem de maneira relativamente uniforme, de 5.000 a um pico de 25.000. O site é hospedado na nuvem usando máquinas virtuais e cada VM custa US$ 4 por dia. Qual é a diferença anual aproximada do custo entre fornecer capacidade elástica dimensionada para atender à demanda e à capacidade constante dimensionada para lidar com os picos de carga?