Cloud development

As always, it’s been a while since I wrote something here. Anyway, I’m going to present here a new concept:  cloud development. First of all I must say: the people of Cloud9 IDE (Mozilla bespin/skywriter has been merged into that) are already working on something similar to my idea, but not quite the same.

The idea behind Cloud9 IDE is being able to develop javascript collaboratively  using only the web browser. It even supports debugging, but that’s because the browser actually can run javascript code itself. They plan to support syntax highlighting for more languages. They of course have a chat for those connected to the ide, and changes occur live to the code for everyone connected at the same time.

Gobby/Kobby are native (gnome, kde) collaborative editors which use the infinote protocol for collaborative editing. So you connect to a infinote server, and then you can see the files in that session, edit them, add/remove files, and chat with your colleagues.

None of those solutions provide real general purpose “cloud development” for me.  These are the features I¡m looking for:

  • The server side is a bunch of machines in a cloud configuration which provide an API.
  • The server side provides compilation for languages like C/C++.
  • The server side provides inexpensive VMs that can be easily cloned/forked.
  • When you create a new project in the cloud, a new VM is given to you, and you can configure it as you like. There you install the deps for your project development, download the source code, etc.
  • The server side has an rich API and has knowledge of high level concepts like:
    • VMs that can be forked, and cloned, for creating new live sessions.
    • Compilation, which can be done quickly and distributedly in the cloud.
    • Execution, to be able to see and control remotely the execution and debugging of gui applications.
  • The client side could as well be web app like with cloud9 ide, or it could be a native standalone application with “cloud development” support (Kdevelop, Eclipse, whatever..)

A simple cloud computing use case:

An Amarok developer configures a cloud development vm for trunk. Then he forks it, and creates a git branch in which he starts working in a new feature for amarok. This feature might need new libraries, difficult to compile. He doesn’t know much about how to use this library and it’s giving him headaches: he asks in the irc channel of #lib, and gives a link to clouddevelopment:// and the developer of libx sees the problem in the system while the amarok developer sees live how it’s getting resolved.

Then he posts in his blog about his new feature, and some other amarok developers think it’s really cool and connect to the feature branch’s live session and improve a bit the code, effortesly.
As you can see, this would mean,  among other things:

  • No more “person1: it’s broken! person2: it works here”.
  • No more pastebin: just connect to the live session and see (and even fix) the problem yourself.
  • Configure the VM once, and then everyone can use it.
  • You don’t need to install all the deps in your system.
  • If your computer breaks, you don’t lose the data and configuration.
  • You can access to different development environments that might require different versions of the same libs from your own computer, no dependency hell guaranteed, and no extra local disk usage.
  • Compilation can be really fast and the speed of it would not depend on how powerful your computer is:  you can have preconfigured already in the VMs an icecream+ccache set of computers.
  • You could develop for KDE in Mac OS X within Linux, or Windows, or whatever you want.

Of course this is just an idea… and I don’t currently have time for making it happen, but… wouldn’t it be nice? I thought I had to share it =)

5 Responses to “Cloud development”

  1. 1 django febrero 19, 2011 de 3:06 am

    yes that would be so cool , a cloud ide would be much less headache than native stuff

  2. 2 H febrero 19, 2011 de 3:32 am

    Sounds great 🙂

    I would like to have my hosting in one system like this and allows others to share the cpu.

  3. 3 schmeisser febrero 19, 2011 de 11:17 am

    Check out Suse Studio

    They offer – VMs
    – API
    – sharing

    You could propably use it like this:
    – work on your git branch
    – clone it into your appliance (VM)
    – share this
    – someone else merges his changes into your git branch
    – you uppdate the appliance

    give it a try and document it or tell them what you need if it isn’t quite there yet

  4. 4 The User febrero 19, 2011 de 7:46 pm

    Well, what would be about that scenario:
    1. KDevelop-Kobby-integration: option to move the current project-files to an infinote-server and edit them using the normal Kate-interface (but with realtime synchronization).
    2. Create a VM with SuSEstudio, it may be run locally or on any remote server, executed in VirtualBox or something like that, should be okay, if everybody has the rights to run and install software there.
    3. Improve KDevelop’s buildsystem and debugging-support, such that make and the application can be executed via ssh. For execution it should configure X forwarding etc. such that the runs can be seen by all developers.
    4. A GUI-configuration in KDevelop to set up those stuff in a single dialog (start vm, set password, configure infinote, configure remote execution and building)

    Nice to have for performance, but difficult: not building in the VM, but cross-compiling in the normal environment.

    Why should there be “a bunch of machines”, isn’t it okay to run it on one of the developer’s machine or any webserver?

  1. 1 sid vicious biography Trackback en septiembre 25, 2014 de 3:59 pm


Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de

Estás comentando usando tu cuenta de Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: