Tuesday, December 09, 2008

Why the cloud is unavoidable.

This is really old stuff, but I feel it's worth repeating.

The importance of "cloud" computing to business is far beyond simple cost savings, allocation of resources, capex to opex conversion and economies of scale. These are the obvious reasons for considering the cloud and they are little more than a follow my leader game caused by the commoditisation of IT. As more competitors adopt the cloud it will create cost competitive pressures for others to follow. Consumers of IT will need simply to adapt to this change in order to retain their relative competitive positions (this is known as the red queen effect).

It's a very old merry-go-round caused by the usual transition of the once novel and new field of IT infrastucture to more of a commodity. It will have all the trappings of past transitions from the cries of users for second sourcing options, the battles over standards and portability, the usual formation of exchanges, brokerages, marketplaces and the confusion created by vendors as they attempt to prevent their industry being commoditised.

However buried in all this is one truly interesting aspect known as componentisation. From the work of Herbert Simon's and his theory of hierarchy, we know that the speed of evolution of any system is directly related to the organisation of its subsystems. Take a moment to consider how fast it is to build an application today using a database and a development platform and then compare this to how slow it would be to build the same application if you had to first start designing the cpu, I/O and memory.

Componentisation can make an incredible difference and the more organised the subsystems are, the faster it is to build new and adapt old systems.

The computing stack, from the applications we write, to the platforms we build upon, to the operating systems we use are now moving from a product to a service based economy. This change can be clearly seen from a quick scan of what is hot today. Software as a Service, Web Services, Mashing up Data Services, Hardware as a Service, Service oriented architecture ... it's all the same thing.

The shift towards services will also lead to standardisation of lower orders of the computing stack to internet provided components. A consequence of this will be an acceleration in the speed at which new IT systems can be built and modified. The world of IT and business on the web is about to get a whole lot faster.

It should be remembered that the battle for survival of any company revolves around the non-trivial task of balancing the needs of adaptation (changes to the market, the red queen effect) and innovation (creative destruction). However, it is these two effects of adaptation (through maintaining cost competitiveness and matching increased competitor agility to adapt to changes) and innovation (an ability to bring new ideas to market more quickly) which will force any business to choose cloud.

You don't have a choice, you never did. The cat is well and truly out of the bag and the old way is in decline. If you think that "cloud" is simply about more efficient and lower cost provision of IT then prepare yourself for a rude awakening.

You might think that cloud computing won't effect you, but it will if you use any form of IT infrastructure. Unfortunately, at different layers of the computing stack, various companies are preparing a gilded cage for you to walk into.

You should already be thinking about the cloud and your first words to any vendor should be:-

  • "Show me the alternative providers running a similar service not owned by you and how easy is it to switch between your service, their service and one I want to run myself?"

  • "Am I dependent upon any particularly vendor with these services?"

3 comments:

rhyshopejones said...

Nice post Simon. Interesting how the trasnition to components hosted in the cloud therefore effects the sales pitch for adoption in an enterprise; rather than to the infrastructure teams, the potential "to do things that you couldnt before" is in reducing the cost of bespoke application development which is ommonly a different part of the organisation.

Are you aware of any comparisons of time-to-market or costs between developing bespoke versus developing using cloud services? Would add fuel the fire.

swardley said...

Back in 2006, the company I ran created a utility computing cloud which contained a JavaScript application framework known as Zimki (it is now defunct, as it was closed in 2007).

This system enabled entire applications both front end and back end to be built in JavaScript.

Now this complicates the picture slightly because this provides the benefits of componentisation at a slightly higher level of the computing stack (the framework layer containing the development platform, the database, messaging, storage systems etc) but it shows the effect.

One of my developers, created a wiki (from scratch) with client side preview i.e. the changes you were making to the wiki could be seen as you were making the changes.

The total time for design, coding and release to the internet was around about 30 minutes. To have put the system together from scratch (including hosting, installing all the components, framework elements etc) would have taken several days.

Another example is that we built a carbon calculator for ETech conference in 2007 which used Zimki and mashed up data from Google maps and Carbon offset information. This application enabled the attendees to graphically add their home address and the system would calculate the total carbon cost of the conference. Time for design, development and release was about 40 minutes. Again, if you were building everything from scratch, you could be talking at least a couple of days to get things up and running. If you were building the mapping components, it would be weeks.

As a novice to JavaScript, I built a service in 2006 which examined digg / flickr / technorati for recent posts on specific words associated with moods. It provided a graphical display of the internet mood and how that mood was changing. Total time to design, develop and release to the internet - about half a day, and that was for a novice. By traditional means, setting up hosting, installing databases, frameworks, getting it all to work etc - weeks.

Even in the early stages of the Zimki environment, it was possible to increase the speed of development by an order or so of magnitude.

With componentisation and common libraries of standard services you could be talking several orders of magnitude particularly when talking about larger systems which will contain many components.

Hope that helps.

Mark ben said...

Thank you for your valuable content , Easy to understand and follow. As said, the migration to cloud is very essential for the protection of the database.

Cloud Migration services
Aws Cloud Migration services
Azure Cloud Migration services
Vmware Cloud Migration services
Database Migration services