Friday, April 23, 2010

Suitable or Not Suitable for Cloud

Customers ask normally, whether they can move everything to cloud or selectively move to cloud. It is actually a good question to ask. Cloud is not a solution for everything. Until unless you gain from moving to cloud, why bother at all. And the biggest promise cloud provide is economic benefit.

Let's look at some business cases, where cloud makes lots of sense and where it makes little or no sense.

Business cases that are good fit for Cloud

1. Specialized functionality
--------------------------
let's start with an example. NY Times wanted to convert their 15 million scanned documents into pdfs and create searchable indexes. Total size of this documents are 4 TB. It would have taken months to do this task. But they did over a weekend in amazon cloud using 100 of linux servers. Most importantly they could do it using a credit card.

Similar functionalities that need huge amount of resources but not on a continuous basis is definitely a good fit for cloud.

There are some cloud offering that solve specific problems. For example, Amazon's CloudFront. It is a good fit for content delivery around the globe. They have edge point servers across the globe and your contents can actually be cached in edge points to delivery contents faster. Imagine if you have to actually setup such infrastructure across globe to achieve this. Amazon provides this at a fraction of a cost that you would actually incur if you decide to go on your own.

There is no predefined list of specific tasks that fit the cloud. You need to look at your need and decide by comparing cost-benefit between cloud and in-house solutions.

2. One-off tasks
----------------
One time tasks that need computation power. For example, if you need to create searchable index on you documents one in a month. Then upload the documents, run your programs (Map-Reduce a good option) to create indexes and then download the indexes. Again look at your requirement and decide.

3. Inconsistent load/demand
---------------------------
Applications that have variable or seasonal load. Applications that are accessed by users between a time-frame e.g. only during day time having a peak load for only 2/3 hours. Or if your application or website is accessed during holiday seasons or pertaining to a event like sports event that happens once in a year. These are good fit for cloud. There will be lots of unused capacity if these solutions are hosted in-house. Cloud provides excellent economic benefits for these kinds of applications. You can scale up or down depending on demand and these can be automated in most of the cloud provider environments.

4. Expensive or no expertise to run in-house
------------------------------------------
If you are a startup and do not have capital for investment in your own infrastructure. If you do not have expertise to build data centers, applications or run your IT operations. Then cloud is a good fit. Cloud is pay as you go and can be scaled as business grows.

5. Time-to-market is essential
-----------------------------
If you need to develop and host something very quickly and you can not waste valuable time in ordering new servers, setting up infrastructure. Then cloud can be your friend.

Cloud is not a best option for what kind of applications

1. Applications that need deep integration into your enterprise
-------------------------------------------------------------
If you application integrates with several other applications in your enterprise and all applications can not be moved to cloud. If your application interacts with many applications for most of the work it does. Then moving this application may require compromising on performance or security aspects. These applications are not a good fit.

2. Highly sensitive and heavily regulated data
-------------------------------------------
Sensitive data must be kept out of cloud unless you have a very strong security implementation. There are some regulation that data can not be kept out of organizations's premise or national boundaries. These kind of applications are not good fit unless cloud providers provide solutions specific to solve these issues. Amazon EC2 provide data centers in US and Europe. So, you can choose where your data or application can run and hence comply to some regulations.

3. Applications already running in premise and have reached highest level of maturity
------------------------------------------------------------------------------------
I think no need to disturb applications that are running and have reached higher levels of operational efficiency. If you still want to migrate then you can do a proper cost-benefit analysis to understand implications.

Summarize
-----------

Cloud and some applications are made for each other. Some applications are good if they run in-house. If one suggestion I would give then that would be : Architects should compare cloud and in-house for all new application developments. And only after making proper analysis they should choose what is right for it. Rejecting cloud without considering pros and cons, is not advisable.

I hope you enjoyed reading this blog.

Please provide your comments or write to me at manaranjan@enableapps.com

0 comments: