Saturday 18 April 2009

Cloud Computing – SMD Services

Rinat Abdullin has recently put up an interesting post about cloud computing, along with another post as a response to a comment of mine.  Rinat pointed out the benefits cloud scenarios bring when there is a need for distributed computing resources, highlighting Amazon’s recent announcement along with Microsoft’s offerings in that space

I agree with Rinat that distributed computing scenarios are clearly winners for cloud computing.  However, my view is that one of the critical success factors for the success of cloud computing will be developer adoption.  If you have developers using your product it will succeed (as a cloud platform), if you don’t then…well, you get it!  My view is that the larger organisations who already have their own infrastructure will certainly adopt cloud resources, but it will not be these organisation that will drive the adoption of cloud technologies.  It will be the small to medium enterprises (SME) for whom the effort to host themselves is a large compared to their overall effort to stay in business.

What is going to drive SME uptake – having software that delivers business advantage.  How does this get to them – by developers producing it for them.  Making your cloud platform accessible and usable for developers will drive wider adoption.

In Rinat’s second post he mentions a scenario where if he had had a cloud platform like Azure available, cost could have been saved.  He also outlines the basis for how cloud computing will reduce the overall costs of the adoption of a the provided in the cloud – the larger data centres selling their idle CPU cycles. 

He then points out that there is fast evolving market for hosted developer environments where you can easily and cheaply access version control, wiki, issue tracker services, etc.  In an earlier post I mentioned one such provider, WUSH, with whom I have had a positive experience throughout the last year in the smaller scale development work I do out of normal working hours. 

It is this area – developer services – that I see as the key to making cloud computing ubiquitous.  If you can provide developers with full-lifecycle support from your platform they will come in their droves.  By full lifecycle, I mean support for planning, production, test and live all in an integrated set of cloud services.

As mentioned, there we see some support for planning and some aspects of production already out there (search for “hosted subversion”, take a look at Scrumy or Manymoon, etc.), and you can but cost efficient test and live  environments (by renting your own server).  But to get other aspects running, like a build or CI environment, involves setting it up yourself on a server you have rented yourself.  However, doing that would not be using SaaS beyond having a server hosted in the cloud.  Unfortunately, I know of no decently priced build service that for commercial projects.

What do I want to see?  In the short term, I’m missing a sensibly cheaply priced build services for commercial projects (see James Kovac’s recent announcement of their new Team City service for OS projects).  In the longer term I want to be able to have a fully hosted CI environment that prices me by disk and CPU usage. 

The ultimate goal: Microsoft to host TFS and reduce the cost of adoption for SMDs (small to medium developers :) ) to the Team System versions of Visual Studio.

In the meantime, will I be using the current set of cloud services?  Absolutely, both in my production processes as an SMD and for services that my clients will use.  And, I am doing this for the the reasons Rinat has outlined!