Svix Blog
Published on

Introducing: Multiple Environments

Authors

Cover image

With this release we now support having multiple environments (e.g. dev, staging and prod) under the same account. This has been an often requested feature ever since our webhooks service first launched. To be fair, it was always possible to have different environments, using different accounts, but this change makes it more accessible and streamlined.

A bit of background

It's common practice for engineering teams to have multiple environments, such as development, staging and production. The idea behind having multiple environments is to be able to test changes in isolation and catch issues before they hit production. So for example, a developer may make some changes locally, test them, and push them for testing in CI/CD. Following that, the change will be moved to a shared development environment where it would be tested by the wider team. Changes that pass this level of testing will move to staging, where they are deployed to an environment that's as similar as possible to the production environment, and after all testing pass there they would be deployed to production and rolled out to users.

Not all teams go through all of the steps above (and some go through more), but the idea remains the same: you want to isolate your production environment, where real user data lies, from your non-production environments that may contain bugs and regressions.

Our users are engineers, which means that they are all professional problem solvers. So what they did when we didn't offer multiple environments? They worked around this limitation by using multiple accounts. E.g. they would have multiple accounts, such as john+dev@example.com, john+staging@example.com and john+prod@example.com. This is a great hack and unblocked people, though since this was such a common demand we decided to add support for it directly into the product.

How does it work?

Each environment is completely isolated, and has completely separate data, settings and API keys.

You can create as many environments as you want, to do it just go to the environment management page on the dashboard.

Click on New Environment, choose a name and mark the environment as either Development or Production. At the moment this tag is only used for visual purposes, though in the near future it will also have functional implications.

New environment

This is how it looks like after adding multiple environments:

Manage environments

You can then switch between the active environment using the switcher on the top left corner and just start using that environment like you used your account before.

For more information, please refer to the environments docs.

Coming next

We have a lot more planned, and a few announcements coming up. One long-awaited feature in particular is support for multiple administrators per account, which is enabled by this change.

This is it for this update, but make sure to follow us on Twitter, Github or RSS for the latest updates, or join the discussion on our community Slack.