Suggest Work load patterns
The following workload patterns have the greatest benefits of these cloud platform characteristics.
On and Off
Applications or workloads that have a relatively short period of activity and after they have produced a result can be switched of.
Batch processing, data crunching or calculations are typical activities of applications of this pattern. A real life example is a company called Riskmetrics.
This company runs Monte Carlo simulations for its customers. Instead of running these simulations in their own datacenter where the hardware is idle when they are not running a simulation they have built their application on a cloud platform. If there is work they start as many machines they need to perform the work in the time they have. They run the calculations and then switch them off again. They are only paying for these machines when they are actually doing work.
The obvious advantage for workloads with this pattern is that you don’t have to pay for hardware when it is sitting around idle. The other advantage is that you can scale a lot bigger than you would be able to in your own datacenter.
Bursting Predictable and Unpredictable
When you are running a successful web retail operation you probably have your peak demand during the holiday season. After a couple of years you will have a fairly good idea how much bigger the demand will be during this period than during the rest of the year. This can be up to 800% higher than any other day of the year.
What do you scale your infrastructure to? Of course to this peak demand because this is when the money is made. The downside of this is that the rest of the year 80% of your infrastructure is sitting idle taking up resources because this infrastructure has to be maintained.
This scenario is ideal for a cloud solution. We call it predictable bursting because you know when the peak demand will be. Come end of November the number of nodes running your infrastructure is increased to the required levels and mid-January it is scaled down again. The resources required to maintain this infrastructure can now be used to build new features or add value to the platform.
The other bursting scenario is called unpredictable bursting. In these cases you don’t know when the peak demand will be. An example is a news site. They never know when the plane crash or terrorist attack will be. They do know that if that happens they require a lot more capacity.
Growing fast or Scale cheap, Fail cheap
This is the scenario of the tech startup. Imagine a service that allows you in a very short message (say 140 characters) that allows people to know what they are doing or thinking. Suddenly your service becomes a great hit and the infrastructure you are running it on can’t cope. You are not able to scale your infrastructure to the demand and the service breaks when it is being most used.
The problem is that you never know if your service will be such a success. If the boys and girls at Twitter would have scaled for the demand that they are seeing now they would have never launched and their initial investment would be incredible high. So you want a platform that is able to scale fast and cheap but does not have the initial investment you would have if you were going to buy hardware.
This is exactly what a cloud platform can provide. You can scale your infrastructure very close to the actual load that is being used on the platform. If the application has been architected right this will keep the fail whale away without breaking the bank.
Connected applications
Another workload pattern I think has great benefits from running in the cloud are connected applications. The obvious reason is one of the characteristics Gartner attributes to cloud computing. “Delivered using internet technologies”. In other words most cloud platforms are located on the internet and are therefore easy to connect to from any other application or device that is connected to the internet.
You can have your application connect to other applications (at your customer, business partner, affiliate network) using this pattern. The third system would be a cloud application.
Commodity workloads
The workloads described above are workloads of custom application that would be deployed to a platform as a service solution like Windows Azure, Amazon EC2 or Google App Engine. The final pattern isn’t really a pattern but I think that without it this article would not be complete. There are workloads that are so commonplace that migrating them to a cloud platform makes sense. E-mail is such a workload. There is nothing strategically about running your own E-mail platform so move it to the cloud. Buy it as a Service.
I think this is a useful yardstick when thinking about new IT projects. Cloud computing is here to stay but it is not the holy grail, neither the end to world hunger. It is a deployment model that has certain distinct advantages. Looking at these advantages there are 5 types of workloads that benefit most from migrating to a cloud platform. These are On, Off, Bursting, Growing Fast, Connected Applications and Commodity Workloads.
As I said at the beginning for me this is the starting point of more thinking in this direction so if you have an opinion about this please leave a comment.
IT as a service