Are you burning too much cash on your infrastructure? You could be – especially if you’re leveraging public cloud at scale. And by scale, I mean pushing enough traffic and leveraging enough VMs to make the cost differences between multi-tenant infrastructure and single-tenant infrastructure a large enough delta.
There are several things to consider when looking at the public cloud from a cost standpoint.
DevOps on Public Cloud
Most public cloud providers are not tuned to provide you with full-stack support, including things like DevOps services and caching best-practices. This cost haunts CTOs in the form of sprawling staff requirements, whereby operational staff required to support a 24x7x365 operation grows as the infrastructure on the public cloud grows. True, some of the web services offered by leading public cloud providers can help small teams manage large amounts of virtual machines, but the public cloud does not typically provide you with best practices or expertise – it generally provides you with a limited set of provisioning tools.
Amazon EC2 and Google et al want to be the end-all-be-all of operational automation – in an ideal public cloud, you don’t need DevOps experts or systems engineers – you only need developers. The reality is, despite the multitude of APIs and third-party services integrated into these environments, the fact remains that staff are required to manage these solutions at scale. In some cases, these solutions *add* complexity – in which case, not only do you need in-house database, caching, and security expertise – but you’ll also need a resident expert in your target cloud provider’s tools and associated APIs.
So when you’re shopping around your options, keep in mind that coupling cloud with a managed service can provide you with the leverage you need to keep your internal costs low.
Cloud Server Sprawl
Public clouds are multi-tenant, and cloud providers oversubscribe their infrastructure. Thus not only do you have to share the same network, disks, and CPUs with other customers – but you also have inherently smaller CPU allocations, despite whatever “vCPU” promises you might be getting from your vendor. On Amazon for example, when you are allocated a vCPU, you are most likely not getting a dedicated core , but a time-shared hyperthread.
So what do most folks do to offset this performance hit? They add more servers – or they configure auto-scaling, which automatically populates more VMs into their service pools. The problem with this, of course, is it results in significantly higher costs – because you’re being charged more for time-sharing a hyperthread than you would be billed for a dedicated core in a private cloud environment. I call this the “public cloud tax”. Multiply that tax by all your virtual machines, and you could end up with an environment that costs 33-100% more than the private cloud equivalent.
So in smaller environments, the flexibility of the public cloud is nice – you can shut down your project if it goes bust, or you can grow elastically until you reach an inflection point that warrants a dedicated private cloud. Just keep in mind that as you scale up, the “public cloud tax” will hit your budget in direct proportion.
Storage in the Public Cloud
Storage at scale in the public cloud is costly. On Amazon, where your disks are ephemeral, you have no guarantee that a VM you shutdown won’t be wiped of it’s data. If you want persistent storage, you need EBS – which continues to add to your costs and provides what amounts to software RAID on multi-tenant storage subsystems.
If your data corpus is growing, and your disk I/O needs to be fast – you can extract more predictable performance at a lower cost on private clouds leveraging SDS (Software Defined Storage) solutions or more traditional disk arrays.
The public cloud is great if you need object-storage – which amounts to buckets for arbitrary data with modest I/O requirements. But if you need screamingly fast disks attached to your databases, NoSQL stores, or search indexes – you should consider private cloud storage to increase your performance while lowering your TCO (Total Cost of Ownership).
The growth of private and hybrid cloud solutions is indicative of CIOs and CTOs realizing the economic benefits and performance optimizations associated with sophisticated cloud orchestration layered on top of single-tenant hardware. As your workloads and storage requirements grow, make sure your costs don’t blow your budget – and be sure to consider long-term alternatives that allow you to focus on your core business initiatives, and not on cloud operations or cloud economics.