DevOps for development environments

DevOps for development environments


Normally on joining a new project a wealth of libraries, tools, frameworks need to be set up! It takes time and slows down the beginning of the development process! Furthermore, some parts of the project might be using different versions of the same tool over different language versions. Here I’ve got some DevOps principles that have worked for me to speed up the development env setup that I want to share with you.

🐳 Use containers

It goes beyond of containerising your app. Having your development environment in a container avoids wasting time on installing tools like clis, db clients, frameworks and language versions. The approach is to mount credentials, code, and everything what is needed inside the container so that commands, tests can be execute like if you were working in your local machine. You could use docker, which is the most popular option.

Resources:

👨‍💻 Automate

Now that you have a containerised environment use automatisation tools and scripts to reduce the amount of commands you need to remember! Create alias with one or two words easy to remember to execute those commands. These automation process will help you out to start your dev env and to reduce error prone procedures. For example: getting credentials from a remote server, set them up as environment variables, either encoded or decoded them in base64, renew non-production JWTs, connect to a remote server to delete/update/insert data into the database and so on. These process are error prone. Then, the best option is to write scripts that do the work for you in a repeatable way. Some tools to do this are: make, invoke for python and the great shell scripts.

Resources:

📩 Secrets

Another tip that has worked for me is to use secrets managers. Normally we have to deal with secrets in a remote server. Try to setup your own secret server. If it is not possible for any reason, try local options. The most popular tools that include a cli to use in your commands and scripts are:

😍 IDEs

In case you are working inside a containerised environment, make it useful and appealing to use. Install tools that explicitly show you with colours and even icons the branch, folder, context, and server you are working on so that developing inside a containerised environment does not increase the complexity of your dev experience but ease that experience. An example for your terminal is the popular zsh and the remote plugin for visual code.

Resources:

In summary, put everything you need to run your development environment into a containerised environment, for that purpose you can use docker. Write scripts, alias and use automatisation tools to run process that involve consecutive steps in a particular order. Use make, invoke for python and or shell scripts. Set up a secret manager: non production vault or gopass. Finally, create an appealing containerised environment.


To view or add a comment, sign in

More articles by Carlos Valarezo Loaiza

  • Enable mutual TLS in Kubernetes

    In order to enable mutal Transport Layer Security (mTLS) in east-west traffic, I have considered two options AWS…

  • How do I share securely my secrets within the team?

    I want to share the very first thought that comes to my mind when I see this question. Gopass.

  • What I have been learning?

    One of my strengths is definitively learning. Actually I am boosting my skills in different technology fields.

    7 Comments

Others also viewed

Explore content categories