The four-part cloud tips series by Arun Taneja, founder and president of Taneja Group, concludes with an explanation of which applications are best suited for the cloud. When moving applications to the cloud, what are the basic ground rules for what applications aren’t going to work and which ones might from a performance standpoint?
We're often asked “Which of my applications should I run in the cloud?” When we dig deeper, we find this question is usually motivated primarily by concerns about performance and, in particular, network and storage I/O performance. It's a very good question, and one that application owners and IT infrastructure managers alike should take very seriously.
Before we tackle the concern about moving applications to the cloud and application performance, let’s provide a slightly broader context because there are a number of other issues users should think about as they consider whether to move specific applications to the cloud.
Security: Users should ask their cloud provider what type of security they offer, both in the form of data encryption and access controls, to ensure application data will be secure and that the provider authenticates users before they're allowed to log in and access sensitive applications.
Regulatory compliance: Some business-critical applications, particularly in financial services and health care, will have strict requirements that may not be easily satisfied in the cloud
Application availability: This will likely be a concern for many business-critical applications, and in such cases, users should demand that their availability needs can comfortably be met based on the terms of the provider’s service-level agreement (SLA). Unfortunately, public cloud computing providers aren't yet willing to commit to the kinds of availability levels that most corporate users demand for their business-critical applications.
Read Arun Taneja’s cloud tips series
Don't get locked in: Shopping for a cloud storage provider
Cloud storage and disaster recovery: Why they go together
Cloud storage gateway solutions and case studies
Given this backdrop, let’s address the question of performance. What types of applications should users avoid running in a public cloud, purely from a performance standpoint? First, latency-sensitive applications aren't a good fit. Latency across the Internet can vary, but increases with distance, which is typically beyond a user’s control. Second, applications with large datasets are problematic because uploading large amounts of data is time consuming and costly in terms of bandwidth. Third, applications that require special hardware, such as a graphics processor for rendering, aren't candidates for the public cloud.
On the flip side, compute-intensive applications tend to be a good fit, particularly those with small datasets. Applications with spiky or fluctuating workloads, as long as they’re not latency sensitive, can also be good candidates to run in the public cloud.
So what do these rules of thumb mean for the suitability of running particular applications in the cloud? Let’s explore that further and consider the fitness of some common applications in two categories: those that are generally a good fit for the cloud, and those that are a questionable or poor fit.
Applications that are a good fit for moving to the cloud
Dev/test apps. These tend to be quite suitable for the public cloud. The largest percentage of compute instances on major cloud sites (like Amazon Web Services) are dev/test workloads. The build and test process tends to be compute-intensive, and therefore a natural fit for cloud computing.
Personal productivity apps. Word processing, spreadsheet and presentation design software tend to be a good fit. These applications are based on unstructured data and generally don't require low latencies or sub-second response times. Vendors such as Microsoft have developed SaaS bundles of productivity applications that are hosted in the cloud.
Collaborative apps. Social networking, web conferencing and other collaborative apps are good for the cloud, especially since many of these solutions were written for the cloud in the first place. Legacy apps such as SharePoint have also been adapted to run in the cloud.
High-performance computing (HPC) apps. Based on their compute-intensive nature, HPC apps are usually a good fit for cloud compute farms, as long as their data needs can be managed.
Virtualized apps. Given their compact footprint and built-in efficiency, most virtualized apps are highly suitable for the cloud.
More about moving applications to the cloud
A guide for managing applications in the cloud
How to solve issues associated with cloud application migration
Moving cloud applications: How providers can affect the process
Disaster recovery (DR) apps. As discussed in our related tip on cloud storage gateways, DR apps can be an excellent fit for the cloud because the cloud provides a cost-effective, universally accessible recovery platform. Vendors are now busy building or reengineering DR apps to make them cloud-savvy.
"Big data" apps. The data mining and analytics of big data applications, such as those running in Hadoop clusters, make them good candidates for cloud-based processing. One caveat: It may be costly and time-consuming to move large amounts of data into the cloud, so if this is a requirement, you’ll need to decide whether it’s worthwhile.
Applications that are a poor fit for moving to the cloud
Mission-critical apps. Mission-critical apps such as ERP suites tend to have all the wrong characteristics to be hosted in the cloud. They tend to be transaction-intensive, with high throughput and low latency requirements. They contain sensitive data and often large datasets, and have high availability requirements. Some such apps also have regulatory compliance needs that may be difficult to meet in the cloud. So all in all, these aren't good candidates for the cloud.
Network-intensive apps. Unless you have access to fast, high-quality network resources, applications that continually transmit and receive large amounts of data won't be a good fit. Such applications will often require access to, or integration with, other applications to share data. A whole host of considerations enter in here, but suffice it to say, caveat emptor.
Keep in mind that these are general guidelines, and your decision about moving applications to the cloud should be based on your own situation, including application performance needs, budgetary constraints and a whole lot more.
BIO: Arun Taneja is founder and president of Taneja Group, an analyst and consulting group focused on storage and storage-centric server technologies.