Also known as preview environments, ephemeral environments are software development environments that can be created on demand to test a specific git branch (often housing one specific feature or bug?!) before it’s merged with the main branch. These environments bridge the gap between local test environments and main staging or production environments.
Ephemeral environments are becoming increasingly valuable for teams and developers as they provide a safe and isolated space for testing, ultimately leading to improved quality and reliability. Often created in response to pull requests, they exist only as long as they’re needed for the defined purpose, reducing workloads on code maintainers and team leads while standardizing the code review process.
Development teams are catching on. Forty percent of all respondents in a recent study by Uffizzi currently use some form of an ephemeral environment solution. Another 12% indicate deploying an ephemeral environment solution is a priority in 2023. Of current users, 70% use full-stack ephemeral environments, while 30% use front-end-only preview solutions.
Should your team follow suit?
The Many Benefits of Ephemeral Environments
Ephemeral environments are catching on quickly because they offer clear benefits throughout the development process:
Overcoming Shared Environment Challenges (Isolation and Safe Experimentation)
In Uffizzi’s survey, 32% of respondents said that “overcoming shared environment challenges” was the top benefit of ephemeral environment usage. Ephemeral environments allow development teams to isolate small elements of a larger program and test them without fear of “contaminating” said program’s main code branch. It’s much easier for devs to test in isolation than to sort through co-mingled code changes to spot potential issues.
Time Saved on Pull Request Reviews
Over 20% of Uffizzi survey respondents cited “saving time on pull request reviews” as ephemeral environments’ top benefit. The combination of isolation and a running version of the changes makes the review, iterations, and acceptance all happen faster.
Faster Feedback and Iteration
Ephemeral environments’ inherent efficiency enables faster feedback and iteration, speeding the development process. And 21% of Uffizzi survey respondents cited this factor as their top benefit.
Early Bug Detection and Fixes
A study published in TechRepublic found that 88% of software developers find “traditional” methods of finding and fixing software bugs fall short. What’s more, 36% reported spending “too much time” on bug-hunting and fixing. Clearly, bug management is a big pain point for software teams — and a big benefit of ephemeral environments, which can greatly reduce the prevalence of glitches in the main branch.
Improved Cross-Team Collaboration
When fully implemented and consistently used, ephemeral environments facilitate cross-team collaboration and reduce “feature fratricide” and feature codependency. They enable rapid, iterative releases (of both features and fixes), minimize duplication of effort, and help team members prioritize to stay on deadline.
Studies Show the Value of Ephemeral Environments
Ephemeral environments’ benefits are evident even to laypeople but, of course, what really matters is how they’re perceived by engineers. Here too, the value is obvious.
Engineers Overwhelmingly Perceive Them As Valuable
According to Uffizzi, an overwhelming majority (80%) of software engineers perceive ephemeral environments as “valuable” (45%) or “extremely valuable” (35%). The remainder defines them as “neutral,” and none say they’re only “somewhat valuable” or “not at all valuable.”
Two factors, in particular, contribute to this shared perception: increased development speed and improved collaboration.
Ephemeral Environments Increase Development Processes Velocity
Ephemeral environments drastically reduce the time needed to find and fix bugs during development. Here’s how:
- They reduce duplication of effort and unintentional competition within or between development teams.
- They streamline the pull request review process, freeing up process owners and team leads to work on more valuable tasks.
- They allow devs to bypass the infamous “test queue” in shared environments, a key velocity bottleneck that can add hours to simple debugging or testing processes.
- And they keep the main branch “clean,” or at least more so than before, thereby reducing the need for post-merge debugging.
These benefits all create literal value by reducing development and fixing costs. That’s a relief not only for engineers but for accounting teams and executive leadership as well.
Ephemeral Environments Are Pro-Collaboration
By enabling purpose-built feature isolation, ephemeral environments encourage collaboration within and between teams. The shared environment is less cluttered, and with the aid of internal chats or huddles, everyone knows what everyone else is working on.
Best Practices for Implementation
Implementing ephemeral environments across a larger organization, or even within a tight-knit team, takes some work. As you begin, think carefully about the proper tool(s) for your organization, team, and/or specific project — then work smarter, not harder, to integrate them.
Choosing the Right Tool(s)
In reality, you have only two choices: a custom-built solution and an open-source alternative.
A custom build sounds tempting, especially if your development processes are bespoke or complex. But it’s extremely time-consuming to build and manage, which means it’s also resource-intensive. If you can’t afford to divert two or more engineering FTEs to the project on an open-ended basis, it’s simply not a good investment.
Integrating Them Into Existing Workflows
That leaves an open-source ephemeral environment tool. Though it’ll be far more manageable, you’ll still need to do some work upfront to ensure success:
- Choose between self-hosting or cloud-based, depending on your needs
- Integrate your chosen solution with your version control system, container registry, and/or CI provider
- Define your applications
- Use an appropriate GitHub workflow or job for easy integration
- Use the platform’s quickstart feature to create a working example and familiarize yourself with its capabilities
Ready to Implement On-Demand Ephemeral Environments?
From the ability to catch and fix bugs early (“shifting left”) to improved communication and collaboration within teams, ephemeral environments clearly offer many benefits for software development. And while it remains early in the adoption lifecycle, the number of Uffizzi survey respondents who plan to deploy ephemeral environments in 2023 alone (12%), combined with the overwhelming majority of current users who find them valuable or “extremely valuable,” suggest they’re quickly moving into the mainstream.
Perhaps your team is ready to experience the results for itself. If you can see how the benefits of ephemeral environments might apply to your own development process, consider joining peers who’ve already implemented them or plan to soon.