Most businesses move to cloud with the expectation that it will save them money. And, while cloud can certainly reduce costs, those cost savings aren't automatic. To maximize cloud's cost-efficiency, enterprises must effectively manage their environment, which includes tuning applications and the cloud.
The first step in cloud cost optimization planning is to understand cloud provider charges. Pricing models vary depending on the provider and cloud service -- infrastructure as a service (IaaS), platform as a service (PaaS) or software as a service -- so it's important to consider the full pricing model for each. Cloud prices have four elements: basic service costs, database costs, activity costs and feature costs. Proper cost optimization planning can help minimize each of these.
Basic cloud service charges are based on users, CPU hours and more. IaaS and PaaS charges are for base configuration. The first optimization planning goal is to work within the standard configuration for the standard service. Since the cloud market is so competitive and the advertised base price is most often used for competitive comparison, it's likely the best.
Providers assess database charges when the cloud application accesses data stored in the cloud. These charges are generally made per access, but are sometimes based on total data volume accessed. This particular cost element is the most difficult to optimize by changing or tuning cloud services themselves. Therefore, to gain cloud cost benefits, businesses may need to tweak application design.
Providers assess activity costs most often on IaaS and PaaS for each transaction in and out of the cloud application. Activity rates vary by provider, so businesses can shop around. But to minimize these costs, businesses will likely need to design applications accordingly.
Of all the cloud costs, feature costs are the most problematic. Most cloud providers, including the market leaders, offer special cloud service features. Some of these features introduce alternative cost models to the basic services, such as VM reserved instances versus metered usage. Others represent special database features, deployment and management tools, or even cloud provider features to enhance applications.
Pilot testing can determine whether basic service enhancements are cost-effective. Businesses can also pilot test database, deployment and management tools to ensure they'll drive cost savings. In nearly all cases, application features need to be designed into the application to be used. Additionally, the development project should include cost and benefit analysis for the use of those features.
Four steps to optimize costs through cloud app development planning
If app development planning is required to optimize your cloud, there's an easy approach to get what you need.
First, try to use the highest-level cloud service possible, which means selecting PaaS before IaaS for development. PaaS displaces software licensing and support costs, which often presents better value. If businesses choose a PaaS platform that isn't compatible with current internal IT practices, the learning curve could be long and expensive.
The most important application design consideration is that using PaaS constrains the middleware features applications can use. To validate that the PaaS software will actually meet application needs and at least near-term potential functional enhancements, businesses should have a development review.
Second, always start application plans with basic services. Organizations tend to build toward their stated goal whether it's right or wrong. The most vanilla service that suits your needs achieves the best cloud pricing. Businesses need to justify taking a different path.
Basic services normally mean metered CPU usage, data access charges and activity charges -- which means network usage into and out of the cloud. Good database design practices may limit data access costs, and careful application GUI review may reduce network usage charges.
Third, consider the value and price of enhanced cloud features and tools in your design. For example, if you think your application might benefit from elastic scaling, incorporate it in the design -- as long as the changes don't break your benefit model.
Some enhanced cloud features, such as DBMS, DevOps and reserved instances, are easy to assess, either because an application needs them or they create an obvious benefit. Other tools, such as caching, queuing or workflow services, replace functions that your own app could provide, but manage them more effectively for the cloud. If these cloud-specific features are valuable, then the services are likely worth buying. However, it's important to carefully review the benefits and costs.
Fourth, design applications to modularize the use of special cloud features. This helps businesses easily change the application to adopt or eliminate features, depending on cost and benefit analysis.
Many enhanced cloud features and tools replace similar features that would normally be built into the application. While basic cloud services are highly competitive and compatible, these enhanced services vary among providers and may not always be available or competitively priced. When using these services, businesses should structure programs to easily remove them in favor of in-house implementations, if necessary.
Finally, don't build the application to depend on elasticity, redundancy or other cloud bursting features you won't use. Companies may be tempted to design applications and buy cloud services that can be scaled or support failover. And if that's actually necessary, it's a good decision. But features that support location diversity or scaling will cost more. Be prepared to add them, but not until they're necessary. Careful planning will save money in the long run.
About the author:
Tom Nolle is president of CIMI Corp., a strategic consulting firm specializing in telecommunications and data communications since 1982.
Are cheaper cloud prices key to enterprise cloud adoption?
Maximizing your cloud storage ROI
How to avoid cloud billing shocks