While the cloud offers the ability to use the exact amount of resources you need at any time, challenges still exist. For example, overprovisioning and overspending for unused cloud capacity is a common issue that can impact enterprises' bottom line.
One solution is to "right-size" public cloud instances to prevent wasting cloud resources, while still supporting applications. Experts agree that a potential pitfall for cloud users is to overprovision resources, but there are some practices that can help.
Determining the right size for cloud resources is similar to configuring VMs on a physical server, said Daniel Conde, an analyst for Enterprise Strategy Group. "What you don't want to do is overprovision since [it] waste[s] money," Conde said. "The trick is to find the resources that your [application] needs and create an instance that's best suited for it." In this sense, the cloud presents the same problem that underutilized servers brought to the data center.
The human side of right-sizing cloud instances
To ensure users don't overprovision resources and waste cloud capacity, you need to alter enterprise mindsets. "In the old, on-premises, capital-intensive model, we spent all our time figuring out … what acquisition would cost, because there was big risk in sizing capacity too low and getting stuck," said Eric Hanselman, analyst at 451 Research.
The cloud model, however, turns this concept on its head; expenses are all on the operational side, and organizations can change and resize resources at will. As a result, IT teams need to continuously reevaluate resources to prevent overspending and make sure cloud capacity isn't excessive.
Don't overlook the human side of controlling cloud instance costs, and evaluate who should be authorized to control operational activities in the cloud. "When I started [at PSC], there were more than 100 people authorized; we now have reduced that to just six," said Lloyd Dawson, vice president of IT at PSC, a provider of services to the utility industry, based in Houston. The reduction in authorized users helps ensure more visibility into where cloud usage and spending occurs.
Take applications under consideration
Sizing a cloud instance for an application is more or less the same as it has been for over a decade in virtualized data centers, agreed J. Craig Lowery, research director at Gartner. However, one significant difference is that older applications may get little value from cloud's elasticity; unless the application load is uniform, it will cost more to run it in the cloud than on premises, Lowery noted.
The cloud offers the opportunity to acquire and release resources over time, as needs change. "That's what elasticity is all about, and harnessing it is key to optimizing cost and performance," Lowery said. The right size for a cloud instance depends on the application's load, and that load distribution could be anywhere from uniform to highly variable.
In this interview, Pete Adams, Cloudability's COO, discusses mistakes that enterprises make after moving into the cloud, such as overprovisioning.
"The instance size would ideally fluctuate with respect to changes in load," he said.
An application that can only scale vertically, within a server or server instance, leaves an administrator little choice but to reboot it onto a larger or smaller instance. "This could mean an interruption in service, which carries additional costs -- especially creating dissatisfied users," Lowery said. As a result, organizations rarely perform this rebooting process, and use overprovisioning instead, as a kind of insurance policy.
To horizontally scale applications, admins can deploy more than one instance to handle the load. "In this case, we can identify the optimum building block instance size, with cost being a part of that assessment, and change the number of instances running as the load varies," Lowery said.
Automatic scaling, on the other hand, ensures performance and availability, without the need to over provision or overspend. This model best matches the cloud's elasticity, and is a key characteristic of cloud-native software design, Lowery said.
Test to ensure you don't overprovision
Still, it is always important to plan and anticipate enterprise needs. Because it is easy to set up test environments in the cloud, organizations can establish and run tests on different configurations, Hanselman said.
"Cloud environments often have a lot of built-in instrumentation and diagnostics, which can help you really get into the guts of what is going on in terms of processing, memory and even utilization," he said.
From there, IT teams can gauge whether they might need to reconfigure or redesign an application to take advantage of cloud features like auto scaling, and be cost-effective, Hanselman continued.
"The least expensive way to consume cloud is by building out apps with larger numbers of small components because you can scale back at slow periods, as long as those pieces are relatively atomic," he said.
Another factor to bear in mind is that instance sizes aren't static. Cloud providers constantly roll out new instance types. If you have a memory-hungry app, you may have to opt for a more expensive instance or overprovision resources for now, but your provider may have a better, more cost-effective option in six months, Hanselman said.
Review your app requirements before choosing an IaaS provider
Cut cloud costs with these five tips
Avoid overspending on capacity for VMs