Traditionally, applications have been created on the developer's desktop, debugged locally, and then built and deployed through an automated devops pipeline. There are often numerous differences between these environments, including operating system, runtime or package versions, and environment.
The advent of Docker allowed the runtime to be packaged and moved between environments with repeatability, and Kubernetes has emerged as the deployment and management system of choice for large-scale Docker deployments. However, development is still usually done on a local environment without using these technologies and taking advatage of this new deployment platform.
Likewise, the Eclipse Foundation hosts both a classic desktop IDE (Eclipse platform) and a cloud-hosted IDE on Kubernetes (Eclipse Che), but no tools that help develop, debug, or deploy applications for Kubernetes, nor consistency in creating cloud-native applications regardless of your IDE.
The goal of Eclipse Codewind is to provide tools to help building high-quality cloud-native applications for Kubernetes, regardless of which IDE or language you use. This includes the capability to rapidly create an application from template or sample, support for launching, updating, testing, and debugging in Docker containers on the desktop, and support for the same directly on Kubernetes regardless of where the source is. The tools will also provide help to move an existing application to Docker and Kuberenetes, and validation to ensure that applications follow best practises.
To support this, Codewind will include plugins to the Eclipse platform and Eclipse Che, and a VisualStudio Code extension. A common library will be used by all of these tools to provide the function (e.g. creating, testing, and deploying applications) in a consistent way across the IDEs.
Eclipse Codewind will start by providing an IDE-agnostic library for tools required for cloud application development:
- Generating projects from templates
- Creating a template or example from a current project
- On the desktop: starting projects in Docker
- Deploying applications to Kubernetes
- Incremental update of applications running in Docker or Kubernetes
- Debug and other support for these deployed projects
- Application performance testing tools
Codewind will also provide Eclipse platform and Eclipse Che plugins, and a VisualStudio extension (and possibly others in the future) to allow users of these popular IDEs to create and deploy cloud-native applications in a consistent way from directly within their IDE.
The Eclipse Foundation has a strong history and community around building vendor-agnostic developer tools. Eclipse also hosts two of the main IDEs which we plan to extend, making it a natural fit for Codewind.
The initial contribution that will form the basis for Codewind will come from the IBM Microclimate project (http://microclimate.dev). The Eclipse platform and VisualStudio Code plugins are already open source and licensed under EPL 2. The common library that these depend on is not open source yet, but it has been legally cleared recently and will be fully donated by IBM under EPL 2. We do not expect any legal issues bringing it to Eclipse.
Initial contribution: May.
Tech preview & beta: 3Q2019
First release: 4Q2019
Although the major peices will be in place after the initial contribution, we do not expect Codewind to be 'complete' at this point. Some of the main areas that need to be investigated:
- Improving incremental development support for more languages
- Support in other IDEs or development tools
- Tools for helping with automated testing, and other aspects of app development that may change in cloud
- Adoption of a vendor-neutral Kubernetes dev CLI
IBM will continue to invest in evolving Codewind and addressing these concerns, but welcomes additional participation in these areas or others.