History of eXo Cloud IDE

eXo Platform Blog

Today we announced our strategy for bringing enterprise portals to the cloud, along with services that will make it easier, faster and more collaborative to develop apps for PaaS deployments. But to understand where eXo is going, we need to look back to when we first started working on improving the developer experience.

The idea for our web-based IDE originated over three years ago. At that time several customers, who were already using version 2 of eXo Platform to build websites and intranets, wanted an online tool to view, edit and redeploy web content templates.

To provide this capability, we decided to implement a simple HTML, JavaScript and CSS code editor, leveraging Google Web Toolkit. While prototyping it, we soon realized we were on to something big, and our ambition for the project grew.

It wasn’t long before the team expanded to 6 core developers, with a goal of building a full-fledged online IDE. The IDE would allow our customers to dynamically customize and enhance the capabilities of the platform, by building and deploying REST APIs, OpenSocial Gadgets or simple HTML/Javascript apps. This first version of the IDE was introduced in eXo Platform 3, released in September 2010.

Building apps in eXo Platform 3 is based on standards, such as OpenSocial Gadgets for the front end, JAX-RS for the business logic layer and JCR for persistence. Developers can use auto-completion for faster coding, access a cool outline view, or see the syntax colored for each file mime-type. The IDE was an important part of transforming eXo Platform from an enterprise portal to a complete user experience platform for Java. Now customers can customize their social intranets with new gadgets, or expose new REST APIs to mobile devices.

It wasn’t long before we decided to make a standalone offering for the IDE. This decision was based on the strong positive reaction from our customers of course, but also because we saw how the IDE dramatically transformed our own intranet virtually overnight. We set up the eXo intranet on eXo Platform 3 (after first migrating our corporate website), and the response by our own development teams was really eye-opening. Our engineers – even those who had never used the IDE before – were innovating and creating new intranet capabilities in their spare time. These new gadgets can be used by other eXo-ers in their own personal dashboards, and a few of them have already been packaged and offered as plugins for any eXo Platform user (available in the eXo Resource Center).

Almost immediately we heard from several ISVs who were interested in embedding the IDE as part of their own offering. OEM deals were signed – we’ll start announcing these in the near future – and several more are in the pipe.

The evolution of the IDE as a standalone component was complete when Amazon announced their PaaS offering, Elastic Beanstalk. We realized we could offer the IDE with a Tomcat server as an AMI (Amazon Machine Image). This allows Java developers can deploy a WAR application in the Amazon PaaS, then quickly extend it with REST APIs and a UI provided by the coupled online IDE.

But the real goal of eXo Cloud IDE is more ambitious. We will provide a cloud service where teams of developers can build, share and deploy applications quickly – in any major PaaS currently available.

To offer this multi-tenant Cloud IDE service, we leveraged the work of another eXo team that has been tasked with making eXo Platform ready for private cloud deployments (available as part of the upcoming eXo Platform 3.5, which will be released later this year). This means the eXo Cloud IDE service relies on eXo Platform’s multi-tenant layer, so every developer team can get its own isolated data and server side processes.

This multi-tenancy is achieved at the Java Virtual Machine (JVM) level, allowing us to host several teams on the same OS virtual machine, which dramatically reduces the cost of hosting. And because eXo relies on the revenue stream from our enterprise on-premise software product line (and we would love to have you as a customer), we do not need to monetize this new IDE-as-a-service offering. That is the reason why we can make this service free of charge now and in the future.

Today we announced the first version of eXo Cloud IDE. It is limited to a relatively small number of teams, but we will open it more in the coming weeks. To participate in the private beta, you need to create an account. From there you will be able to invite 5 developers to your team to collaborate on your development projects. With this launch you can quickly build and deploy HTML 5 mobile apps, social network apps, Mashups, Google Gadgets, Netvibes widgets or REST APIs.

Improvements planned for the near future will allow you to pull a Java application from Github, edit it, test it and deploy it to most of the Java PaaS available in the market (through a Git push in CloudBees for instance, or a WAR deployment to App Engine, Red Hat Makara and VMForce). But we don’t plan to limit support only to Java PaaS. The IDE is designed to be language-independent, so we will also be able to support other PaaS like Heroku (Ruby), Azure (C#), or even the Python version of App Engine.

Cloud computing is clearly more than a buzzword – it is completely transforming our industry. Most of the applications we know today will be used in the cloud tomorrow, including development environments. Accessing and editing apps from many devices, deploying them seamlessly on dev, staging or production environments, sharing code online or managing IDE upgrades or configuration for across teams are now simple tasks. This is all made possible because of the Cloud IDE. I hope you’ll join us in trying it out, and let us know what you think.

Related Posts

I'm Chief Executive Officer of eXo (The Open Source Digital workplace), a company I founded just out of university to serve its first customer, the U.S. Department of Defense. I'm also board Member at Meeds.io, an association of software vendors that provides its members with employee recognition software.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>