Exploring the Requirements of Efficient Development Environment

This lesson discusses the requirements of an efficient development environment and also shows the development environment for go-demo-6 project.

What do we need from a development environment?#

Let’s discuss what we need from a development environment while considering the technology we have at our disposal.

Clone and execute#

In an ideal situation, we should be able to clone a repository of a project and execute a single command that would set up everything we need. That setup should be as close to the production environment as possible. Otherwise, we’d risk discrepancies between local results and those deployed to staging, production, and other permanent environments.

Connection with registries#

Since we need to cooperate with other people in our team, as well as with those working on other projects, such an environment would need to be connected with the registries from which we could pull container images and Helm charts.

Compiler and other tools#

Finally, the development environment would need to have a compiler of the language used in the project and all the tools we need (e.g., skaffold, Helm, Docker, etc.).

Automated build, testing and deployment#

As a bonus, it would be great if we didn’t need to run commands that build, test, and deploy our application. Every time we change a file, the environment itself should build a binary, run the tests, and deploy a new version. That way, we could concentrate on coding, while letting everything else happening in the background.

All in all, we need to be able to create a project-specific environment quickly with a single command. This environment needs to have everything we might need, without us installing or configuring anything on our laptop. The environment should do all the tedious work like compilation, testing, and deployment. Wouldn’t that be a productive setup?

Development environment for go-demo-6#

Here’s what my development environment for the go-demo-6 project looks like.

Visual Studio Code With Jenkins X extension
Visual Studio Code With Jenkins X extension

Everything I need is inside the Visual Studio Code IDE. On the top left side is the list of the project files. The bottom left side contains all the Jenkins X activities related to the project. By clicking on a specific step, I can view the logs, open the application, open Jenkins, and so on.

The top right corner contains the code, while the bottom right is the terminal screen with useful output. Every time I make a change to any file in the project, the process in the terminal will build a new binary, execute tests, build a container image, and deploy the new release. All of that is happening inside the cluster and the only tools I use are Visual Studio Code and jx.


To create such a development environment, we’ll need a Jenkins X cluster.

Efficient Software Development with Jenkins X
Creating a Kubernetes Cluster with Jenkins X And Importing App
Mark as Completed
Report an Issue