We'll see | Matt Zimmerman

a potpourri of mirth and madness

On Cloud

If you’re convinced that “cloud” is a useless buzzword, being used to describe everything under the sun, old and new, then…well, you’re right—that is, except for the “useless” part. It’s true that this word is being (ab)used in many different products, services and technologies, which do not seem to relate to each other in any concrete way. “Cloud” in the abstract is being defined in many different ways, based on different fundamental characteristics of “cloud technology”. Nonetheless, there is something genuinely important going on here, and this is my view of what it’s about.

The hype

Countless business which only had “web sites” or “web applications” in 2008 now call them “cloud services”. They aren’t delivering any new benefits to their users, and they haven’t redesigned their infrastructure. What do they mean by this?

Cloud is defined, some say, by where your data is kept, and “cloud” means storing your data on remote servers instead of internal ones. Millions of Gmail and Flickr users have been “in the cloud” without even knowing it, and so has everyone who reads their mail over IMAP, or uses voicemail. In short, cloud is just data that is somewhere else.

Credit: jurvetson

Last September, I watched a presentation on “Cloud computing” where Symantec pitched their anti-virus product as having something like three different “cloud computing” technologies. These, it turned out, all involved downloading files over the Internet. In this view, cloud is essentially about the network, derived from our habit of using a drawing of a cloud in our network diagrams for so many years. Wikipedia currently shares this view, as its Cloud computing article opens with “Cloud computing is Internet-based computing”. No Internet, no cloud.

Maybe cloud is just SaaS, and any service provided on a pay-per-use basis over the Internet is a “cloud” service. It would seem that cloud is about paying for things, especially on a “utility” basis. The cloud is computing by the hour; it’s something you buy.

Others maintain that “cloud” is just virtualization, so if you’re using KVM or VMWare, you’ve got a cloud already. In this view, cloud is about operating systems, and whether they’re running on real or virtual hardware. Cloud means deploying applications as virtual appliances, and creating new servers entirely in software. If your servers only have one OS on them, then they’re not cloud-ready.

If this vagueness and contradiction irritates you, then you’re not alone. It bugs me, and a lot of other people who are getting on with developing, using and providing technology and services. Cloud is not just a new name for these familiar technologies. In fact, it isn’t a technology at all. I don’t think it even makes sense to categorize technologies as “cloud” and “non-cloud”, though some may be more “cloudy” than others.

Nonetheless, there is some meaning and validity in each of these interpretations of cloud. So what is it?

A different perspective

Credit: TangYauHoong

Cloud is a transition, a trend, a paradigm shift. It isn’t something which exists or not: it is happening, and we won’t understand its essential nature until it’s over. Simon Wardley explains this, in presentation format, much better than I could in this blog post, so if you haven’t already, I suggest that you take 14 minutes of your time and go and watch him do his thing.

This change doesn’t have a clear beginning or an end. Early on, it was a disconnected set of ideas without any identity. We’re now somewhere in the middle of the bell curve, with enough insight to give it a name, and sufficient momentum to guess at what happens next. In the end, it will be absorbed into “the way things are”.

What’s going on?

So, what is actually changing? The key trends I see are:

  1. People and organizations are becoming more comfortable relying on resources which do not exist in any particular place. Rather than storing precious metals under our beds, we entrust our finances to banks, which store our data and provide us with services which let us “use” our “money”. In computing terms, we’re no longer enamored with keeping all of “our” programs and “our” data on “our” hard drive: as it turns out, it’s not very safe there after all, and in some ways we can actually exercise more control over programs and data “out there” than “in here”. We can no longer hoard our gold, or drive off would-be thieves with a pistol, but that wasn’t a productive way to spend our energies anyway. While we can’t put our hands on our money, we can know exactly what’s happening with it from minute to minute, and use it in a variety of ways at a moment’s notice.
  2. IT products are ceding ground to services. In many cases, we no longer need to build software, or even buy it: we can simply use it. As computing needs become better understood, and can be met by commodity products, it becomes more feasible to develop services to meet them on-demand. This is why we see a spike in acronyms ending in “aaS”. Simon explains the progression in detail in his talk, linked above.
  3. Hardware, software and data are being reorganized according to new models, in order to provide these services effectively. Architectural patterns, such as “hardware/OS/framework/application” are giving way to new ones, like “hardware/OS/IaaS/OS/PaaS/SaaS/Internet/web browser/OS/hardware”. These are still evolving, and the lines between them are blurry. It’s a bit early to say what the dominant patterns will be, but system, network, data and application architecture are all being transformed. No single technology or architecture defines cloud, but virtualization (at the infrastructure level) and the web (at the application level) both seem to resonate strongly with “cloudy” design patterns.

These trends are reinforcing and accelerating each other, driving information technologies and businesses in a common direction. That, in a nutshell, is what cloud is all about.

So what?

This transformation is disruptive in many different ways, but the angles which most interest me at the moment are:

  • Operating systems – Cloud seems to indicate further commoditization of operating systems. We will have more operating systems than ever before (thanks to virtualization and IaaS), but we probably won’t think about them as much (as in software appliances). I think that the cloud world will want operating systems which are free, standard and highly customizable, which is potentially a great opportunity for Ubuntu and other open systems.
  • Software freedom – As Eben Moglen and others have pointed out, this trend has significant consequences for the free software movement. As the shape of software changes, our principles of freedom must evolve as well. What does it mean to have the freedom to “run” a program in the cloud? To copy it? To change it? What other protections might people need in order to exercise these freedoms in the future?
  • DevOps – I see a strong resonance between cloud—which is blurring the lines between hardware and software, infrastructure and applications, network and computer—and DevOps, which is bringing together the people who currently work in these different categories. Cloud means that we can no longer afford to treat these elements separately, and must work together to find better approaches to developing and deploying software, knocking down barriers and mapping new territory. Fortunately, cloud also means developing powerful new tools which will power this revolution.
  • Clients – A majority of cloud related activity seems to be focused on what happens to back-end servers, but what about the computers we actually touch, on our desks, and in our pockets? How will they change? Will we end up reverting to a highly centralized computing model, where clients are strictly limited to front-end user interface processing (e.g. a web browser)? Will clients “join” the cloud and be providers of computing resources, not only consumers? What new types of devices will we need in order to make the most of cloud?

I’d like to explore some of these topics in future posts.

About these ads

Written by Matt Zimmerman

April 22, 2010 at 14:00

9 Responses

Subscribe to comments with RSS.

  1. This is a terrific post. I enjoyed the part about banking – as in the US we initially were bound to Fort Knox for backing up our bills with gold stockpiles, but have been off that plan for some time now and no one seems to mind all that much (but some do).

    Also in the US, people are apparently feeling more comfortable with an unknown future – they switch jobs more readily, and even religions.

    Is our six sense coming to fruition?

    Albert

    April 22, 2010 at 15:41

  2. Wake me when the cloud provides redundancy/failover of data storage and/or services from multiple vendors. If Amazon fouls up my account, saying I didn’t pay them, they’ll shut me off — and Google should automatically, immediately, take over on the same IP address. Or something like that.

    These things they call “clouds” are the same hosting services crap in a different wrapper. Most people are better off with services like Linode, full power without the obscurity.

    jimcooncat

    April 22, 2010 at 19:02

    • You’re right that we will need the capability to switch providers, preferably very rapidly, in order to avoid vendor lock-in. We’re still some way off from the necessary level of standardization, though this is not impossible today (just not productized).

      I don’t agree with your final point, though. API-driven infrastructure services, and auto-scaling platform services, are not just the same old stuff. They offer powerful tools for building flexible and scalable systems.

      Matt Zimmerman

      April 26, 2010 at 13:59

  3. Nice article, clarifies many things. Still I don’t understand how Ubuntu is going to join the revolution with Ubuntu One, still in Alpha (minus) version.

    Basico

    April 22, 2010 at 19:06

    • Fitting with how I’m defining cloud, Ubuntu is doing a number of different things which fall under this heading.

      Ubuntu One is our SaaS offering, providing consumer services to end users through the Ubuntu desktop (and some via the web). For example, the Ubuntu One Music Store.

      We’re also making it easy to use Ubuntu Server Edition in cloud infrastructure, for example by providing ready-to-run AMIs on Amazon EC2, complete with updates and recipe-based configuration.

      And, we’re making it possible for organizations to build their own IaaS clouds using Eucalyptus, with a bundle we call Ubuntu Enterprise Cloud.

      Matt Zimmerman

      April 26, 2010 at 14:04

  4. This post is a really nice holistic exposition of cloud as a new “way.” I think the process change (e.g. devops) and organizational impacts are often overlooked when experts talk about clouds. There are definitely new abstractions here and those abstractions are giving rise to new technologies. The important part, as you point out, is how the technologies affect change in work methodologies and not the other way around. Thanks for writing this.

    rich

    April 23, 2010 at 00:33

  5. It seems to me that all these new “technologies” and paradigms add up to one thing:

    There are no steadfast rules.

    Everything must be rethought.

    Then rethought again.

    From the ground up….. with no preconceived notions of systems of the past.

    And the past means earlier today. :)

    Bruce Wagner

    April 24, 2010 at 00:06

  6. Useful – thank you.

    Chris Kenyon

    April 28, 2010 at 10:52

  7. [...] I recommend that you watch Simon Wardley’s presentation, or read Matt Zimmerman’s blogpost, as an introduction to this post. I think the most important part of the different cloud services [...]


Comments are closed.

Follow

Get every new post delivered to your Inbox.

Join 2,245 other followers

%d bloggers like this: