Eclipse Che 7 is now available!

Stevan Le Meur
Eclipse Che Blog
Published in
10 min readSep 17, 2019

The first opensource Kubernetes-Native IDE.

Eclipse Che 7 for Kubernetes-Native IDE for Cloud Native Applications

Release Overview

Che 7 is the biggest release in Eclipse Che history — focused on simplifying writing, building and collaborating on cloud native applications for teams. This release is the next step for Eclipse Che, making it the first developer workspace server and Integrated Development Environment (IDE) for creating cloud native, enterprise applications on Kubernetes.

This release introduces:

  • Kubernetes-based developer workspaces: Fully containerized developer workspaces allowing to bring your application runtime back easily in your dev environment.
  • New Editor: Based on Eclipse Theia, the new default web-based editor provides a VSCode like experience in the browser.
  • Devfile - developer environments as code: Configure devfile for your project and get reproducible and disposable portable developer environments.
  • New plug-ins and extensibility model: VSCode extensions compatibility, get the plug-ins you need for your project. Swap the default editor with a custom one.
  • Kubernetes and OpenShift Support: Deploy on any public cloud or on-premise Kubernetes.
  • Easy to Monitor and Administrate: Prometheus and Grafana dashboards to easily control your Eclipse Che deployment.
  • Chectl: New command-line tool to manage Eclipse Che.

Getting Started with Eclipse Che 7

Online:

Get started with the Hosted Che or try the pre-configured workspaces available.

Locally or remotely:

Learn more on our documentation and start using Che:

Release Details

Kubernetes-based developer workspaces

The version 7 of Eclipse Che introduces a new model of workspaces of workspaces where the IDE is splitted into multiple micro-services running in separate containers. A workspace in Eclipse Che is now a Kubernetes pod, where all the development tools are running in containers, from the editor to the plug-ins and the tools you usually need for software development.

The tools are packaged in containers with their dependencies. As a developer, you don’t have to worry about how to configure the tools, how to install the dependencies, those are all packaged and configured together. The tools you are using in your developer environment become isolated from each other, get their own lifecycle, are easy to switch and upgrade and get a simple packaging!

This major change makes the developer environment consistent, repeatable and reproducible.

If you are working on a Kubernetes application, you get the ability to bring it along with your developer workspaces. You can leverage your Kubernetes application definition and dev-mode it by adding another layer with all the tools you need to code, build, test, debug and run that application. By doing this, you don’t need to install Kubernetes or Docker on your local machine, your developer environment is remote and replicate your production environment. You can quickly code and iterate on your application, in a consistent and reproducible manner, without the pain of setting everything up on your local machine!

To learn more about Eclipse Che 7 architecture and workspace model, check the following documentation.

New Editor: Visual Studio Code experience in the browser

Over the last 2 years, we saw how the developers have transition to lightweight editors and how the different tools have evolved the different tools has evolved. This version introduces a new default web-based editor for the developer workspaces which is based on Eclipse Theia.

New default browser based IDE — built on top of Eclipse Theia.

Eclipse Theia provides an experience close to Visual Studio Code that most of the developers are already familiar with and is built on top of the latest tooling protocols such as the Language Server Protocol and the Debug Adapter. In addition to all the accomplishments done by the whole Eclipse Theia community, we contributed a lot of capabilities to the foundations of Eclipse Theia: Language Server Protocol, Debug Adapter Support, Commands, Preferences and much more. We are very excited to get Eclipse Theia now integrated in Eclipse Che.

The default web-based editor provided in Eclipse Che is an extended version of a plain Eclipse Theia with functionality added due to the nature of the developer workspaces:

  • Security: Secured communication between the IDE, the end-user and the workspace.
  • Extended Tasks: Handles the Che commands and provides the ability to start those into a specific container of the workspace.
  • Extended Terminal: Allows to provide terminal for any of the containers of the workspace.
  • Workspace Plugin: Provides a view that shows all the containers that are running in the workspace and allows to interact with them.
  • Ports: Allows to detect when services are running inside of the workspace and automatically expose them.
  • API: Extends the IDE APIs to allow interacting with the Che specific components (workspaces, preferences, etc.).

Devfile: Developer Workspaces as Code

The devfile provides easy to configure, reproducible definitions of portable developer environments.

The devfile is a declarative abstraction of a developer workspaces, which includes the runtime environments of the application, the source code of the projects mapped to repositories and the tools, plugins and commands needed to code, build, test, run and debug an application. This makes the developer workspace replicable. You can use your Kubernetes application definition with your devfile, just “dev-mode” it by supercharging the tools you need to code on it.

Here is a sample devfile:

With the devfile definition and Eclipse Che, developer environments are becoming fully codified, can easily be modified, shared, forked and extended. You don’t need to mess with hard-to-maintain and hard-to-manage documentations, VMs, Dockerfiles which provide only a partial solution on setting-up a developer environment.

Once you have a devfile configured for your project, you can host it on your source code repository. By passing the url of the repository to Che, it will provide a new developer environment to anyone who need to contribute to your project:

{che-host}/f?url={repo-url}

With the above devfile sample: https://che.openshift.io/f?url=https://github.com/che-samples/web-java-vertx

You can find more sample devfiles on Eclipse Che website.

Learn more about devfile support in Eclipse Che in the following documentation.

New Plug-ins and Extensibility Model

Eclipse Che 7 introduces new extensibility making it an excellent platform to build cloud-native tools.

Browsing the list of available plug-ins for Che 7.

For contributors to Eclipse Che, the new web-based editor (Eclipse Theia) is built in TypeScript and gives to the contributors an enjoyable experience with a programming model that is flexible and easy to apprehend. Many improvements in this version have been focused on simplifying how contributors can create plug-ins and deliver them faster. VSCode extensions are also compatible with Eclipse Che.

For developers using Eclipse Che, the new plug-in and extensibility model allows them to leverage a broad ecosystem of tools. The plug-in registry already provides tools for the most popular languages: JavaScript, Java, Python, Go, PHP, XML and Yaml. You’ll also find tools for Kubernetes and GitHub Pull Requests.

Example GitHub Pull Request plug-in in Che 7.

In Che, a user doesn’t worry about the dependencies needed for the tools running in their developer environment — the tools are just available when needed. A Che plug-in provides its dependencies, its back-end services (which could be running in a sidecar container in developer workspace pod), and the IDE UI extension. By packaging these elements together, the user’s experience is that Che “magically” provided language services and the developer tooling they need for their workspace without they feel the pain of configuring them!

Visual Studio Code extension compatibility

Eclipse Theia feature a plug-in API compatible with extension points from Visual Studio Code. It is easy to bring an existing plug-in from Visual Studio Code into Eclipse Che. The main difference is in the way the plug-ins are packaged. On Eclipse Che, plug-ins are delivered with their own dependencies in their own container.

Self Hosting

Che 7 introduces a new “Self Hosting” mode that gives developers who want to build plug-ins for Che an easy experience and fast iterations. Developers get a dedicated workspaces pre-configured with everything needed to code a plug-in. The complete development lifecycle is covered with handy integration in the IDE for building your plug-in. When running, testing and debugging your plug-in, you’ll get a second IDE started in the workspace which will include your plug-in. With “Self Hosting”, you get one IDE to code your plug-in and another one to test it.

You can learn more about the self hosting mode in the following documentation.

Swappable Editors

Eclipse Che provides a default web-based editor for workspaces, but we also recognized that it should be possible to package and use different editors. An important work has been done in order to decouple the editor so that it is possible to plug a different editor (or web-based tool) into a Che workspaces. In the traditional Eclipse IDE world, that was done with RCP applications. This capability allows to :

  • Re-purpose a developer environment for different use cases.
  • Provide dedicated custom IDE for specific tools.
  • Provide different perspectives for individual users or groups of users.

With Eclipse Che 7, you can bring your own custom editor for the developer workspaces:

Example of Eclipse Dirigible currently available within Che workspaces

Enterprise Readiness

Eclipse Che 7 provides out-of-the box capabilities that makes it smooth and easy to adopt by enterprises. It provides centrally hosted private developer workspaces that makes projects easy to share and easy to manage, but with enterprise-grade security.

Deploy on any Kubernetes

Che 7 supports deployment on any public Kubernetes cluster or an on-premises data center, behind your proxy. There are various configurations options which will allow you to secure your deployment and allow you to secure all communication between the workspace pod and the browser. You can use your certificates to enable HTTPS and SSL. You can also deploy in single-host or multi-host.

Eclipse Che 7 introduces a new Operator, published on operatorhub.io which greatly simplify the deployment and the management of Eclipse Che on Kubernetes. With the operator, Eclipse Che provides built-in high availability, rollout updates and automatic health check.

You’ll find different guides for deploying your own instance of Eclipse Che:

Easy to Monitor and Administer

As a Kubernetes-native application, Eclipse Che provides state-of-the-art monitoring and tracing capabilities, integrating with Prometheus and Grafana. This provides any Ops the ability to easily monitor the state of the platform.

Che can expose a certain set of datas and metrics which will be processed by Prometheus and Grafana on dashboards allowing to monitor:

  • Consumption of resources like CPU and memory
  • Number of concurrent users
  • Number of running workspaces
  • Statistics about workspace start/stop rate, as well as average workspace start time.
Workspaces Monitoring Grafana Dashboard

You can learn more about the new monitoring capabilities on the following documentation.

Integrate with LDAP/AD and OAuth

Eclipse Che 7 includes Keycloak to handle authentication and security. It enables integration with any single sign-on (SSO), OAuth providers, as well as with Active Directory or LDAP.

Integrate with your toolchain

You can integrate Eclipse Che developer workspaces into your development toolchain: issues tracker, CI, CD, logs and generate a one-click developer environment URL.

Protect source code IP

Eclipse Che is secure by its architecture, source code never lands in the developer’s local environment. Code is centrally hosted on the cluster where Che is deployed. This allows you to avoid security risks of hard to secure developers’ laptops.

Chectl: New Command-line management tool for Eclipse Che

Eclipse Che gets a brand new command-line tool: chectl, introduced to help install, manage and use Che.

Once you chectl is installed on your machine, you can use for all the different operations you might want to proceed on Eclipse Che server. You can start Eclipse Che locally with a simple command:

$ chectl server:start --platform minikube

There are two starting modes available:

  • Single-user: non-authenticated Che, lighter and suited for personal desktop environments.
  • Multi-user: authenticated Che, suited for the cloud, for organizations and developer teams.

If you have a remote kubernetes cluster, chectl will also allow you to deploy Eclipse Che there.

In the future, chectl will be extend with administrating capabilities for Eclipse Che, allowing to configure the available plugins and stacks as well as managing users.

Chectl is available for Windows, Mac and linux and can easily be installed on your machine by following the instructions here.

Get Involved!

Quick Start with Eclipse Che.

Join the community:

  • Support: You can ask questions, report bugs, and request features using GitHub issues.
  • Public Chat: Join the public eclipse-che Mattermost channel to discuss with community and contributors.
  • Weekly Meetings: Join us in our Che community meeting every second monday.
  • Mailing list: che-dev@eclipse.org

--

--

Stevan Le Meur
Eclipse Che Blog

Product Manager at Red Hat. Eclipse Che commiter. Geek, Design, Architecture and Kite surfing.