Latest Tweets:
I'm a technology analyst from Wellington, New Zealand.
paperless@timmcnamara.co.nz @timClicks
This post focuses on broadly why people are telling you that the cloud is the future of the world. I want to clarify things for you. I feel that there’s lots of confusion around this area. I can’t speak for others, but when I first heard it, I wondered whether the term “cloud computing” sounded like some form of euphemism.
There are two senses of the word that are used most extensively. First, there is there is the sense that consumers are being taught - applications that are delivered via the web. The second sense of the term is more technical. It refers to how companies purchase computing power. The conflict between these two senses is where most of the confusion derives from. That’s because, when people are first introduced to the term, are taught the first meaning. Then they prod deeper, only to be perplexed by technicians using the second meaning.
The first meaning is an advertisng slogan. Here, cloud is intended to mean easy, light and free from installation. There are a few benefits to this for users. They never get interrupted with requests to update their software, they can often run the application from many devices or computers running different operating systems. Every time they run the application, it always runs the most recent version. All the operating system needs is a web browser, and they are plentiful.
The second meaning is what makes IT managers smile. See, applications have been delivered over the web for a long time. But, they wouldn’t qualify as cloud computing in this sense. That’s because the companies running the applications would have been purchasing computers and hosting everything themselves.
In order to get something onto the web, you need to have a server somewhere that’s hosting the application. This is fairly simple when you’re a startup, because you have negligible traffic. But what happens when you grow? As you expand, you may need to have servers in multiple geographic locations. But how many? If you get very big, very fast, your servers might simply break. But if your startup grows slowly, you’ll end up paying for services that you didn’t need. The cloud makes those problems far more easy to deal with.
Blame Christmas shopping. According to the urban legend, Amazon had computers idling the whole year because it needed them for the Christmas rush. In order to service all of those orders, it needed to buy lots of extra hardware. Outside of December, this hardware would site idle. Amazon thought about ways to provide this idle capacity to the world.
I also blame some things that I haven’t got evidence for, but seem to be sensible.
Internet browsers
They’re much better than they were. Most importantly, they contain far faster JavaScript interpreters, which means that applications are much more responsive.
Corporate security policies
It’s very hard to get a new software package into the enterprise. Security and procurement policies that are established to prevent new products to mess with the current setup. Corporate ICT contracts tend to have a set range of software. Adding anything new means adding a new item in the support contract. This can be conviently avoided by software delivered over via the web.
Speed of execution
Lots of tiny companies have introduced products into the market very cheaply. It’s now much cheaper to run a startup than during the 1999 tech boom. They have been able to bypass traditional software distribution models and are run very efficiently. This creates a sense of panic in larger vendors, who are desperate to remove any advantages that smaller players exploit.
Peer pressure
Google, leading with Gmail, has demonstrated that it is possible to create very good software that generates huge revenue. There have been a flood of new norms established since Wikipedia demonstrated that the web could be a force of good.
Web scale
Many web companies experience exponential growth. The problem with that is that to provision new servers exponentially. Dealing with the scale required to serve many millions of requests a month is pretty hard for a team that was used to having a few thousand users a few months ago. Sometimes, it’s just great to be able to offload that work of handling that growth to companies that build their own power stations to run their data centres.
Maturation of web frameworks
Over the last decade, a number of tools used to build websites have matured. These tools include things like dealing with databases, databases themselves, how to sharing of source code within teams, through to systems that told you authoritatively where to locate your images in your application directory. It all helps.
Agile software methodologies
Although it can look like a bit of a fad, agile has made a huge impression in the world of software development. If nothing else, it has produced a culture shift that allows companies to release products as ‘beta’.
Remember the two senses of the term cloud computing we discussed above. The second sense is what’s most interesting here. That’s because the benefits to software producers are far more immediate than software users.
Pay for what you use
Companies now only need to pay for what they use, not what they think they’re going to use. Resources are typically rented now on hourly contracts. This is great for most web applications, because they have a cyclic demand curve. An internet dating website is likely to experience peaks during the evenings. By purchasing most of its computer power for those few hours of the day, it’s possible for the save lots of cash over the long run.
Sharpened focus
Using cloud computing systems, software developers can specialise on developing software. They don’t need to worry on configuring servers, upgrades, temperature, disaster recovery and more. All of this is taken care for them.
Scaleability
Cloud systems tend to be configured in a distributed manner. This means that resources can be allocated on-demand. If your site experiences massive load, more resource can be quickly allocated to you.
Ease of distribution
Once upon a time, companies needed to sell software as if it were a physical product. Publishers needed to secure distributers in each markets. Those distributors would need to find retailers to sell the product. Those products came packaged in boxes. Inside the boxes were CDs, that contained software that would run on your computer. With the shift into cloud computing, none of that remains true.
In fact, the cost of distributing a company’s software is absorbed by the users. They pay for the bandwidth to use the service.
Ease of support
Software companies only need to support a single version of an application. This is a fairly big deal. Managing multiple versions of software is complex and fustrating. Not only does it mean that your programmers need to be fluent in multiple versions of the same thing, but so do your help desk staff, your documentation writers and your sales team. With applications delivered via the web, there is a single version for everyone. This means that it still makes sense for businesses to change the way things look or behave sometimes, even if there are gripes from some users.
As an interesting aside, even when it looks like there are multiple versions of software being sold, such as professional and educational editions, they’re probably the same thing under the hood. Often, there’s just an internal switch in the that turns functionality off for the cheaper product line. It’s cheaper to spend money to arbitrarily weaken one piece of software than maintain two products.
You’ll notice that web applications tend not to provide extra features for the premium version. Instead, they provide support for more users, more storage or more support. In this way, they get to add price discrimination without the complexity required to maintain multiple versions of the software.