Good, cheap and fast: Pick two.
This pithy quote encapsulates everything we need to know about the fundamental trade-offs facing cloud provisioning. Everything, of course, except how to decide.
The fundamental promise of the cloud is that you have the room to grow (or shrink) your resources as necessary. However, cloud vendors will often structure agreements such that your plans will be cheaper if you can make an upfront long-term commitment to a certain tier. After all, everyone likes a little stability if they can get it.
However, this can put small and medium businesses in a quandary. They badly want the cost savings, they don’t think they’ll need to scale too much. How can they know? How can they decide?
Different Ways To Grow
Part of the problem is that the terms used to talk about the problem are fuzzy. Strictly speaking, elasticity is different from scalability, but they are also often used interchangeably, not just by customers shopping for cloud services, but by some cloud service vendors themselves.
So what is the difference?
Cloud elasticity is what happens when a hypervisor (a top-level program tasked with provisioning and resource management) spins up new machine instances in order to meet demand, and then dissolves it as demand drops. It allows for more flexibility in the day-to-day variability of load and operations needs.
Scaling is more substantive. In general terms, you might scale your resources by adding CPU power, hard disk capacity, or RAM. You might expand your data center footprint, or just upgrade to high-density hardware. In cloud terms, scaling usually simply refers to adding more machines to “your” allotment — which sounds quite similar to when cloud elasticity adds virtual machines.
There is a second differentiation you might hear as well:
- Scaling Vertically (or Scale-Up) and
- Scaling Horizontally (or Scale-Out)
In its most basic form, scaling horizontally is about adding more machines. Scaling vertically is about giving your existing machines more power, RAM, etc. This doesn’t come into the discussion in cloud services as much, but you may still hear about it.
How To Think About Your Need For Scale
Leaving aside elasticity for a moment, first let’s think about scale. Elasticity operates moment to moment, but scale is more structured.
Most businesses are going to use scale in a small handful of ways:
- To add or remove users
- To add or remove applications or storage
- To cope with a market surge or drop
In most cases, businesses will have a pre-existing plan. They will know roughly how many employees they want to hire or let go of in the next year or two. They will have a strategy for what legacy applications they will be moving to the cloud, and what the needs of those applications will be. The biggest unknown is an unanticipated surge of traffic, perhaps from a viral marketing campaign. But if you are not in an industry that anticipates these random growth surges, then you can downgrade this risk accordingly.
This is most of what you need to be aware of when you’re figuring out your needs for scale, and it should not be too hard to triangulate your service tier from there.
How To Think About Your Need For Elasticity
In the majority of cases, elasticity, as built into the pricing structure, is less important than scale. Unless you have a large company with unexpected surges, usually with consumer-facing applications, the variance in your needs is not large enough to require a purpose-built, elasticity-based cloud contract.
But you should not ignore elasticity altogether, because it can make a significant impact on resource management, getting you more bang for your IT buck.
To make the best use of it, though, you may have to overhaul legacy applications so that the hypervisor can monitor them effectively. This is more of a long-term project, but one that you should be aware of because it makes so many aspects of IT management more efficient and transparent.
Finally, we’re back where we started— cost. Hopefully you’ll be able to understand the tradeoffs on scalability and elasticity to strike a deal that’s cost-effective and beneficial to your organization, and not pay extra for extreme flexibility that it turns out you never use.