July 31, 2012, 11:10 AM — Meanwhile, Roundup is one of many genome mapping applications that predicts the evolutionary relationship between genes, organisms, and biological functions. The algorithm Roundup uses is compute-intensive, so the Harvard researchers behind it had to use a combination of Simple Storage Service (S3), Elastic Compute Cloud (EC2) and Elastic MapReduce (EMR), all provided by AWS. To optimize the application, the Roundup team reduced disk I/O, cut its use of in-memory caching and calculated the optimal number of instances it needed. In doing so, Roundup reduced its bill by 40% and made sure it could accommodate future computational growth-all without affecting performance.
How-to: Top 10 Enterprise Applications Suitable for the Public Cloud
An application may run properly without optimizations such as those that Roundup did, but performing them may improve associated aspects of the application, including availability, resistance to disaster and, most importantly, the cost of using the public cloud. Here are five specific optimizations you can apply to your application when moving it to the public cloud.
1. Refactor Code to Address Cloud Service Providers' Billing Patterns.
AWS charges not only for computes, storage and network bandwidth used-it also charges every time you access your storage for a read or a write. As a result, you may want to gather up reads and writes in your application and bunch them into single operations wherever possible. That way, once you have spent the money on your own servers, you don't incur additional costs every time you do a read or write operation.
The overall effect of this cloud optimization technique depends upon the pricing methodologies of the public cloud service provider (CSP) you sign up to use. Irrespective of which CSP you sign up with, however, re-factoring can be seen as an opportunity to improve application performance.
2. Optimize Chosen Default Cloud Instances.
When setting up instances with EC2, you can choose among various levels of computes, memory and storage. In addition, EC2 offers Spot Instances, which refers to excess capacity that's available at any time and offered at lesser prices than the normal ones.
It pays to spend some time experimenting with your application in order to determine the optimal level of computes, memory and storage that you need. This will help you make sure that you do not overspend on capacity or configuration, and it will help you figure out if you should consider Spot Instances (or the equivalent offering from another CSP).