Modern-day applications are quickly evolving from monolithic giants to collections of microservices running in containers or lightweight virtual machines. This allows for a more nimble development of independent services that are easier to be written in parallel. But this also can lead to new challenges around testing how these collections of services work together in development.
One strategy has been to use a service virtualization tool to create precise simulation of services in production. Another has been to rely on cloud testing tools. Now, though, developers are starting to look at implementing their software infrastructure on top of Docker, which can make it easier for developers to bang against infrastructure that looks like live cloud applications.
Marrying the IDE and the cloud
The Eclipse Foundation is pushing forward with Eclipse Che to create a cloud-based version of the Eclipse IDE to simplify the creation of Java DevOps environments on top of the OpenShift cloud platform.
"The big vision is that the development and production environments should be matched up," said Tyler Jewell, founder and CEO of CodeEnvy. Developers work with source code modules and artifacts. Most tools are not ready for a container environment. Developers need to submit code and then get operations people to map it to a container. The work with the OpenShift group promises to bind Che to existing OpenShift accounts to create new projects or reuse existing ones.
Jewell said that many development groups have had serious issues getting Java DevOps environments set up for modern applications. Enterprises and open source projects have been setting up tool chains to support combinations of infrastructures like Eclipse, Tomcat and Maven, which can take days to get set up and properly configured across team members.
The collaboration with OpenShift is creating Che plug-ins for OpenShift. These will make it easy to quickly edit, debug and link services that make up an application. Developers will also be able to import, create and update OpenShift projects from within the IDE.
The idea is to let Java DevOps teams pick from templates and to load the templates from OpenShift. This makes it possible to create a project inside of OpenShift and also inside of Che. It is then set up using a consistent build tool like Maven along with all the Java project services for Intellisense and refactoring. Developers can then build and run applications locally inside of containers baked into Che.
How Eclipse Che works
Che runs in a Web browser as a single-pane app designed to be as responsive as a desktop-based IDE complete with panels, editors, debuggers and widgets. The goal is to allow anyone to contribute to a development project simply by clicking on a URL, without ever having to install software. This makes it possible for all contributors to participate in branch flow so that applications always compile in the same state as the last person who left.
The workspaces need a runtime environment for storing the code and running it. Docker is being used under the covers to bind every workspace to one or more physical servers. It essentially mounts the project code and gives developers terminal access to the machine.
A beta version of the Che plug-in for OpenShift is scheduled by the end of the year. Jewell said the Che development effort is also looking for developer support.