One of the public cloud's greatest benefits is resource elasticity. Unlike the public cloud, private clouds don't contain the limitless hardware resources that public cloud providers make available to their subscribers. As such, admins who manage private clouds must take measures to ensure the required resources are available.
Admins often use tools and techniques, such as resource quotas, long-term consumption monitoring and a predictive scheduling engine, to ensure their private clouds are able to service workloads without suffering from resource depletion.
Tools to service private cloud workloads
One tool that admins use to ensure resource elasticity is specified quotas. Resource quotas are usage caps that set constraints on resource consumption in the private cloud. For example, an admin might use quotas as a tool to prevent someone from creating 50 new VMs without giving the IT department any notice. That way, the person creating the VMs can't completely deplete the private cloud's resources.
Another tool that admins incorporate to help with private cloud capacity planning is long-term resource monitoring. This tool enables admins to track public cloud resource usage on a month-by-month basis. By watching resource consumption over time, admins can more accurately predict the point when they must add hardware resources to the private cloud.
As useful as these and other techniques might be, a predictive scheduling engine can greatly improve their effectiveness. The use of predictive scheduling for private clouds is still relatively new, so capabilities tend to vary. Despite this, predictive scheduling technologies generally provide better resource utilization for private cloud environments.
Benefits of predictive scheduling
A predictive scheduling engine might be able to help admins meet their application-level performance service-level agreements (SLAs). Many of the available private cloud capacity planning tools track resource consumption at the cloud level to predict the point when resources will be depleted. In contrast, a predictive scheduling engine can track resource consumption on a per-application level.
This distinction matters because each application has its own SLAs and performance requirements. If a predictive scheduling engine knows an application's needs and can predict the demand for resources, then it might be able to automatically determine which host is best suited to run each application based on those criteria. The host placement might change several times over the course of a day in response to anticipated changes in demand.
Another thing that a predictive scheduling engine might be able to do is reduce the organization's overall usage costs, which is achievable in a few different ways. First, if the predictive scheduling engine anticipates light demand for applications, it might be able to consolidate VMs onto fewer hosts, and then shut down the unused hosts in an effort to reduce power consumption.
Some vendors go so far as to apply economics principles to cloud orchestration. The idea is cloud resources such as CPU, memory and IOPS are treated as consumables, and the system assigns them a cost. For example, the system might assign a high-performance CPU a higher cost than an older or slower CPU. It then attempts to use the lowest-cost resources that will meet the application's requirements, thereby driving down hardware usage costs.
It's important to understand that predictive scheduling tools base their decisions on historical usage trends and current conditions. As such, these technologies work very well under status-quo conditions, but are unable to anticipate abrupt changes, such as a sudden increase in demand that occurs as a result of a company getting a new client. In those types of situations, a predictive scheduling engine might be able to react to the change, but it can't anticipate the change.