Along came virtualization, allowing us to stack many of these low utilization workloads onto the same hardware platform. This allows many workloads to peak into the shared overhead and hence increases the overall asset utilization, bringing about cost savings in hardware acquisition as well as power and data center space reduction. Once this consolidation happens the capacity planning process has to start considering different metrics. In a virtualized environment you must understand how the individual workloads behave and then consider how the combination of these will behave on a single host (or a cluster of hosts).
This becomes even more complex when you start building cloud platforms. Typically, the first question to ask when sizing a new environment is “What are you running” along with “What are the performance and capacity requirements of your workloads”. This poses a great difficulty when you are building a shared cloud service, whether it is a private shared cloud for your organization or even more so for multi-tenant cloud environments. In this case you often have little idea of what will be the exact nature of the workloads that will be running in the cloud.
So how do you do capacity planning in the cloud and make sure that you deliver the level of service that your clients will expect?
Here are a few guidelines to keep in mind:
• The design has to be flexible and scalable so that growth can be triggered effortlessly as more workloads are introduced.
• Performance monitoring has to be put in place in order to understand the performance of all the components that are involved (i.e., servers, storage, network etc.) This is essential in order to be able to monitor performance trends and to be able to make timely scaling decisions before any of the services are affected.
• There should be a regular capacity review process to ensure that there is sufficient capacity for the next wave of users and applications. There should always be sufficient extra capacity in the cloud to absorb both internal and external expected growth. Internal growth refers to the growth of the environments and workloads that are already in the cloud. External growth refers to the growth due to introducing new environments and workloads.
• Capacity budgeting has to be part of the capacity planning process. If the workloads are internal to the organization then capacity budgeting involves collecting all the requirements for new capacity for the next period and collating that information into predicted cloud capacity budget. If the workloads are external (as in a public cloud) then the capacity budget must come from the expected services growth. This can be based on historic growth as well as planned special campaigns driven growth.
These are just a few insights into the challenges of managing capacity in the new cloud era.
Milos Brkic, Office of the CTO, OnX