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 sistemas. 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é os recursos ficarem livres ou essas solicitações serão rejeitadas até mais hardware ser adicionado 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:
- Qual é a quantidade de capacidade disponível no centro de dados?
- Qual é a quantidade de capacidade disponível que está sendo consumida atualmente?
- Quando essa capacidade ficará livre?
- Qual é a previsão de novas solicitações?
- 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.
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:
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.
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 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 uso 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:
- Requisitos dos usuários
- Média de requisitos de recursos para os desenvolvedores de software
- Dois VMs por desenvolvedor em média
- CPU: 6 unidades de CPU, 2 GB de memória, armazenamento em disco = 100 GB
- Ambiente necessário durante 90 dias em média
- Média de requisitos de recursos para os engenheiros de garantia de software
- Três VMs por desenvolvedor em média
- CPU=4 unidades de CPU, memória = 2 GB, armazenamento em disco = 50 GB
- Ambiente necessário durante 30 dias em média
- Média de requisitos de recursos para o ambiente de produção
- Um VM por ambiente de aplicativos
- CPU = 12 unidades de CPU, memória = 16 GB, armazenamento em disco = 500 GB
- Ambiente necessário durante um ano em média
- Média de requisitos de recursos para os desenvolvedores de software
- Recursos do sistema:
- Sistema usado: IBM BladeCenter® servidores blade HS22 8 vias 2,8 GHz
- Memória por servidor: 48 GB
- Armazenamento em disco por servidor: 1.200 GB
A Figura 1 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 apresentarei 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 1 mostra os resultados de planejamento da ferramenta para esse cenário.)
Figura 1. Estimativa 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.
É sempre possível prever melhor o futuro entendendo 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 (como mostrado na Figura 2).
Figura 2. É um pico ou uma tendência?
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 precisa, 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 3 ilustra a maneira como os dados de tendência podem ser usados para decisões de planejamento de capacidade.
Figura 3. Alocação de CPU vs. tendência de uso
A Figura 3 mostra:
- 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.
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.
Aprender
-
Cloud Computing Capacity Planning: Maximizing Cloud Value é o documento original que forma a base deste artigo.
-
Centro de informações do IBM WebSphere CloudBurst Appliance também, verifique os recursos do developerWorks WebSphere.
-
Centro de informações do IBM Tivoli Service Automation Manager; também, verifique recursos do developerWorks Tivoli.
-
Esse VMware Resource Management Guide fornece informações sobre a arquitetura e o custo adicional de VM.
-
O HiPODS whitepaper library fornece muitos documentos sobre planejamento de capacidade e soluções on demand de alto desempenho.
-
Nos recursos para desenvolvedores de nuvem do developerWorks, descubra e compartilhe o conhecimento e a experiência dos desenvolvedores de aplicativos e serviços que estão desenvolvendo os seus projetos de implementação de nuvem.
-
Encontre artigos técnicos, tutoriais, comunidades, wikis e recursos de negócios que poderão ser interessantes se você trabalhar em um domínio de segmento de mercado específico na
Zona de segmento de mercado do IBM developerWorks.
Obter produtos e tecnologias
-
Aprofunde-se no WebSphere CloudBurst Appliance.
-
Aprofunde-se no Tivoli Service Automation Manager.
-
Acesse o IBM Smart Business Development and Test on the IBM Cloud.
Discutir
-
Participe de um grupo sobre computação em nuvem no My developerWorks.
-
Leia todos os ótimos blogs sobre nuvem no My developerWorks.
-
Participe dos comunidade do My developerWorksuma rede profissional e conjunto de ferramentas comunitárias para conectar, compartilhar e colaborar.
Jose Vargas é gerente senior na organização IBM Cloud Labs e está conduzindo a implementação e adoção do IBM Infrastructure Planner for Cloud computing. Anteriormente, Jose conduziu o desenvolvimento e implementação da solução Blue Cloud da IBM no centro de computação em nuvem da Wuxi; e antes disso sua equipe implementou e gerenciou a Innovation Cloud da IBM para o escritório do CIO da IBM e trabalhou com a IBM Research na implementação inicial da Research Compute Cloud (RC2) da IBM. Durante seus 27 anos com a IBM, ocupou posições de desenvolvimento, planejamento e gerenciamento de software. Jose é ativo na sua comunidade e desfruta de mentorização. É membro do clube Silicon Valley Latinos e participa de atividades educacionais para ajudar as escolas locais.
Clint Sherwood é escritor e editor senior da equipe Cloud Enablement da IBM, onde aproveita mais de 20 anos de experiência em vendas de tecnologia, marketing e comunicações para fazer autoria, editar ou contribuir com comunicações relacionadas a nuvem. Clint iniciou sua carreira na IBM no Technology Adoption Program, onde serviu como escritor e editor da organização. Foi coautor do relatório IBM CIO Vision 2015 e serviu como escritor e editor de numerosos livros, White Papers, boletins, vídeos, podcasts e blogs.