Traditionally, the purpose of capacity management was to ensure that cost-justifiable IT capacity exists in all areas of technology.
However, with the advent of cloud computing, and the seemingly boundless scale and capacity of hyper-scale providers, is this still required?
Looking at a virtual machine (VM) in the conventional sense, connected storage and networking require capacity management in the cloud, right?
CPU utilisation, disk space and network IO all exist for a cloud VM as they have always done before, yes? This is all true; however there is a difference…let me explain.
Traditional Workloads on Cloud Platforms
Traditional use cases, which take advantage of the utility nature of cloud at basic utilisation pricing still require capacity management in the customary way of thinking.
Capacity reports inform them of CPU utilisation, and disk space forecasts help inform decisions. These use cases are low in their maturity of cloud adoption and are likely to have “lifted and shifted” workloads from a traditional delivery model, to cloud, comparable to a P2V or V2C type of migration.
In this sense, capacity reporting prediction is still highly valuable. This ensures systems are not running too hot and (more importantly), under-utilisation is identified.
In many customer conversations that I’ve had, there’s an expectation that moving workloads to a cloud IaaS (Infrastructure-as-a-Service) platform will drive out instances of over specified VMs. The assertion is these can be tuned down with no business impact in order to provide a cost saving.
Whether this is true or not will is dependent on the system, application and specification, so retrieving capacity information on a workload basis is important to allow capacity assessments to be made.
Cloud Native Capacity Management
Cloud native use cases, with higher maturity in their cloud utilisation, will not be focused on infrastructure level capacity. Instead, their application rules will be defined to perform for auto-scaling.
Here the application is programmed to self-govern it’s consumption of compute, disk, and network resources, in order to meet demand.
Take a retail e-commerce platform, for example, which automatically scales horizontally during seasonal periods when user sessions peak.
The application has a codified rule relating users to infrastructure, and so scales up and down in order to match demand.
In this environment, the essential imperatives of capacity management remain. Cost-justifiable IT is required, however governance is performed in a different area of the IT landscape.
This responsibility used to be sat with a human (in the role of capacity manager), pouring over trends and forecasts deep into the night.
Now the systems are logically programmed based on application rules and the decisions are orchestrated automatically.
This approach assumes capacity is boundless. When there is a sharp increase in users for multiple applications within an organisation, the demand can spike to levels that would have caused serious issues with dedicated traditional platforms.
With an IaaS platform, historic business cases and hardware procurement lead times are no longer a concern for the consumer. They are managed below the waterline in the cloud service provider’s “black box” solution, invisible to the user.
Cloud native application-centric development, with infrastructure defined as code, has shifted the landscape of traditional capacity management.
The business aim of capacity management still exists, but the responsibility has been broken into parts, and placed into other areas of the IT delivery model.
Application management takes on the designing and coding of the auto-scaling rules. Scale up or scale down approval still exists in service requests and the change processes, however pre-approval is provided when the scaling falls within the pre-defined rules policy. On top of this, financial management takes on the policy setting for the opex impact of the scaling rules against the business benefit and the allocated budget.
This new model provides exceptional efficiency, with resources available at the right time, completely in sync with business expectations and demand. As with many areas of cloud focused service provision, the focus needs to be on the policy setting and orchestrated delivery aligned to these policies. This is to ensure that the codified rules are in line with the overall business priority and budget.
Capacity management is an integral element of orchestrating Hybrid IT, approaching capacity above the waterline for the cloud native world is just as important as below the waterline in the cloud provider’s “black box”.
But with all of this in mind, capacity management in the “black box” is actually even more important than ever, and perhaps one to explore in a future post.
Enjoyed this post? Check out our story on the organisational impact of bimodal IT in a Hybrid world.