Imagine a bacon-wrapped Ferrari. Still not better than our free technical reports.

Productivity Spotlight: Cloud-based Java Development with Zero Downtime using Exo IDE and JRebel

Cloud this. Cloud that. Cloud IDE?

Back in 2011, Exo IDE launched a cloud environment for coding, building, and debugging apps. Similar to JRebel, the focus is to let Java developers appreciate a boost in productivity by shaving minutes off recurring development tasks, such as environment activation, compilation, deployment, and publishing.

Here at ZeroTurnaround, we make tools that are technology-neutral, and we support everything from NetBeans to Notepad – it’s therefore important for us to not only support industry juggernauts like Eclipse but also emerging solutions whose focus is on being more productive in development.

So it was nice when the folks at Exo IDE created this short overview explaining the architecture of their “IDEaaS” and how to integrate JRebel into the mix for saving even more precious hours. According to Exo IDE, they’ve attracted over 30,000 users, and their service now includes most Java PaaS environments.

Cloud power! Not just fluff…

We had a chance to chat with Mark Downey, Product Manager at Exo IDE, and we kinda noticed that he’s a bit obsessed with developer productivity (meaning = he fits in well with the rest of the ZT team!)

“Cloud IDEs offer a different form of productivity as they make it easy to share code, have multiple developers collaborate on the same file simultaneously (like Google Docs for code), and enable configure-once, invite many onboarding.”

Exo IDE likes to be termed a “development PaaS”, optimized for the edit-build-run-debug cycle. The platform’s architecture is comprised of 3 pillars each with dedicated roles: the editor, the builder and the runtime testing environment.

It works like this: Developers interface with a hosted editor when working on a project, and the code is checked out of a Git server or GitHub and a local copy is stored in the platform. After devs are finished editing the code, it is synchronized onto Exo’s build system.

The files are compiled and packaged into artefacts on a set of servers that are independent from the editor. After the artefacts have been created, the output is sent back to the editor, and the artefacts are deployed onto Exo IDE’s development PaaS, which runs the appropriate application server runtime given the unique configuration of each project.

JRebel Integration

Adding JRebel into this cloudy concoction makes Exo IDE developers even more productive.  When you create a new project, you now have the option to use JRebel out-of-the-box.

This will activate the JRebel plugin on the application container and will have JRebel monitor the compiled .class files on disk to update the runtime classes.

Changes made to the Java code are instantly reflected on the application without going through the entire restart/redeploy process. This works equally well for projects that you are running normally and those that have been configured for debugging in the editor.

Without JRebel, Exo IDE’s build system and the runtime are entirely different pillars, so every build within the cloud environment would require a redeploy of the entire package. This occurs because there needs to be a sync of the packages from the build server to the development PaaS. This is unlike a local desktop where devs can build directly into the location where their runtime is monitoring for the file pickup. But now with JRebel, the deployment in the cloud is nearly instant.

Gain back valuable minutes each redeploy

So how much time does this lethal productivity combo actually give back to developers? Exo IDE ran some internal tests that showed a productivity gain of about 2 minutes per deployment using JRebel – according to a recent survey on developer productivity, the average Java developer spends over 10 minutes per coding hour restarting their environment. And this doesn’t include recovery time for each interruption (getting back to line N in the code, regaining focus, etc.)

Java developers are a blessed bunch – with companies like ZeroTurnaround and Exo IDE working to create tools that improve productivity (and even prolong developers’ lives), the future of a productive Java looks brighter than ever.

For more information on Exo IDE, visit their website or check them on Twitter @Exo_IDE