The tech sector in Washington accounts for 22% of the state economy and ranks first…
What applications benefit from the cloud the most?
Implementing a new technology in an enterprise is sometimes a long process that includes reviewing, prototyping and pilot implementation of the technology in question. With cloud computing being on the radar of almost every CIO lately, one of the most frequent questions I hear from decision makers during the evaluation phase is: “What applications are good candidates to deploy to the cloud?” Although you can choose any application to deploy to the cloud, selecting the right one can be crucial for your project.
Because cloud is a very broad term in this post I will not discuss the cloud services that your applications can leverage but only the elastic computing functionality offered by the cloud vendors. Let’s look at the four most popular cloud computing patterns and see a few example applications that will be good candidates.
On and Off Workloads
On and Off Workloads, or traditionally known as batch jobs, can be applications that run on a schedule or are triggered by predefined events. It is typical for such applications to process vast amounts of data collected during some period of time. This may require a lot of computational resources during the processing time but if the data is not present the resources will sit idle and can be shut down.
One typical example for such scenario is invoice processing. During work hours sales people collect purchase orders and submit them into the system. Once the workday is over no more purchase orders are entering the system and a task is triggered to process each order, and send an invoice to the customer. With cloud computing, you can spin up an instance of your invoice processing application in the evening, process all orders within a few hours and shut it down. You pay only for the time you had the instance running and can save money for the time the application is not needed (during working hours).
Another scenario that fits into this category is video encoding. Take for example streaming services like Hulu. Every evening at midnight the networks upload new episodes and Hulu needs to encode them in several formats so these can be available for each client (mobile, desktop, set-top box etc.). Because the encoding is a computation-heavy task, Hulu will need hundreds or thousands of machines to encode hundreds of hours of videos in several formats. They also need to do the encoding within several hours so they can make the shows available in the morning. Once the encoding is done, however, those resources are not needed until midnight the next day.
Fast Growing Applications
Fast Growing applications require the addition of new computing resources at very short notice. Most often those are applications that become viral and their user base explodes in a matter of days or weeks. Such applications or services need additional workloads to handle the exponential growth of users or requests.
Take for example Instagram, that grew from zero to 30M users within only 18 months with doubling the user base every few months. With the traditional procurement model, where it takes 6 to 12 weeks to acquire the necessary hardware, they would have a had hard time keeping pace with such user growth. In addition, it would be very hard for them to predict how much hardware to purchase – if they erred on the low side they may have lost users because of degraded user experience; if they erred on the high side they may have ended up with unused hardware. Because Instagram chose to use Amazon’s EC2 they had no issues with adding additional workloads when the need arose.
Unpredictable Bursting
In this scenario an unplanned event triggers additional load on the application and suddenly it requires more resources in order to keep up with the requests. After the event passes, the use of the application normalizes and the additional resources are not needed anymore.
One example is news sites that receive sudden traffic based on popular articles. When an article gets published a lot of users come to the site to read it but after few days it is not actual anymore and the traffic to the site normalizes. It is hard to predict whether certain articles will become popular or not hence it is hard to know whether it will generate a lot of traffic. Here again big role in the demand generation plays the virality of the article. But, in contrast with the Fast Growing application scenario, the demand fades out after a few days. Other examples in this category can be shopping sites that receive sudden spikes in traffic because of natural events, ticketing, or event sites and so on. In each one of those cases new computing resources can be added in the cloud while the event is happening and then released to save money.
Predictable Bursting
In contrast to the On and Off Workloads scenario, applications in this scenario are used all the time. But they also require additional resources when certain well-know events happen. Throughout the event the load on the application spikes and then fades out until the next event happens.
Take for example marketing web sites – when the marketing team starts a new campaign the traffic to the site significantly increases because people want to learn more about the new product or offering. After the campaign is over the traffic slows down and at some point becomes constant (or with very little fluctuations) until the next campaign. Another good example is the holiday season for shopping sites – based on historical data it is well known that the traffic to those sites is several times higher during the holiday season than through the rest of the year. Using public cloud offerings in both of those scenarios, new workloads can be easily added to serve the additional traffic and shut down after the traffic decreases.
Each one of the scenarios above describes the case where demand for resources changes dynamically. One may think that an application with a constant load may not be a good candidate for deployment to the cloud, however, this might not be the case. The application types described above are just a small set of the applications applicable for the cloud. It is important to clearly define the goals of your project, and if you are considering using the cloud you should think not only think about reducing the cost and faster time to market (something that the above scenarios really benefit from) but also about productivity improvement, reduced complexity, or easier integration with third party services. Every development project that targets any of those goals can benefit from deployment to the cloud.
Hear more from Toddy at WTIA’s January Tech in Focus event:
Cloud Computing: Choosing the Best Computing Option for You
The Public, Private, & Hybrid Cloud
Wednesday, January 16, 2013
4:00 PM – 6:00 PM
Metodi “Toddy” Mladenov is the Senior Sales Engineer for Apprenda, Inc., an open platform as a service (PAAS) stack that enables any organization to transform their existing infrastructure, or private cloud investments into a self-service cloud application platform. He’s also the organizer for Cloud Talk Meetup and was the Senior Program Manager for Microsoft Windows Azure.

