DEV Community

Bunnyshell
Bunnyshell

Posted on

Benefits of Ephemeral Environments in the Dev Cycle

The main reason organizations adopt ephemeral environments is because they accelerate the software development cycle; developers can review changes visually and also share their work with non-technical team members (such as designers, for example) using a link to the proposed revision.

Other benefits of ephemeral environments include:

removing the staging / QA bottleneck:
traditionally, organizations use a staging or QA environment to merge and test all code before pushing it into production. The problem is, they only have one or very few of these environments, so, as the organization grows, this becomes a bottleneck that slows down the development cycle. Enter ephemeral environments - now you have a limitless supply of environments you can use for testing. As every code branch is contained in its own isolated environment, it becomes its own integration environment, so you no longer need a single testing and integration environment to merge all code before pushing it into production.

allowing early and often feedback:
the earlier in the development cycle you identify quality issues, the more you can reduce rework and improve development velocity. Ephemeral environments help minimize rework by enabling all stakeholders to become part of the development process. For example, QAs, designers, product managers, or even customers no longer have to wait until a developer finishes coding to see changes, they can offer feedback as the feature is being built.

limiting rework, thus increasing development velocity:
Continuous Integration (CI) focuses on the idea that you should continuously test your code as it’s being pushed. The problem is, most CI systems only perform unit tests (they test small units of code, not the entire system), while Integration and Smoke tests (which test the system as a whole) are left until the code is merged to the main branch in the staging environment. If any issues are found at that stage, it’s already too late; you’ll need rework to get them fixed. Even more, if there’s only one staging environment available, this will create bottlenecks. Ephemeral environments allow Integration and Smoke tests to be run right after the environment is created, thus ensuring they’re performed as frequently as unit tests and allowing you to find issues early in the development process.

allowing for experimentation with infrastructure:
infrastructure changes are costly both in terms of money and time, and they can slow down your team’s velocity. But with ephemeral environments, testing the new infrastructure can be done in isolation, so it doesn’t affect other developers.

they enable Agile / Scrum: today, many organizations follow Agile / Scrum practices, but their infrastructure and technology are not always adapted to iterative software development. These workflows focus on early and frequent feedback, and ephemeral environments are the perfect tool to enable that.

Top comments (0)