Benefits of Preview Environments
Coherence allows you to set up preview environments that are automatically generated for every pull request opened in GitHub. Preview environments benefit DevOps teams by eliminating staging bottlenecks, enhancing asynchronous collaboration, improving testing quality, and saving time and money.
Traditional staging bottlenecks
Before the cloud, most software teams only had a single staging environment, which created a bottleneck for developers who had to wait their turn to deploy to staging.
These staging environments are also notoriously difficult to maintain. Staging is meant to simulate production as closely as possible to provide developers with confidence that their code will work in the production environment if it works correctly in the staging environment. However, this is rarely the case in practice because keeping a staging environment in sync with production is often a nightmare.
The frustration caused by a single staging environment often forces developers to devise clever ways to circumvent staging altogether, like creating their own "staging" environments. This introduces additional complexity, overhead, and yak shaving – not to mention potentially serious security risks.
In Coherence, automatically generated preview environments eliminate these issues by creating a "staging" environment for each piece of work. Instead of a single environment shared by all developers, every branch has its own isolated environment. Bottlenecks are no longer an issue, as developers can spin up new environments in seconds.
Collaboration and feedback
Prior to preview environments, developers used screen shares, screenshots, and videos to show their work to stakeholders and other teams. This often led to "review meetings" in which stakeholders, as well as product, design, and other teams, would gather to review the work. It was difficult for team members to collaborate and provide feedback asynchronously and time was wasted.
Coherence preview environments are automatically generated with a unique URL that developers can use to share their work, making screen shares, screenshots, videos, and "review meetings" a thing of the past. Work can be reviewed asynchronously, saving time, money, and meetings. Sales teams also benefit from preview environments, as they can use previews to demo new features to prospective customers.
Testing
Preview environments also provide several benefits when it comes to testing. In addition to the close similarity of preview environments to production that provides assurance that deployed code will work, preview environments improve testing quality by eliminating the friction of rebuilding local environments during code reviews.
Testing code locally is often time-consuming and challenging. When reviewing code, this added friction frequently causes developers to skip the crucial step of rebuilding their local environments and resort to only checking the "diff" of proposed changes. Automatically generated preview environments remove the need to manually rebuild local environments, resulting in higher-quality code with fewer bugs.
Let's be honest with ourselves: When it comes to testing, we all cut corners we know we shouldn't. Our teams often need to move quickly, making maintaining our various environments difficult. Preview environments require little to no maintenance, meaning work can be tested with the quality and thoroughness we know it should be.
Automated infrastructure
Automated preview environments and the infrastructure that powers them require little intervention. Every time a developer opens a new PR, a new environment is created exclusively for that piece of work. These environments are designed to be created and destroyed quickly, so a new environment can be spun up in seconds if an existing environment becomes corrupted or breaks.
Automation gives DevOps teams one less thing to worry about. DevOps teams are under significant stress and often overwhelmed, and automated preview environments allow them to focus on the most pertinent matters.
Cost control and savings
Preview environments are ephemeral by design, meaning they only exist for as long as they are needed. Temporary environments can result in significant savings, as teams no longer have to pay for environments that are not in use. For example, you can automate preview environments to be generated for every pull request and destroyed when the request is approved and merged.