Some of the key benefits of Cloud-based IT delivery are scalability and flexibility. There is no more guessing game for capacity and sizing, just scale up and down based on demand using auto-scaling policies. A dream scenario where demand and supply for the first time integrates with automation. However there are certain aspects that must be considered.
1. Architectural limitations for an autoscaling strategy
Auto-scaling for IaaS (Infrastructure as a Service) is built for the typical de-coupled three layer application infrastructure with web, application- and database servers. It is actually about scaling out and in on the amount of instances for web or application to handle user sessions and connections. For database layer, especially traditional relational database servers, auto-scaling does not work at all (unless you utilize the scalable managed non-SQL DB services like AWS Dynamo)
If your application or database scalability is not based on adding or reducing nr of instances to scale out or in, then auto-scaling cannot be implemented as a capacity management strategy.
Traditional sizing, monitoring and resizing based on need still apply.
However, a Cloud based infrastructure provides the possibility of a speedy upgrade with more capacity without long lead time for purchasing and installation. New capacity can be ordered momentarily and attached over a reboot.
2. Workload variations
If auto-scaling cannot work as a strategy to cope with workload variations in scalability, other techniques need to be implemented here. Understanding and taming the workload is always the key for a right capacity management strategy, as this is what drives the resource utilization. So what is the key differentiation for Cloud from the traditional datacenter server instances when it comes to a fixed sizing?
Possibility to reserve instance capacity at a much lower cost (up to 60-70% cheaper) when you can plan your workload and capacity at specific time frames and days
Possibility to add new capacity in-advance with short lead time for known seasonal peak loads as Quarterly Financial Report etc.
Switching between instance types and storage types to cope with the different workload demands both temporarily and with capacity policies, like batch workload
Archiving and data retention policy combined with capacity management policies, e.g. migrating to cheaper data storage for data retention while provide high performance IO for transaction data
3. Cost can go up sharply
Cloud-based infrastructure provides almost unlimited capacity minutes away - however, this is also associated with a heavy bill. When you have your own diesel boiler for warm water, you optimize through your purchase of diesel by negotiating of liter price for diesel and quantity discount. Not much focus is put on how efficiently warm water is being consumed. Once you have warm water on tap, then the consumption pattern and volume will direct impact the overall cost.
Managing and optimization of cost in cloud means you need to manage capacity provisioning and workload patterns to find the right balance. Having excessive over-capacity in Cloud is often much more expensive than in a traditional datacenter where fixed investment done. The fact that many times IT let the monthly cloud bill be distributed directly to business units does not make it easier to have an overview and right capability to optimize cost. It often ends up with a situation where the one who pays for the bill does not know what is really needed and not needed. In other words, the internal charging model has some embedded challenges in promoting optimization of capacity and cost.
In the next blog post, I will discuss what shall be the right strategy to tackle those challenges.
Hong Zhu
hong.zhu@cmiconsulting.se