Por que é importante usar ambientes de desenvolvimento repetíveis

Why it's important to use repeatable development environments

Don't make your software engineers have to constantly build and rebuild their development environments.

Imagem em destaque

Being a developer is a challenge. Not only do they have to work tirelessly to meet sometimes impossible deadlines, they also have to work with a tool landscape that is constantly evolving. To make this even more complicated, they often need to work in different development environments.

One day your developers may have to work in a Java environment, the next JavaScript. Or maybe they were tasked with focusing on Python one day and PHP the next. Needless to say, this can be confusing and time-consuming. This is also why it has become important for developers to use repeatable development environments. But what are repeatable development environments and why are they useful for your developers?

Let's dig deeper and find out.

What are repeatable development environments?

Imagine that you have to create very specific environments, to be able to use the different tools that help you carry out your work. You can do this with a few laptops, a desktop, and a tablet. It's a great plan, but what happens when something goes wrong with one of these devices? Or what if you need to start from scratch? Do you reinstall the operating system and start from scratch?

This is time consuming. It's also not very reliable. What if you can't remember every piece of software that was installed to enable you to do your job?

There is a much easier way.

With the help of virtual machines or containers, you can create the perfect development environment for a task; from the operating system to all software, languages, libraries and frameworks. After you create the environment, you can deploy it as needed. And if built correctly, you will always have a base environment, which makes it easier to start from scratch without having to install all the basic components.

The easiest way to create these repeatable development environments is (as I mentioned) through virtual machines or containers. With the first option, you create the virtual machine, install the operating system, and add all the necessary tools for the required environment. When you need to create a new, clean environment, simply clone the virtual machine and start the new clone.

Instant development environment.

The same thing happens with containers. The biggest difference here is that your developers will have to understand how containers work and how to build a containerized development environment that can be quickly created and used. For most developers, this isn't much of a challenge.

Another method of creating repeatable development environments is with tools like Python's virtualenv. This tool creates isolated Python environments quickly, but (as you might expect) it is language specific. Of course, not every language offers this option.

Benefits of repeatable development environments

The benefits of repeatable development environments may not be the longest list you've ever read, but what it contains should be considered crucial to achieving productivity levels that keep your company competitive.

Efficiency

The first benefit is just that: efficiency. Instead of having to deploy completely new desktops or laptops so that a developer has a clean area to work, you just need to clone a virtual machine and launch it. Instead of this process taking hours, it can be done in minutes (or seconds).

With this process in place, your developers can focus on development rather than building the environments they need to work.

Cost benefit

This also has the advantage of being more economical. Virtual machines and containers are exponentially cheaper than hardware. Additionally, VMs and containers are portable, so they can be deployed anywhere and at any time. Your developers can be at home, working in the middle of the night, and just need to log into a server, deploy their environment, and get to work.

Reliability and Predictability

Reliability is critical in a world in constant motion. When your developers know that every time they create a development environment it will work, that's invaluable reliability. Your developers won't need to worry about customizing or configuring an environment to ensure it works as needed. Instead, whenever they launch a repeatable development environment, they know it will behave exactly as they need it to.

Along with this reliability comes predictability. When a developer creates a repeatable development environment, he knows it will work. There is no guesswork. And not only do they know it will work, but they also know it will contain everything they need to get to work; every IDE, language, library and framework is there.

Developers really appreciated the reliability and predictability.

Mistakes are not that expensive

When a developer makes a mistake in a repeatable developer environment, all they have to do is discard the one they are working on and start another one. There is no longer the worry that if something goes wrong, they have caused problems in your environment that will need to be fixed.

This means mistakes aren't as costly as they once were.

This is where virtual machines really shine. Developers can take snapshots of the VM. If something goes wrong, they just need to revert to the previous snapshot and they'll be back to where they were before everything went wrong.

Instant access to repositories

When creating your repeatable development environments, be sure to add any necessary repository access to them. With your pre-configured GitHub, GitLab, or internal repositories, your developers can get to work right away, pulling code and creating commits.

This is efficient.

Conclusion

If your developers are constantly struggling with time because they are constantly building and rebuilding development environments, it's time to lighten their load by using a system that makes it easy to quickly and repeatedly deploy those environments. You will save time and money.

Source: BairesDev

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.