May 29, 2013 | Written by: Naveen Purushothaman
Share this post:
In this blog, I look at cloud computing from a cloud service provider’s (CSP) perspective and share my thoughts on challenges related to capacity management.
One of the most important and attractive characteristics of a cloud computing environment is self-service. From a user’s perspective, this is attractive because they can now get the desired services delivered faster. From a CSP’s perspective, self-service capability reduces operational expenditure.
Offering a self-service capability, however, introduces expectation management challenges to any CSP. For example, from the users’ perspective, cloud is viewed as a source of infinite resources. They can, anytime, go to the self-service interface of the cloud and submit a request for a new server or for provisioning more capacity to an existing server.
Users don’t care whether there will be enough resources available in the cloud to meet their demands, nor are they expected to forecast capacity requirements in advance. They think of cloud as an infinite set of resources and expect their requests to be provisioned on demand.
So, how do we manage such an expectation? Well, there’s no magic formula. However, there are certain alternatives one could consider.
Guess what is coming
One method is to guess the future demand and arrange a buffer capacity accordingly.
What buffer value is “cost effective” and what is not is highly debated when it comes to financial approvals. Often, the IT department and finance department have conflicting views and require negotiation. After going through all those sales manuals, finance departments don’t like to approve any more capital expenditure (CAPEX) asks!
With the introduction of the self-service feature and forcing users to think of cloud as a cloud, the IT department or CSP no longer get capacity requirements forecasted by the consumers. Also, as described earlier, due to the nature of the self-service functionality, there is no time to arrange capacity when someone asks for it on demand.
Table 1: Buffer reference
Table 2: Sample resource forecast
Table 2: Sample resource forecast demonstrates a sample forecast calculation. The To be procured column values are computed by applying the buffer values from Table 1: Buffer reference to the values in the Difference column.
In a nutshell, the logic used ensures that at any point in time there will be a minimum of 256 GB of memory free, a minimum of 64 virtual CPUs (one vCPU = 0.5 GHz) free and so on. These values are selected by considering a variety of factors such as the rate at which capacity requests are recieved from customers, average amount of capacity requested per request, cycle time involved with additional capacity acquisition and so on. The contents of the pipeline column are just a guess, but you can imagine how difficult the calculation would be without the pipeline information.
Using tools to understand the trend
Another alternative is to monitor the existing infrastructure to understand what capacity is available, how much of it is allocated, how much is utilized and how much more may be needed in the future. The first part of the equation is easy to measure, but the last one (forecasting) is difficult since there’s no direct input available for forecast. The good news is that there are tools available to help.
One example is the IBM Tivoli Performance Analyzer (TPA) component of IBM SmartCloud Monitoring, which provides nonlinear trending and forecasting. Performing capacity planning by using historic monitoring information from the existing environment and applying analytics is often referred as predictive capacity planning.
Keep in mind that even with good analytics and predictive capacity planning, there is no easy way to forecast inorganic growth such as a new customer coming in with a request for 1,000 servers to be provisioned in one day compared to the normal rate of, say, a maximum of 10 server provisioning requests per day.
Users of a cloud computing environment view cloud as the source of infinite resources, and managing such is an ongoing challege to any CSP. Robust capacity planning is key to managing user expecations and keeping costs down.
I invite your thoughts on this topic.
- What is your experience with capacity planning in cloud, and what tools do you use?
- Do you think there’s a need for more sophisticated tools for effective capacity planning in a cloud computing environment?
- Do you think that there’s a need to educate stakeholders such as finance departments to realize the need for CAPEX in a cloud environment even after its initial establishment?