People with preview / ephemeral environments: How ...
# platform-culture
People with preview / ephemeral environments: How do you manage the temptation for long running branches? Right now, our developers have to merge their code to the trunk to deploy, encouraging small, fast changes. We have a strong use case of demoing functionality we’re building to customers, to get feedback quickly during the development process. I’m concerned preview environments will enable well-intentioned bad habits, letting demo branches stay open for a long time. (open for any suggestions for discouraging long running branches)
We use feature flags for this purpose. We still do small, incremental releases but the new changes / features go under a feature flag which we can enable at a per customer account level. That way you can preview or give alpha / beta versions while hiding it for most customers.
It also depends of the branch purpose. I am strong believer interns of trunk based development, but in a large team I found it quite difficult, even with queue mechanism on the pipes. We started using feature flags for the large teams and it helped a lot and still allowed us to keep small changes. On top of that when I have created a repo for git actions with templates - I simply used branching as in GitHub Actions you can call a specific branch and use workflow. It will be ever lasting branch (never thought that I would say it)
Hi @Tim Becker 👋 - I’m the CEO of Qovery 👋 Our company offers a robust Preview Environments solution to hundreds of engineering teams. To prevent branches from running for extended periods, our clients have the ability to set a Time-to-Live (TTL) for each environment. This ensures that the environment will automatically cease to exist after a predefined duration, keeping things efficient and organized.
Thanks for the responses! I like the idea of feature flags as an alternative/enhancement to preview environments. We also have teams where trunk based development doesn’t fit them as well, I definitely think there’s a use case. I like the TTL idea, it’d have to be well known to avoid confusion, but it’s a great idea.