– Bryan Semple, CMO at VKernel (www.vkernel.com), says:
Organizations that are seeking to deploy “cloud” based business models for their infrastructure face unique capacity management challenges. This post will review these challenges to enable cloud providers, either public or private, to avoid the pitfalls of improper capacity management. While the post discusses both types of clouds, the needs of private cloud providers will be especially highlighted due to the unique challenges they face with this business model.
IT Becomes a Business within a Business
For years, we have been hearing “IT must behave more like a business”. A hypervisor’s ability to deliver utility computing moves this vision closer to reality. Using hypervisors to deploy an infrastructure cloud fundamentally changes the relationship between IT and their customers. Application portability combined with competing cloud offerings from companies like Amazon change the dynamic between application owners and corporate IT. If end users can’t explicitly move their applications between cloud providers, they can at least compare prices and service levels between providers. Right or wrong, Amazon S3 becomes a measuring stick in price, performance and service for IT organizations.
To deliver an Amazon S3 experience, requires significant retooling in IT processes. Capacity management is one of the areas requiring retooling. Virtualization alone causes changes to capacity management (for more information, see http://www.vkernel.com/solutions/capacity-planning). But virtualization deployed as an infrastructure cloud adds nuances to the capacity management problem. Capacity management for cloud providers is unique for the following five reasons:
• Capacity monitoring in addition to planning
• Chargeback is mandatory
• Efficiency drives return on assets
• Tenant reporting requirements are unique
• Optimization is a value add
Variable Demand Drives Criticality of Capacity Monitoring
Cloud deployments of virtualization technology introduce many operational changes for IT administrators. The first is a change in the amount of control IT has over the loads deployed on their hardware. With cloud deployments, either public or private, end users deploy applications using self service portals as they see fit, load them as they desire and consume resources at whatever pace they need.
Hence, unlike the careful P2V sizing process undertaken for the first wave of virtualization where applications are sized, scheduled and deployed in a methodical manner, clouds have no careful sizing or timing that the cloud operator is aware of. Applications of unknown sizes appear, consume resources, and may just as quickly disappear. Without adequate capacity, these applications will fail to perform to customer expectations. Without real time capacity monitoring, application deployment can dramatically impact other applications.
Hence capacity planning, a well thought out process for making sure there is sufficient capacity en masse, must be supplemented with capacity monitoring. Capacity monitoring is a real time process that takes raw performance and utilization data and transforms it into actionable information concerning system level capacity requirements. Without capacity monitoring, system administrators are left to interpret real time utilization metrics from individual virtual machines. VKernel’s research has shown that properly monitoring capacity in real time involves collecting over 20 metrics per VM at least 10 times per hour, and keeping this information for at least 30 days. A 100 VM environment would require about 17 million data points to accurately monitor capacity in the environment. This capacity monitoring, however, is a must have to augment standard capacity planning and prevent performance issues from impacting the cloud.
For any cloud where resources can be deployed in a self service fashion, charging back for resources becomes a necessity. Without a method to chargeback or show back, self service clouds would quickly find themselves at capacity since resources are essentially free.
But chargeback is a tricky area. For commercial cloud and private cloud operators, charging back for allocated resources is fairly straightforward. But, since the private chargeback operator is simply shifting costs insides the company and not impacting the bottom line, the motivations for chargeback are different. The public cloud operator is indifferent to allocated resources and utilized resources. If the public cloud operator is charging for an allocated resource pool, they make money. In fact, the higher the ratio between allocated and utilized, the more over allocation of resources is possible and the higher the profit margins. For private cloud operators, however, the goal is to actually lower the costs for the company. Hence, the private cloud operator wants the allocated resource usage to be very close to actual usage to drive resource efficiency. Highlighting the difference between actual resource usage and allocated resource usage shows internal business units the amount of corporate resources they are wasting. This motivation can then be used to right size environments and reduce overall IT spend.
While chargeback is important, cloud operators need to be mindful of what they charge. For public operators, there are competitive pressures. For private operators, charging provides a manner to directly compare internal IT costs vs. external costs such as Amazon.
But is a simple $/CPU comparison between internal clouds and Amazon a fair comparison? Does Amazon contain the same level of compliance? Control? Is the company comfortable with data outside the company firewall?
More importantly, chargeback for private cloud operators is primarily a means to minimize the difference between allocated and utilized resources to drive up efficiencies and VM densities. Chargeback or showback becomes a control mechanism as opposed to an actual financial transfer mechanism. Hence the rate of chargeback is not as important as the difference between allocated and actual usage.
However, even here, the challenges for private cloud operators are greater. Let’s assume a private cloud operator hosts 200 internal customers. Assume each of these internal customers is wasting 50% of their resource allocation. On an individual basis, the absolute value of the wasted resources may be insignificant. But across all 200 customers, the magnitude of the IT spend could be quite large. The greater good theory for IT would require that IT actually reduce resource usage for all the internal customers to claim additional savings for the company despite what the internal customers want. Private cloud operators must operate for both their internal customers needs, but also for the company’s needs.
Setting rates for chargeback is the final tricky area for cloud operators. For a public cloud operator, the rate needs to be competitive, provide some profit margin and match customer’s value. Easy enough. But what about private cloud operators? Once again, being a private operator makes things difficult. What are the rates for chargeback for a private cloud operator? Is the goal to set rates to make an internal profit when 50% of the VMs slots are filled? 75%? But if the internal cost center is making a profit, is that the right thing to do from a budgeting standpoint? Is the goal cost reclamation or efficiency?
The net of this, is that for cloud operators, chargeback is critical. For private cloud operators, chargeback’s purpose needs to be clearly defined to align IT not only with their customer’s goals, but also the broader corporate goals.
Capacity Planning Impacts Revenue and Cost
Customers expecting to use a cloud service have high expectations with regards to time to deploy a service. For public clouds, this expectation will be a nearly instant deployment after the service request. Private cloud operators may not have quite such an instantaneous expectation for their customers. Either way, however, the “acceptable” wait time of several weeks to deploy a new server is gone. Immediate is the word, not days.
To enable this immediate capability, sufficient capacity must be on hand to deploy new virtual machines based on both steady state and unexpected increases in demands. To meet this accelerated time duration, a high degree of capacity planning must take place to predict future capacity needs ahead of demand and allow for the slower process of procuring and installing physical servers, networks and storage.
It is easy to meet rapid deployment expectations by over procuring hardware. The danger here is that over procurement impacts cash flows and profitability for a cloud. Having large amounts of depreciating assets sitting around is not a sound business strategy. If these assets are plugged in and configured, the added power costs worsen an already bad situation. Under procuring hardware is just as bad since cloud operators will be unable to meet customer needs should their systems not have available capacity. Hence the goal is to have a solid understand of consumption and then apply a safety factor to allow for unexpected demand.
Understanding capacity needs across the entire IT infrastructure is important. But it is just as important to understand where there are available VM slots for best placement of VMs both from a performance and capacity standpoint. Utilizing available VM slot reporting ensures both performance of the running VMs but also increases the VM density per host which is critical to achieving a high return on assets.
Capacity planning is critical to cloud operators to generate a high return on assets while also meeting customer demand for near instantaneous deployment requests.
With a standard virtualized environment, the IT organization may report on environment status to a few senior IT leaders. Not so with an infrastructure cloud. For public clouds and private clouds, there is a greater expectation of visibility into the environment. Reporting for cloud tenants could involve availability, resource allocation, resource utilization, current charges, and pricing plan. The amount of information revealed to a customer could depend on the business philosophy or type of cloud. For a private cloud, revealing differences between allocated resources and utilized resources and the savings a customer could achieve by reducing their resources allocation makes sense for a company trying to save money. For a public cloud provider, however, suggesting ways to reduce resource allocations may not be in the provider’s interest.
Beyond questions around what type of information to provide is the manner in which information is provided. For public cloud operators, online portals are most likely the reporting distribution mechanism of choice. For private clouds, however, information needs to flow seamlessly into the enterprises existing reporting infrastructure. This could involve connections with sharepoint, with IT service management frameworks, internal portals, or simple email distribution of reports on an ongoing basis.
Optimization is a Value Add
Many times, when virtual machines are first deployed, they are over allocated CPU, memory and storage. In a cloud deployment, this over allocation does not cost the cloud operator revenue. In fact, just the opposite occurs. The cloud operator deploys the requested resources, but despite not being used, the cloud operator still collects the revenue. As discussed earlier, the cloud operator can decide whether to reveal this to the tenant or not.
While the cloud operator may not care about wasted resources to an application, the end customer does as does the firm’s CFO. Decreasing requested CPU, memory and storage reduces monthly tenant costs. Hence, optimization becomes an optional value add service for the provider to offer tenants to reduce spending. This would be the equivalent of your cell phone company contacting you to suggest a lower monthly plan. While it lowers the monthly revenue of the cloud operator, it dramatically improves customer loyalty.
Because of the increased need for chargeback, monitoring, capacity planning, and reporting, capacity management takes on added urgency for cloud operators. Capacity management performed correctly enables cloud operators to maximize compute cycles delivered to a customer at the lowest possible cost and thus, capacity management is a key building block for any cloud implementation.