Ephemeral Environment

What is a ephemeral environment?

Ephemeral means “fleeting” or “existing only for a short time”. An ephemeral development environment is therefore an environment that remains in existence for as long as it is needed. It can be booted up and shut down as often as needed. The environment can be adapted as needed. The basic idea is therefore that these are environments created for a limited time, which are then deleted again.

People often talk about ephemeral development environments when it comes to testing. However, this restriction is not helpful. Why? For example, developers also need to set up a development environment – in this case locally – in order to be able to work. This includes not only the IDE, but also the software to be developed. Therefore, it is a static working environment.

With an ephemeral development environment, it is possible to provide developers with a suitable, dynamically created environment immediately.

What are the characteristics of ephemeral development environments?

  • Automation: The environment can be automated and created on-demand.
  • Short lived: This environment should only exist for a short time.

What are the advantages?

  • Test different versions quickly: If different software versions are available, a temporary environment can be created each time. Working on a task and testing can be done quickly without the tedious setup of all components. For example, bug fixing in an old version:  with ephemeral development environments, the appropriate environment can be started directly without changing anything locally.
  • Flexible: Every developer can make changes in the ephemeral environment and immediately test whether the changes work. Errors can be quickly detected and corrected. This reduces problems later on and leads to fewer bugs.
  • Free of legacy: Clean means that the development environment is free of unwanted things. There are no code remnants or the like.

What are disadvantages?

  • Resources: Creating ephemeral environments requires appropriate infrastructure resources.
  • Time: Initial set-up requires training. However, setting up non-automated environments is more time-consuming in the long run.