Danger in the cloud: a proposal

In response to recent events, I’d like to propose a different kind of web service that overcomes the privacy and reliability issues with cloud web applications, while providing a solid business model for both application developers and service providers, as well as a seamless, easy-to-use experience for end users.

The T-Mobile storm

Over the weekend there’s been a storm surrounding the T-Mobile Sidekick, which is produced by Microsoft’s Danger subsidiary. It turns out the device stores the primary copy of data like calendar and address book information in the cloud rather than on each device; perhaps a fair proposition if you knew you could trust Microsoft’s servers. Unfortunately, said servers went down last week, and Microsoft didn’t have a working backup. Sidekick users suddenly found themselves without their personal information.

Is cloud computing safe?

Understandably, this has sparked a wider conversation about computing in the cloud. AppleInsider summed it up:

More immediate types of cloud services take away users’ control in managing their own data.

While Ina Fried over at CNet noted:

The Danger outage comes just a month before Microsoft is expected to launch its operating system in the cloud–Windows Azure. That announcement is expected at November’s Professional Developer Conference. One of the characteristics of Azure is that programs written for it can be run only via Microsoft’s data centers and not on a company’s own servers.

The issues surrounding cloud computing have been discussed for a while, and aren’t limited to these sorts of accidents; here’s a post I wrote in 2007 about the rights we ought to have over our cloud data. Partially because of the risks involved, and the risk of leaky data, some kinds of organizations and enterprises simply can’t use cloud computing services. (In the UK, for example, check out the requirements imposed by the Data Protection Act.) At the same time, the Sidekick debacle shows there are clear risks to end-user consumers too.

Despite this, the benefits of cloud computing are obvious, particularly for the organizations that can’t use them: device-independent applications and data we can access and use from anywhere.

Can we have the best of both worlds?

The personal computing model is relatively secure: you install applications on your computer, and they sit on your local hard drive, along with your data. Assuming there hasn’t been a security breach, or you haven’t explicitly provided access to your data over a network or through a direct action like emailing it, it’s safe.

On the other hand, because your applications and data are locked away on your hard drive, you generally have to have direct access to it in order to use them. There are remote desktop solutions like VNC, but these are clunky and fairly useless over a low bandwidth connection.

Web applications that store their data in the cloud overcome this obstacle, but lose the security of sitting on your own computer.

What if there was a halfway house between these two situations?

The personal web server that works

Theoretically, anyone can run their own web server, right now, that allows them to install web applications in a more secure, controlled environment and access them from anywhere. But there are some very good reasons why they don’t:

  • You need system administrator skills, usually on top of Linux skills, to do it.
  • Web applications – even relatively easy-to-install ones like WordPress or Elgg – are fiddly. There are configuration files, directory permissions and (potentially) source repositories to contend with.
  • The web applications you can install on your own server are often not as good as the ones you can get in the cloud.
  • When something breaks, it’s your own responsibility to fix it.
  • Servers are expensive.

What if we could fix all of these things at once? Enterprises, organizations and individuals could have their own, more secure environment that would allow them to use the cloud applications they needed with fewer security risks, while enjoying the ease-of-use and immediacy that the cloud provides.

One of the reasons everyone’s leaping to copy the iPhone’s app store business model is that it just works. Sure, you’re forced to delegate root control of the phone to iTunes, and the operating system places some seemingly arbitrary restrictions on what applications can and can’t do. But the handset works, and installing software is easier than on any other platform. The truth is, most ordinary users don’t care about those restrictions. Hell, I’m a computer scientist software developer entrepreneur power user, and I’m just happy the thing works. (Context: my previous phone ran Windows Mobile, which doesn’t.)

Imagine if you could get your own server environment that was as easy to use as the iPhone. It would look something like this:

Front end & business model

  • You sign up for the service, possibly for a small monthly fee, possibly for free (depending on the service provider). Alternatively, if you’re more technical / an enterprise / an organization, you install it on your own infrastructure. The platform is available for free and could be open source.
  • From a secure web-based admin panel, you can add and remove users (although the platform optionally also supports Active Directory and similar standards, as well as OpenID), and install / uninstall applications from a centralized app store with the usual features: ratings, search, similar apps, etc. Installation is one-click, and upgrades are similarly seamless. (That WordPress “what, I have to upgrade again?” problem: solved.)
  • Much like the iTunes app store, applications may be free, or may cost a small amount. Applications may impose licensing restrictions based on number of users: for example, the app costs $4.99 for up to 5 users, $19.99 for up to 25, etc.
  • As with the iTunes app store, the application store provider takes a cut – and so does the service provider. This creates a strong incentive for multiple vendors to provide hosted services for little cost. It also effectively creates a discount for enterprise, organizational and technical users, who can bypass a service provider. The payment to the web application developer also, for the first time, creates a solid commercial marketplace for high quality web application products, while the free option allows open source vendors to distribute as normal.

Technology

  • Behind the scenes, the server runs existing open source technology: Apache, Tomcat, PHP, Perl, Python, Ruby on Rails, MySQL, Postgres, etc. However, there are restrictions on how applications must be structured, behave and share their data. This allows the one-click install and upgrades to function correctly. Importantly, though, users of the system need never worry about the underlying framework.
  • The platform has a central data store that all applications may access via an API. This data store is fully exportable, allowing (for example) a datastore stored with a service provider to be moved to an internal setup as an organization expands. As with the iTunes app store, applications are linked to a store account rather than a physical machine, so the application licenses are portable too.

Of course, this wouldn’t replace standard web servers. What it does provide, however, is a simple cloud operating system that simultaneously works in a more secure, dependable way than existing services, would be more acceptable to many organizational users, and provides a genuine business model for web application developers.

The web is now an end user application platform, but still behaves like a lightweight document store. To obtain the level of software customization we all enjoy on our home PCs, a much higher level of technical competence is required. I strongly believe that this situation must change for the web to be a viable commercial application framework.

Comments

8 responses to “Danger in the cloud: a proposal”

  1. Matt Leifer Avatar

    This sounds like a very good idea. I would be interested to know how easy it would be to build a platform like this on Opera Unite. I haven’t looked into it much myself, but it looks like they have got the easy to install web server part of the platform.

  2. David Maddison Avatar

    As I was reading this I was also started thinking that it’s describing (to some extent) Opera Unite.

    Obviously the technology services can be built in is a little limited although (warning:plug comming up!) I’ve built gwt-unite (gwt-unite.googlecode.com) which allows you to build Opera Unite applications using Java.

  3. Andrew Ducker Avatar

    Assuming there hasn’t been a security breach, or you haven’t explicitly provided access to your data over a network or through a direct action like emailing it, it’s safe.
    Or a crash, or a hard drive failure, or accidentally deleting a file you shouldn’t. The vast majority of people don’t perform backups, let alone have any kind of backup strategy. Doesn’t sound terribly safe to me :->

    I think that setting standards so that applications/data could be run either individually or by service providers would be great (the Typepad/Movable Type approach) – and hopefully more things will be commodified as we go along.

    Now, we just need to get someone to produce an intuitive, simple system that requires no configuration and release it as open source!

  4. Ben Werdmuller Avatar
    Ben Werdmuller

    @Andrew: I take your point, and was actually thinking that even just an intuitive install system (everything else aside) would be a massive improvement on the current situation. I might even consider starting the open source project myself. Maybe.

  5. Gareth Francis Avatar
    Gareth Francis

    Actually, what you describe sounds a lot like how setting up a basic virtual server is now (when it all works), except with a bunch of restrictions (so that it nearly always works), and some (more) web ui magic to make it more seamless and get rid of the sysadminy bits. Plus, of course, the content in the form of the nicely packaged and ready to go applications.

    The underlying technology is all there already – it just needs putting together.

  6. Ben Werdmuller Avatar
    Ben Werdmuller

    @Gareth I agree! The iPhone installer process isn’t too dissimilar to apt-get, for example, except it happens with a click or two and you get a pretty progress bar instead of a whole bunch of text.

    The technology is almost all there; it’s just a case of wrapping it up with end users in mind.

  7. Brian B Avatar
    Brian B

    I think this sounds like a great idea. @Andrew, a simple backup could be built into the software. Or it could be used on top of Windows Home Server, which has a great backup solution already built in, and that would provide the server capability. Although, I think IIS is pulled out of WHS, but it would be possible to install some sort of web server on top of it.

  8. Jeff Van Campen Avatar

    This is a superb idea. I’ve been thinking along similar lines for some time. I was thinking that a stripped-down Ubuntu could provide the base system. I don’t know if anyone has put a web-based interface on apt-get, but that could be a start.

    Ideally, you could do this in an iPhone-like way, so that the applications were bundled as a single package (no dependencies).

    I was largely inspired by this Steven Pemberton talk (in particular the bit at about routers at the end) and the type of federation that is built into StatusNet (formerly laconi.ca) and Google Wave protocol.

    I’d love to see something like this working. If you’re thinking of starting a project, I’d love to talk more about it.

Leave a Reply

Your email address will not be published. Required fields are marked *