Cloud based software development environment

Everyone knows the problem: setting up a software development environment involves countless steps: the necessary software must first be installed, then a project must be configured for local debugging. In some cases, local databases have to be installed and set up. The ramp-up of new project members is therefore associated with a relatively high level of effort. The hurdle when replacing hardware is also quite high.

Since more and more projects are moving towards the cloud, the organizational hurdle with the complete development in the cloud is correspondingly low.

In this way, different solutions emerge on the market in order to develop completely in the cloud. Well-known providers here include Visual Studio Online from Microsoft, AWS Cloud9 from Amazon and the free Che project from Eclipse.

Eclipse Che offers a complete development environment based on Kubernetes. The solution can be used as SAAS, alternatively the IDE can be installed in its own Kubernetes cluster. Instructions for installation in the common Kubernetes platforms (OpenShift, Azure, AWS, Google Cloud Platform) are available here.

The configuration of the development environment, including the required Kubernetes containers and configuration parameters need to checked in together with the source code in a GIT repository. The IDE is provisioned automatically at checkout.

Such approaches have the following advantages:

  • Powerful development hardware is no longer required on the client side
  • The usually complicated setup and configuration of local development and debugging environments is no longer necessary
  • This means that the ramp-up time for new project members is almost zero
  • Distributed work is possible from any location

Of course, development in the cloud requires that a fast internet connection is available at all times. Working offline is of no longer possible. However, Eclipse Che can also be operated in a local minikube environment. This would combine the advantage of the preconfigured IDE with the offline capability, but requires powerful hardware and the installation of a corresponding Minikube (or alternative Kubernetes) environment.