Saturday, November 9, 2013

Hype, thy name is "Cloud"

To be honest, I'm tired of the word "cloud". The hyperbole about cloud computing has now reached the stratosphere. When a speaker mentions cloud computing, the first question in my mind is "what now?" I lose interest in what the speaker has to say, because I have already heard it before! What is worse is that cloud computing pundits are so wrapped up in themselves, they don't seem to notice the "audience fatigue". May be they don't need an audience, may be they only want to pat each other's backs.

What is cloud computing? The simplest definition of cloud computing is "it is a bunch of computers available for rent, on demand, over the internet". There are a few intricate features built on top of that, but this definition will suffice for all practical purposes.

Cloud computing is indeed useful under certain circumstances, but what riles me is that it is being prescribed as the single solution to all the problems. I have come up with a few scenarios where it can be put to good use:

- For small companies (or departments) working on a short term IT projects, cloud computing can provide the temporary hardware (and software) for development and testing purposes. Previously the companies have to buy hardware, especially for web applications, rack and stack them, install the requisite software and then use the servers for testing. Today they can just rent the servers from one of the providers, use them for the duration of their project (usually a few months) and then shut them down. They can even shut down their servers during weekends and nights when no one is working, to save some more money. This will definitely make the small companies more productive, free up their time to concentrate on the problem at hand. They can always include the cost of renting the servers in to the contract with their clients. This cost is usually very small when compared to the overall cost of project execution, the clients would gladly agree.

- For 24x7 companies to augment their existing infrastructure. The keywords here are 24x7 and augment. Let me explain. The 24x7 companies are businesses who have the necessity to run their servers 24x7, for e.g. Netflix. These companies should have a base level of infrastructure, i.e., servers running in their own data centers. During nights, weekends, and holidays the number of people accessing Netflix would increase. At that time, they can temporarily rent the servers from the providers and join them to their network. This will augment their capacity and enable them to service the increased demand. Once the demand goes down, they can shut down the rented servers.

What is cloud computing not good for? It is not good for 24x7 companies to run their base infrastructure from the cloud providers. For e.g., Netflix, unfortunately, rents all of its computers from a cloud provider. They do not have a base infrastructure of their own. Renting the computers is way more expensive than buying and installing the servers, and paying for the electricity, bandwidth and other utilities in the data center. Read Jeff Atwood's calculation here: The cloud computing prices are falling, and one day might be cost effective to rent all the computers all the time, but we haven't reached that situation yet.

Remember, cloud computing does not eliminate the need for system administrators, engineers who are required to install and configure the servers and maintain the systems. Companies would still have to employ the same number of people. There are no savings there. Hence the 24x7 companies should always have their own base infrastructure in their own data centers, and use cloud providers only to augment their capacity during the times of increased demand.

To counter the human resource cost, the industry has created a new role called "devops", in which developers also double as system engineers, DBAs and network engineers, but it is too early to tell whether it will save money or introduce its own set of complexities. (Note: Microsoft has already eliminated the role of testers. Developers do the testing as well)

- 24x7 small companies and startups: The same cost argument is even more applicable to smaller companies and startups running server applications. The cost of renting servers takes the lion's share of the operational expenses in smaller companies. Hence smaller companies should go for hosting their own servers, and slowly move to the hybrid model described above in the Netflix example.

Comments are welcome. Please let me know your thoughts.

1 comment :

  1. Hi, Great.. Tutorial is just awesome..It is really helpful for a newbie like me.. I am a regular follower of your blog. Really very informative post you shared here. Kindly keep blogging. If anyone wants to become a .Net developer learn from Dot Net Training in Chennai. or learn thru ASP.NET Essential Training Online . Nowadays Dot Net has tons of job opportunities on various vertical industry.
    or Javascript Training in Chennai. Nowadays JavaScript has tons of job opportunities on various vertical industry.