DevSecOpsARTIGO

Segredo do Sucesso da Nuvem: Planejamento de Capacidade Flexível

Como parte do movimento para um ambiente de computação em nuvem, as
empresas usam processos e ferramentas de planejamento para alcançar
reduções de custo, melhorar a velocidade da implementação de sistemas e
melhorar a disponibilidade dos mesmos. Esses processos e ferramentas
fornecem aos administradores de sistema as informações necessárias para
gerenciar seu ambiente e planejar futuras necessidades de computação.

Uma promessa da computação em nuvem é que a virtualização reduzirá o
número de servidores necessários, levando a reduções de hardware,
licenças de software, energia e manutenção. Por isso é crítico
identificar a quantidade ideal de infraestrutura de nuvem necessária
para atender as necessidades esperadas dos clientes e usuários. Com
poucos recursos de computação, as solicitações dos usuários devem
aguardar até eles ficarem livres, ou essas solicitações serão
rejeitadas até que mais hardware sejam adicionados ao ambiente. Com muitos
recursos, os custos de hardware e outras despesas contradizem as
promessas de redução de custo da computação em nuvem.

Os administradores de sistema deverão responder cinco perguntas para
alcançar o planejamento bem-sucedido de um ambiente em nuvem:

  1. Qual é a quantidade de capacidade disponível no centro de dados?
  2. Qual é a quantidade de capacidade disponível que está sendo consumida atualmente?
  3. Quando essa capacidade ficará livre?
  4. Qual é a previsão de novas solicitações?
  5. Qual é o retorno sobre investimento?

Este artigo apresenta conceitos para ajudá-lo a entender a capacidade
da nuvem e como fazer cálculos para ela. Também apresenta uma
ferramenta, a IBM® Infrastructure Planner for
Cloud Computing, pode ajudá-lo a alcançar os objetivos principais da
mudança para computação em nuvem.

Entendendo a capacidade da nuvem

Um ambiente de computação em nuvem é composto de servidores físicos que
contêm recursos que podem ser compartilhados por muitos usuários e
aplicativos. Cada servidor tem armazenamento em disco e uma, ou mais
unidades centrais de processamento com memória. Como os ambientes de
nuvem são virtualizados, uma fração do total de CPU, memória e
armazenamento em disco é alocada para cada solicitação do usuário. Essa
locação fracionada de recursos garante o máximo de flexibilidade.

Por exemplo, alguns aplicativos precisam de muito armazenamento em
disco, mas de pouca energia da CPU. Outros têm o requisito oposto —
muito uso de CPU e pequena quantia de armazenamento. A computação em
nuvem permite aos usuários especificar a quantia de cada recurso do
sistema necessário para seu aplicativo.

Um ambiente de computação em nuvem é composto de servidores físicos que
contêm recursos que podem ser compartilhados por muitos usuários e
aplicativos. Cada servidor tem armazenamento em disco e uma ou mais
unidades centrais de processamento com memória. Como os ambientes de
nuvem são virtualizados, uma fração do total de CPU, memória e
armazenamento em disco é alocada para cada solicitação do usuário. Essa
locação fracionada de recursos garante o máximo de flexibilidade.

Por exemplo, alguns aplicativos precisam de muito armazenamento em
disco, mas de pouca energia da CPU. Outros têm o requisito oposto —
muito uso de CPU e pequena quantia de armazenamento. A computação em
nuvem permite aos usuários especificar a quantia de cada recurso do
sistema necessário para seu aplicativo.

Cálculo central: definindo CPUs virtuais

Ao planejar um ambiente em nuvem, lembre-se que uma CPU do sistema não é o mesmo que uma CPU virtualizada.
Geralmente é difícil comparar a energia de processamento dos sistemas
modernos. Por exemplo, os sistemas fabricados no ano passado muito
provavelmente contêm processadores mais lentos do que os sistemas
fabricados este ano. Os sistemas mais novos também têm CPUs com diversos
núcleos.

Para facilitar o desafio de alocação precisa de recursos do sistema e de
planejamento de capacidade, alguns ambientes de nuvem padronizaram uma
unidade de CPU em nuvem igual à energia de processamento em uma CPU de 1
GHz. Quando um usuário solicitar duas CPUs, por exemplo, receberá a
energia de processamento de duas CPUs de 1 GHz. Isso significa que um
sistema com duas CPUs, cada uma com quatro núcleos, executando a 3 GHz
terá o equivalente a 24 unidades de CPU:

Ex.: 2 CPUs x 4 núcleos x 3 GHz = 24 unidades de CPU

Esse cálculo é útil porque os usuários podem planejar o número de CPUs
que precisam e ter uma expectativa razoável de desempenho; e os
administradores podem compartilhar com mais facilidade os recursos
fornecidos por um sistema através de diversas solicitações. A capacidade
de CPU total pode ser calculada somando as unidades de CPU disponíveis
no ambiente.

Uma observação de cuidado: Ao comparar unidades de CPU
de nuvem em plataformas diferentes, a energia de processamento de uma
CPU de 1 GHz em um sistema de processador™ IBM PowerVM não é o mesmo que
1 GHz em um processador®baseado em Intel. Para obter resultados
precisos, compare processadores somente dentro da mesma plataforma.

Que impacto as CPUs físicas exercem?

O número de CPUs físicas disponíveis nos sistemas é uma outra
consideração do planejamento de capacidade. Uma nuvem pode ter 100
unidades de CPU disponíveis, mas se o sistema mais poderoso na nuvem
tiver somente 20 unidades de CPU física, isso se torna um limite para
uma solicitação de máquina virtual.

Balanceando CPUs com memória e armazenamento

Lembre-se que potência de CPU não é o único fator para se conseguir
planejamento de capacidade bem-sucedido. Embora o planejamento de
capacidade envolva decisões sólidas sobre o número de CPUs, também
envolve balanceamento das informações de CPU com a quantia de memória e
armazenamento em disco adquirido para cada sistema.

Por exemplo, adquirir um sistema com 24 unidades de CPU de energia de
processamento e somente 2 GB de memória faz pouco sentido em um ambiente
em nuvem. Nesse caso, quando um usuário solicitar uma máquina virtual
com duas CPUs e 2 GB de memória, o servidor será alocado inteiramente para atender essa única solicitação.
As 22 unidades de CPU não alocadas permaneceriam indisponíveis para
outros usuários e, portanto, inativas durante a vida dessa solicitação.

Faz sentido balancear corretamente os recursos do sistema ao fazer compras de hardware para o ambiente de nuvem.

A maneira de solicitar o serviço de TI exerce um impacto

Um objetivo principal do planejamento de capacidade é garantir que a
capacidade de TI tenha o tamanho certo no momento certo, seja esse
momento agora, amanhã ou daqui a 20 anos. Assim, uma ferramenta
importante para ativar o planejamento de capacidade efetivo é a
observação da maneira como as solicitações de serviços de TI chegam ao
centro de dados. 

A visualização tradicional

Nos centros de dados tradicionais, os administradores de sistema recebem
solicitações de recursos de TI dos engenheiros de software para futuros
projetos de desenvolvimento. Os administradores tipicamente fazem uma
revisão das solicitações de TI semanalmente para determinar quais
recursos estão disponíveis e quais projetos têm prioridade mais alta. As
solicitações dos projetos de prioridade mais alta geralmente são
atendidas em primeiro lugar.

Em muitos casos, os centros de dados tradicionais podem atender às
solicitações de alta prioridade em apenas três semanas após ser tomada a
decisão de alocar os recursos. No entanto, se os recursos de TI
precisarem ser comprados, o processo pode levar meses.

Os projetos que estão embaixo na lista de prioridades poderão ter de
aguardar um longo tempo, dependendo da disponibilidade de orçamento e
recursos. Em alguns casos, as solicitações desses projetos de baixa
prioridade simplesmente não são atendidas!

Devido a esse processo longo e incerto, os usuários ficam condicionados a solicitar o máximo de recursos de computação que conseguirem obter.
Infelizmente, essas solicitações geralmente são maiores do que os
usuários realmente precisam. Uma vez fornecidos, esses recursos são
guardados com ciúme e quando o projeto termina, os recursos tipicamente
não são cedidos, a menos que os usuários sejam forçados a fazê-lo. Essa
atitude pode ser entendida dentro das limitações do paradigma de TI
tradicional. Afinal, o sucesso do projeto atual, assim como do próximo,
depende de ter recursos de TI suficientes.

Mas a lição triste desse modelo tradicional é clara: recursos em excesso
geralmente chegam tarde no ciclo de desenvolvimento, afetando a
produtividade e a competitividade. Quando o projeto termina, esses
mesmos recursos, agora acumulados pelos usuários, passam a ser
subutilizados e a capacidade é desperdiçada.

A visualização das nuvens

A computação em nuvem apresenta um cenário bastante diferente:

  • Os desenvolvedores acessam um Web site onde podem inserir sua
    solicitação de recursos de TI — servidores, software, armazenamento etc;
  • Os usuários ficam sabendo imediatamente se os recursos estão disponíveis;
  • Se os recursos estiverem disponíveis, a solicitação pode ser enviada
    imediatamente e encaminhada automaticamente para a aprovação do
    administrador da nuvem;
  • Como o processo é automatizado, as solicitações geralmente são atendidas dentro de uma hora;
  • Quando o projeto termina, ou reduz a intensidade, os desenvolvedores
    que usam a nuvem não mais acumulam os recursos de computação, sabendo
    que podem acessar os mesmos recursos de modo rápido e fácil no futuro
    quando a necessidade surgir;

Nos projetos futuros, os desenvolvedores que usam a nuvem irão, do mesmo
modo, solicitar somente os recursos que precisam, em vez de pedir além da
necessidade, como estão condicionados a fazer com a entrega tradicional
de recursos de TI. Além disso, os usuários da nuvem tipicamente devem
especificar uma data de encerramento do projeto; a menos que essa data
seja prorrogada, os recursos da nuvem são retornados automaticamente
nessa data ao conjunto de recursos disponíveis. Assim, mesmo se os
recursos não forem liberados intencionalmente pelo usuário, ainda irão
ficar disponíveis para serem usados por outros.

Do ponto de vista de um administrador, um ambiente de nuvem transforma
um processo manual demorado em um processo de aprovação automatizado de
um clique. Informações sobre a disponibilidade de infraestrutura e
recursos da nuvem do centro de dados são fornecidas quase em tempo real,
dando ao administrador uma visão imediata da capacidade total e dos
recursos restantes do ambiente.

Determinando as necessidades de recursos

Vamos examinar as necessidades de recursos usando um cenário de organização de desenvolvimento comum:

Uma empresa está implementando um novo ambiente de nuvem na sua
organização de desenvolvimento e teste que consiste em 150 engenheiros
de software. Muitos dos engenheiros de software desenvolvem software, 40
executam garantia de qualidade de software e 10 são responsáveis pela
execução e manutenção do ambiente de produção.

Qual deveria ser o tamanho da nuvem para atender às necessidades de
computação dessa organização? Precisamos de duas informações importantes
para responder essa pergunta (que se decompõe em subunidades de
informações, naturalmente): os requisitos dos usuários e os recursos do
sistema. Sua aparência é semelhante a isto:

  1. Requisitos dos usuários:
    1. Média de requisitos de recursos para os desenvolvedores de software
      1. Dois VMs por desenvolvedor em média
      2. CPU: 6 unidades de CPU, 2 GB de memória, armazenamento em disco = 100 GB
      3. Ambiente necessário durante 90 dias em média
    2. Média de requisitos de recursos para os engenheiros de garantia de software
      1. Três VMs por desenvolvedor em média
      2. CPU=4 unidades de CPU, memória = 2 GB, armazenamento em disco = 50 GB
      3. Ambiente necessário durante 30 dias em média
    3. Média de requisitos de recursos para o ambiente de produção
      1. Um VM por ambiente de aplicativos
      2. CPU = 12 unidades de CPU, memória = 16 GB, armazenamento em disco = 500 GB
      3. Ambiente necessário durante um ano em média
  2. Recursos do sistema:
    1. Sistema usado: IBM BladeCenter® servidores blade HS22 8 vias 2,8 GHz
    2. Memória por servidor: 48 GB
    3. Armazenamento em disco por servidor: 1.200 GB

A figura abaixo mostra que o planejamento de capacidade estima que são
necessários, em média, 113 sistemas. Para garantir que o ambiente tenha
recursos disponíveis para atender todas as solicitações 100% do tempo, o
planejamento recomendaria 124 servidores. Assim, o planejamento de
capacidade pode determinar o número de sistemas necessários para
suportar essa organização (mais adiante no artigo será apresentado uma
ferramenta de planejamento de capacidade, a IBM Infrastructure Planner
for Cloud Computing, para tornar mais simples a tarefa de planejamento. A imagem na figura a seguir mostra os resultados de planejamento da ferramenta para esse cenário).

Melhorando a capacidade por meio da virtualização

Antes de apresentarmos a ferramenta IBM Infrastructure Planning, vamos ver como a virtualização pode melhorar a capacidade.

Um problema comum para os administradores de centros de dados
tradicionais é a baixa utilização de recursos de TI, muitas vezes tão
somente 10 a 20%. Isso é dizer que, em média, 80% a 90% da energia de
computação de um servidor não é utilizada. Por isso, solicitar recursos
adicionais é um desperdício em uma situação tradicional.

Além disso, os centros de dados geralmente têm espaço limitado para seus
sistemas no piso elevado, de modo que se uma empresa tiver os recursos
financeiros para comprar mais equipamento, pode não ter os recursos
físicos para incluir mais sistemas.

Em contraste, a virtualização, que é um componente principal da
computação em nuvem, faz parecer que um sistema é muitos servidores
individuais. Com essa tecnologia, um hypervisor executando em cima do
sistema operacional do computador host permite que diversos sistemas
operacionais sejam executados simultaneamente. Em vez de desperdiçar 80%
de valiosos recursos de computação, como acontece nos ambientes de
computação tradicionais, o hypervisor garante que cada servidor opere no
nível produtivo mais eficiente. Suas deficiências são mais pronunciadas
ainda nos sistemas de processadores de alto desempenho com diversos
núcleos, com grandes quantias de memória e armazenamento em disco.

A virtualização dá aos administradores de nuvens a capacidade de tratar mais solicitações com menos sistemas.

Mundo real, tendências reais

É sempre possível prever melhor o futuro quando se entende o passado. No caso
de planejamento de capacidade, é mais fácil prever as necessidades de
computação de uma organização se houver uma imagem clara do consumo de
recursos de TI durante os seis meses anteriores. As tendências e padrões
históricos de uso permitem a um gerente de TI estimar quando os
recursos devem ser adicionados e quantos recursos serão necessários.

Por exemplo:

  • Os sites de compras on-line sabem que nos período de festas de fim de ano há um pico de visitantes ao Web site;
  • Também sabem quais itens são mais populares durante a correria das festas;
  • Nessa época também ocorre um aumento correspondente do número de visitas de acompanhamento para verificar o status dos pedidos;

O aumento de tráfego se traduz em solicitações de mais recursos de
computação durante os dois últimos meses do ano; no entanto, o tráfego
de usuários tende a voltar ao normal após o início do ano.

Conhecer os padrões ajuda um administrador a planejar melhor para futuros picos sazonais.
Plotar o tráfego com relação ao tempo ajuda a separar os picos reais de um possível aumento geral do tráfego da Web.

Demanda que muda ao longo do tempo é considerada uma tendência em vez de um
pico.

Considere este cenário: uma empresa de sucesso precisa de mais recursos
para facilitar o crescimento. O administrador usa informações da taxa de
crescimento de TI para prever a necessidade de recursos adicionais,
permitindo que esses recursos sejam solicitados em tempo hábil. Em um
ambiente de computação em nuvem bem-gerenciado, esse recurso é fornecido
de maneira automática. O ambiente é capaz de atender as necessidades
atuais porque, por natureza, é um modelo de fornecimento de TI elástico.

Saber a taxa em que a demanda está crescendo é importante. Usando as
ferramentas de nuvem, é possível estimar, com base nas tendências de
crescimento, quando serão necessários mais recursos. Com essas
informações o gerente pode estimar melhor a capacidade adicional
necessária e quando será necessária.

Para obter uma previsão mais acertada, os administradores precisam monitorar as seguintes informações:

  • Número de solicitações dos usuários;
  • Número de máquinas virtuais solicitadas;
  • CPU alocada, memória e capacidade do disco;
  • Consumo real de CPU, memória e capacidade do disco;
  • Capacidade total da nuvem;

É importante entender o relacionamento entre recursos alocados e recursos consumidos.
Se a experiência for a referência, os usuários provavelmente
solicitarão mais recursos do que realmente precisam. Isso faz com que
seja razoável o administrador considerar reduzir a quantia de CPU
alocada, por exemplo, se a utilização de CPU por uma máquina virtual
específica for consistentemente igual ou inferior a 10%.

A figura a seguir  ilustra a maneira como os dados de tendência podem ser usados para decisões de planejamento de capacidade.

Na figura você pode ver:

  • Capacidade total de CPU (a linha azul);
  • CPU alocada (a linha vermelha);
  • Recursos de CPU atualmente usados (a linha verde);

A capacidade total de CPU até setembro foi 500 unidades de CPU. Em
outubro, 300 unidades de CPU adicionais ficaram disponíveis quando mais
sistemas foram adicionados ao ambiente. A linha alocada mostra que
capacidade de CPU está sendo adicionada de maneira consistente com base
nas solicitações dos usuários (um cenário típico dos novos centros de
computação em nuvem).

A linha de capacidade usada mostra a quantia desses recursos que está
sendo realmente usada. Embora as solicitações de recursos de CPU estejam
em uma curva íngreme, o uso real permanece em torno de 100 unidades de
CPU. Usando essas informações, o administrador pode tomar uma decisão
sobre quanto dos recursos de TI pode ser compromissado. Ou seja, o
administrador pode decidir prometer o fornecimento de mais de 100% dos
recursos disponíveis quando as solicitações de recursos for para mais de 100% dos recursos disponíveis, mas a demanda de recursos do usuário
a qualquer momento for para menos de 100% dos recursos disponíveis.
Neste exemplo, uma quantia substancial de recursos de CPU poderia ser
compromissada em excesso e ainda atender à demanda dos usuários.

Também é possível ver que acompanhando a linha de tendência alocada,
parecia justificável incluir os recursos que foram adicionados em
outubro. No entanto, a linha de tendência usada conta uma história
diferente — mostra que mesmo nesse limite de capacidade total do sistema
de 500 antes das adições de outubro, havia capacidade suficiente para
atender às demandas dos usuários.

Monitoramento e relatório automatizados dos recursos da nuvem tornam a
localização de tendência e o planejamento de capacidade mais fáceis e
mais precisos. As ferramentas que executam essas tarefas (como a IBM
Infrastructure Planner for Cloud Computing) geralmente valem seu peso em
ouro porque agilizam o processo e permitem ao administrador fornecer
com rapidez os recursos necessários.

Conclusão

Gerenciamento da capacidade é uma atividade vital no contexto da
computação em nuvem. Executado de maneira correta, o planejamento de
capacidade fornece aos usuários os recursos de computação necessários
para criar soluções inovadoras e atender os objetivos de desempenho de
um aplicativo de negócios, ao mesmo tempo em que contribui para os
objetivos financeiros de uma organização.

Os servidores atuais de diversos núcleos e alto desempenho possuem
grandes quantias de memória e imensas capacidades de armazenamento em
disco que podem ser totalmente utilizadas melhor usando as tecnologias
de virtualização que constituem um componente principal da computação em
nuvem. Esse ambiente de TI rico em recursos conduz a maneiras novas e
melhores de planejar a alocação de recurso ideal.

Os ambientes de computação em nuvem possibilitam fácil acesso aos
recursos de computação. Com planejamento cuidadoso, um ambiente em nuvem
pode criar a aparência de fornecimento interminável de recursos de
computação. As organizações que empregam o conjunto certo de processos
para monitorar e planejar o uso de recursos de TI podem se posicionar
para colher os benefícios prometidos da computação em nuvem.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

é o portal de tecnologia da IBM para profissionais de TI de todo o mundo. Colabore, aprenda a criar aplicativos inovadores e compreenda tecnologias avançadas. Acesse mais artigos e tutoriais em www.ibm.com/developerworks/br

Ver perfil