In general, right-sizing is the foundational principle for managing resource utilization for optimal price/performance. When Willie Sutton was purportedly asked why he robbed banks, he replied, “Because that’s where the money is.” In the cloud, the money is in compute resources, so that should be the highest priority for right-sizing.
For new applications, start with minimal virtual machine configurations for compute resources, adding CPU cores, memory and/or I/O only as required to achieve satisfactory performance. All virtual machines for existing applications should eventually be right-sized, beginning with those that cost the most. Reduce allocations gradually while monitoring performance constantly until achieving diminishing returns.
It is worth noting that a major risk associated with right-sizing is the potential for under-sizing, which can result in unacceptably poor performance. Unfortunately, the best way to assess an application’s actual performance is with a production workload, making the real world the right place to right-size. Fortunately, the cloud mitigates this risk by making it easy to quickly resize configurations on demand. So right-size aggressively where needed, but be prepared to react quickly in response to each change.
Storage, in direct contrast to compute, is generally relatively inexpensive in the cloud. But be careful using cheap storage, because I/O might incur a separate—and costly—charge with some services. If so, make use of potentially more cost-effective performance-enhancing technologies such as tiered storage, caching, and/or in-memory databases, where available, to optimize the utilization of all resources.
Software licenses can be a significant expense in both private and public clouds. For this reason, many organizations are migrating from Windows to Linux, and from SQL Server to less-expensive commercial and/or open source databases. But for those applications for which “premium” operating system and/or application software is warranted, check different CSPs to see if any pricing models might afford some savings for the configurations required.
Finally, all CSPs offer discounts, and combinations of these can sometimes achieve a savings of up to 50%. Examples include pre-paying for services, making service commitments, and/or relocating applications to another region.
Creating and Enforcing Cost Containment Controls
Self-provisioning for cloud services might be popular with users, but without appropriate controls, this convenience makes it too easy to over-utilize resources, including those that cost the most.
Begin the effort to gain better control by taking full advantage of the many monitoring and management tools all CSPs offer. This is likely to encounter a learning curve, of course, because the CSP’s tools may be very different from, and potentially more sophisticated than, those being used in the private cloud.