Many organizations realize there are significant advantages to moving their business-critical applications to the public cloud. With competitive pressures becoming stronger all the time, the heat is on to make development cycles more agile and applications more dynamic.
One of the most famous companies running its business-critical apps in the public cloud is Netflix, which is currently running thousands of nodes on Amazon EC2.
"Netflix realized it could not innovate rapidly if it stayed in the data center," says Boris Livshutz, senior engineer, AppDynamics. "Netflix needed the public cloud to drive explosive growth. Many companies have come to the same conclusion and are rushing to join Netflix in the cloud."
But, you might ask, what are the best and least risky ways to embrace the public cloud and maximize the cloud's much-touted benefits?
Livshutz offers some tips.
Public Cloud Deployment Tip #1. Use Performance Analytics
There is no easy way to predict your application's performance on cloud resources. With such technical names as "small," "medium," and "large," how can you even begin to estimate capacity needs for your application? The cloud is a mysterious place with computing resources that bear no resemblance to the systems in the data center, and a successful transition will require arduous analysis.
Livshutz recommends using analytics on top of Application Performance Management (APM) data.
"You can do all this in a few straightforward steps," he says. "By comparing performance data from your current application to that from your test environment in the cloud, you can accurately estimate your cloud capacity requirements."
Public Cloud Deployment Tip #2. Compare Data Center and Cloud Capacities
First, you need access to performance data from your APM system. Second, you need to test your app with simulated load on the cloud environment that you intend to use. Most importantly, your APM system must run on both old and new environments and record the performance characteristics.
The idea, says Livshutz, is to compare the capacity of a machine in a data center against the capacity of computing nodes in the cloud to discover just how many nodes you'll need to match the performance of your data center.
"To do this, you compare the throughput of a single application running in your data center against the throughput for the new cloud environment," he says.
The unit of measurement to use for this is RATU (Response Acceptable Throughput per computing Unit).
"Once you decide what response-time is currently acceptable for your application, you can find the largest load that meets this limit within, say, 2 standard deviations," says Livshutz. "Then, divide this throughput number by the number of machines the application is running on. For simplicity, I'm assuming the hardware is uniform, but if it's not then you can compute a weighted average. "