What is an ephemeral environment?
An ephemeral environment is a short-lived standalone deployment of an application. Ephemeral environments can be automatically generated with a pull request for any given branch in a repository, allowing collaboration, testing, and previewing new features prior to a merge. Ephemeral environments only last as long as you need them, and can be spun up and down as often.
Who uses ephemeral environments?
Ephemeral environments, also known as “dynamic environments”, “on-demand environments”, or “preview environments”, are now becoming a best practice for organizations of all sizes as teams realize their positive impact on software quality. However, building ephemeral environments into a team’s delivery process requires months of work and ongoing maintenance. The emergence of environments-as-a-service providers like Shipyard means that ephemeral environments are now accessible for teams who need this functionality quickly and affordably.
Why should my organization use ephemeral environments?
Ephemeral environments improve the efficiency of your SDLC by enabling your teams access to features as they are being built. This greatly reduces bugs caught through early E2E testing and manual testing by Product teams before merge, resulting in faster, more frequent deployments.
Ephemeral environments control costs
Traditional staging environments can incur unnecessary cloud costs. Why pay for cloud resources when you are not actively observing and testing your environments? A major benefit of ephemeral environments is how easily they can be spun up and spun down, meaning you’ll only pay your cloud provider for the time and resources you use. Of course, you’ll need a way to monitor the spinning up and down of environments to keep costs low. Cost optimization can be built by an internal team or a service like Shipyard can automate this for you to ensure you’re only using the relevant resources.
Ephemeral environments allow you to test more things in parallel during development
In the past, many teams have had a single static staging environment where they push their latest code changes and test them prior to merging to production. When you create ephemeral environments dynamically on every pull request, you’re able to test more than just what’s ‘almost ready’ for production. Developers can work on discrete branches for specific features, data migrations, and anything and everything that needs its own testing and QA prior to being merged to a staging or production environment. This means less unexpected issues as code makes its way closer to production.
Ephemeral environments promote collaboration
With ephemeral environments, teams can share and collaborate on each feature prior to a merge, allowing for asynchronous feedback and efficient code reviews. Instead of being limited to a single staging environment, each team can have as many ephemeral environments as they need, which often means one for every feature branch. Easy access to and sharing of environments promotes collaboration between, QA, product, and even sales teams so there are always the right eyes on updates before they make it to production. Nobody is getting blocked by the limited availability of staging environments and teams do not need to wait around for feedback.
How can my organization get started with ephemeral environments?
There are many ways to integrate ephemeral environments into your organization’s dev workflow, whether that means building your own platform or using an existing service.
Shipyard makes ephemeral environments easy
By using a platform like Shipyard, full-featured ephemeral environments are just a pull request away without the need to build and manage all of the pieces yourself. Start 30 day trial
EphemeralEnvironments.io is a resource for implementing ephemeral environments in your organization. The content is sourced directly from interviews with industry experts at leading companies using ephemeral environments in their development workflow.