Clock Icon - Technology Webflow Template
5
min read

Maximizing Ephemeral Environments for Speed

Using shared, persistent test environments creates an overly complex and bottlenecked workflow that represents an inherently flawed process in a software development lifecycle

Using shared, persistent test environments creates an overly complex and bottlenecked workflow that represents an inherently flawed process in a software development lifecycle (SDLC).  Going ephemeral breaks your team free from the co-dependent nature of shared environments and provides a system that enables extremely fast release cycles.  

This is the ephemeral environment playbook that we created internally at Uffizzi and that we use to average a release every working day.  Uffizzi ephemeral environments fill the gap between your local development and production to expedite code reviews, testing, merge times, and release velocity.

Figure 1- Snapshot showing we achieved seven Releases for a work week in December 2022

Ephemeral environments can be used in many capacities but their main benefit is setting your team up for blazing fast release cycles.  Uffizzi enables you to make a change, test the change, release the change or in marketing speak it’s Develop - Preview - Release.

With ephemeral environments each feature branch can be iterated upon in its own isolated, independent track with no impacts to all the other changes simultaneously being developed.  

Figure 2- Uffizzi Playbook for Speed (macro view) - With an ephemeral environment for every feature branch developers are empowered to work independently.


Figure 3- Uffizzi Playbook for Speed (micro view) - ephemeral environments are automatically triggered (open PR), updated (git push), and deleted (merge) as part of your development workflow - no manual steps required.


Figure 4- Uffizzi and Branching- ephemeral environments can be supported in both trunk and gitflow branching strategies.  We recommend trunk based development for speed.

If we have a major release that relies on several feature branches that create an epic we will merge all the feature branches into a combined topic branch and then open a PR from that branch to our develop branch.  The Uffizzi workflow recognizes the trigger and creates an ephemeral environment so that now the epic can be tested as an entire release.

As your team grows and your automated testing matures you’ll be set up to maximize the advantages of parallel ephemeral environments, whereas teams using persistent environments are inherently set-up for diminishing returns.  When quality and stability start to outweigh speed in importance to your business goals you’ll be ready. Uffizzi acts as a quality gate by preventing buggy code from ever being committed to a downstream branch.

Over time we recommend increasing the sophistication of your testing process to a risk-based method which you can easily add on top of your ephemeral environment capability.  We use and recommend a risk-based tagging system to indicate an appropriate test track:
1. Fast Track = Dev Test
2. Routine Track = QA Test
3. Deliberate Track = PM Test

Any Developer on the team can build, test, and ship their own feature tagged as “Dev Test” - this is how you should operate with any early-stage project but as your project gains stability this type of testing method sets you up for a hybrid approach that optimizes for speed and quality.

Once you’ve adopted ephemeral environments into your workflow you’ll never look back at the old way of testing and releasing.

Josh Thurman

Co-founder & DevRel Lead