Turning the desktop green
Spotlight on: Codenvy, the cloud IDE
As many will testify, the move towards the browser is inevitable for most in the industry. But will our IDEs follow suit? In a software age when automation, flexibility and responsiveness is an absolute must, isn’t it time all our resources appeared in the cloud.
The proportion of projects that begin life as a developer’s plaything is truly astonishing. That is to say, a side-project which is borne purely as an exercise to showcase just what can be achieved if developers come together and put their minds to it. There doesn’t have to be a concrete concept from the get go, just a space that is conducive to creativity.
For example, back in December, we visited the London offices of Basho and learnt that their distributed database was conceived through very similar methods. Riak, of course, took inspiration from Amazon’s Dynamo paper, but did you know it was originally a research project at Akamai Technologies before becoming a separate entity?
This story repeats itself with Codenvy, which began its life at social enterprise portal company, eXo, in 2009. Away from the company’s core line of business, the project previously known as eXo Cloud IDE, initially was an investigation into a multi-tenant API within the JVM, which could scale. Before long, more and more developers were roped into the project and ideas bloomed, eventually forming a cloud IDE in the browser.
As Codenvy’s CEO, Tyler Jewell calls it, “a masturbatory exercise” which “engineers do because they think it would be quite cool to do it.” Soon enough, the team behind Codenvy wondered how else they could bolster the project, by adding native Java support for web app development for example.
But the real eureka moment according to Jewell, came with the idea to deploy a Codenvy-created app to a larger cloud platform, in this case Google App Engine.
“All of a sudden, the traffic really started to take off,” he told me. “The team grew, the scope and ambitions of it grew and eventually, I came along.”
With interest growing in the new project, eXo quickly worked out that they need to differentiate and let side-projects such as Codenvy strike out alone. Especially if there’s a really significant problem that a platform can solve.
“About 1/3 of their [developers] time is spent administering their desktop,” Jewell explains. “When you realise there are 16m global professional developers, you marry that and you figure that there's 10bn hours of lost productivity each year.”
“A beautiful thing about a cloud IDE is not that it is a cloud IDE, it's that it is a provisioning system. It's an instant and automated provisioning system that's there. It has the potential to eliminate a lot of those lost productivity hours.”
Jewell believes Codenvy can dramatically reduce the costs that come with a regular desktop IDE. He outlines four drains that are typical with Eclipse within enterprise environments. Setting up an efficient workplace isn’t quick as you need to install a dozen of plugins, aside from download various other components. Maintaining and keeping them all in sync isn’t easy either. Next, there’s a merge cost, meaning it’s hard to ensure everyone on the team has the same configuration on their machine. Finally Jewell points to the “starvation cost”, which refers all other resources that other applications need.
“If you go to a Cloud IDE, there's a couple of things that happen. One, the entire workspace is moved into a central space where it can be instantly provisioned, completely automated. Inside that workspace, you can put just more than an IDE. You can put the complete build system, [or] a runtime for the individual code in the projects.” Jewell explains, before adding that Codenvy can configure your environment depending on the type of project you require, such as Spring or Android.
Jewell outlines the approach his team have taken in order to create less overhead for developers.
“You then make that space more accessible through the browser. Then you make the workspace team oriented. So, one of the things we've done is make everything in the workspace URL-accesible, including the workspace itself.” he reveals.
“Suddenly we can do things like sharing like Webex, or collaboration like Google Docs, or forking like Github. All of these concepts are possible at the workspace level as opposed to just the file level.”
This opens up an exciting co-operative playing field for developers. For example, if you have an issue, you can directly post the issue to Stack Overflow, complete with a snapshot, so the community can help out.
Underpinning the platform itself is a Hadoop-based analytics system, logging all messages in a separate repository. Pig is the query language of choice, while MongoDB has been chosen by Codenvy for storage. From here, admins and developers can view various metrics such as
Speed is of the essence for Codenvy, with much of their marketing centred on the IDE’s quickstart approach. One such video shows an expert Java developer doing Hello World (from scratch) with Spring, deploying to Cloud Foundry on Eclipse. The same task is done side-by-side but with Codenvy, clocking in at 1m 45s, with the desktop IDE trailing behind. Jewell boldly claims that it can be as little 10 seconds
“We found someone who knew exactly what to click, what to type. We didn't want any pundants coming in,” he adds. “Our expert on a high-speed broadband connection was doing [the desktop task] in an hour and a half.”
Such a speed boost and fundamental shift away from the desktop might be more than the regular enterprise engineers can comprehend all at once. Having all the fruits you are used to on the desktop being readily available in the browser.
Jewell recognises the importance of training wheels for those new to the concept, by making Codenvy installable on premise. He explains that this is because of “eXo’s roots”.
“I actually think the bigger opportunity for us is the enterprise opportunity,” he reveals. “There's probably two million developers around the world who develop for companies that use BDIs, terminal services or remote desktop technologies. All of those plagued by slowness...they have very poor densities on the server side. [With] a cloud-based IDE, we can probably get 3-4 times the density of any of those solutions and provide developers a more rich development environment that performs faster.”
Naturally security is a paramount concern for anyone who is considering going browser-bound, with large code repositories passed off to a variety of servers not in your own hands. Jewell insists there are safeguards however in place.
“Firstly, we have secure links between all the points, internally and externally. The second thing is we're working on SAS 70 certification for our systems and that will offer some level of isolation between the customer's data and us,” he explains
“Then the third thing is that we have a concept of both public and private projects or workspace here. Just like the Github concept where if your projects are public, then they are read-acceptable by anyone or forkable by anyone. If you've designated them to be private, then there's access controls placed around them.”
“They are absolutely critical to us,” Jewell exclaims. “I think that these partnerships are the very reason why we are being more successful than other cloud IDEs on the market.”
Bringing heavyweights to the table hasn’t proved as difficult as it might seem to Codenvy, choosing to do the service integrations themselves, lifting the burden off the partner.
“The developer is the chooser, the developer is the buyer. They're very selective people. They are choosy choosy buyers,” Jewell says. “What we realised that the onboarding effect of what we do is so powerful that if you look across the 15m developers, they're all touched in some fashion by a variety of big technology platforms. If we take the time and do a really deep integration with that partner, we end making the onboarding for the developer not just into our own system brilliant, but we make the onboarding of the developer into the partner's system equally brilliant.”
By bringing developers up to speed, the partner in turns pushes clients their way creating a clever mutually beneficial relationship.
“Integrating with new partners is more important to us because every time we do it, we feel we get the opportunity to start building a relationship with a broader set of developers. You see all the PaaSes we're just inking some special relationships with what we're calling 'ecosystem providers' that are not PaaSes that are a critical part of the developer workflow,” Jewell concludes.
The focus now for Codenvy lies with the GA Enteprise release, as well readying their SDK.
“We spend a lot of time thinking how to build a business out of this. We didn't want to be known as the technology masturbatory tribe,” laughs Jewell, after using the term for the second time in our chat. Maybe if more companies recognised the worth to go it alone with their sub-projects, we’d a lot more innovation around?