Software Design Blog

Journey of Rinat Abdullin

Why Is Cloud Computing Important for Us?

This post is a reply to an extensive comment by Sean Kearon to the previous Cloud Computing post.

I agree that the availability of decent distributed computing resources is not crucial to success. Yet, having opportunity of leveraging cloud computing could save a few resources for the customer. And sometimes this is a success factor.

For example, one of my past projects had to be developed in a situation where customer’s resources were extremely constrained. That was actually one of the reasons why I was interested in that project back then – scarce resources can give you plenty of ideas for the highly-efficient project development and delivery.

It was a simple implementation of xLim approach with modular desktop Smart Client and a web dashboard.

Production version was living fine on a plain web hosting account. We didn’t even need to scale out to multiple hosting accounts (although this option was embedded in the architectural design as a cheap way of expanding capacity). In the end everyday costs for the customer were quite low.

Yet, eventually there was a need for a customer to go to the dedicated server for two reasons: documents data store grew beyond 4Gbs of size (we hit a hosting limitation) and an automation engine had to be introduced. This has obviously raised monthly bill for the customer.

Windows Azure (if it existed in a mature form at the moment) could’ve saved from these unnecessary expenses simply by providing a scalable storage and a worker role on the pay-as-you-go basis.

This kind of expenses optimization is obviously possible in more complex and costly projects (at a larger scale). Although there always will be specific situations when it is cheaper and more efficient to invest into owned and hosted computing resources, they do not make it into a high percentage.

One of the points of the cloud computing as a business model is optimization of the expenses. This happens from two sides of the story:

Consumers of the cloud computing services don’t have to invest into the resources up-front (where resources could be from a dedicated server to a data center) in order to have the capacities and functionality meeting their demands. Neither do they have to over-invest in order to have the capacities meeting their peak demands (i.e.: having these extra few servers in a rack just to handle holiday sales spikes).

Consumers are also saved from the maintenance-related expenses and gain the flexibility of getting rid of the resources, should such a business need arise. Getting rid of a data center is a bit harder.

Providers of the cloud computing (any large hosting provider with his data own datacenter is a possible candidate for that) could utilize their existing computing resources more efficiently by shifting them into the cloud and linking with flexible pricing strategies.

For example, say, we have a lot of idle CPU cycles scattered around the data center on weekend nights in USA. Would not it be more efficient to sell them for the computing purposes (at a flexible rate) instead of just letting the resource sit around?

This ability to optimize usage of resources at various levels of the picture is one of the primary factors why the cloud computing hype is more than a temporary buzzword (energy bills represent the second factor).

Basically one could say that the cloud computing is a development of the virtualization story that could work at a higher level of detalization.

Utility computing, that allows (or would allow in near future) efficient distributed computing on-demand for CPU-intensive or data-intensive operations, is just one of the extreme examples of the opportunities provided by the idea of cloud computing. It has its benefits but certainly 90% of the companies don’t even need it at the moment.

High entry barrier in front of this technology (especially for .NET scenarios) further lowers its usability.

Hosted development environments could obviously also be considered as some form of cloud computing that helps to optimize developers’ expenses. This market niche is evolving quite fast.

For a $7-$15 per month one could get the following pre-configured setup:

  • Issue Tracker
  • Version Control System
  • Wiki and documentation management

For $60+ per month one could get a brand new Windows Server 2008 virtual machine that could host all these above and an integration server.

Comments, thoughts?

If you are interested about development of cloud computing solutions under the .NET stack - check out xLim 4.

Related Posts: