Administering RStudio server products often requires you to test changes to your environment, but testing changes can be problematic in production. For example, upgrading R can disrupt developers and end users who work with production applications. A staging server mitigates issues associated with administering production environments. The purpose of the staging server is to test your compute environment and/or your applications before applying them to your production servers.
Staging servers run the same software that production environments run. However, unlike production systems, a single staging server can typically service multiple production servers. For example, in a production environment you may isolate RStudio Server Pro and RStudio Connect on separate clusters, whereas you may put both on the same staging server.
Use case 1: Testing your computing environment
You can use the staging server to test changes to your compute environment. For example, when you upgrade Linux, R, or RStudio, you will want to test the upgrade in the staging server first. You can also test product configurations before applying them in production. Using staging will help you roll out consistent changes across your environment.
Use case 2: Testing applications before deployment
You can also test your Shiny applications, scripts, and documents in staging before deploying them to production. Often, your Shiny applications will need different permissions and settings in your production environment than you used in your development environment. Staging servers are particularly recommended if your Shiny applications run under an SLA.
Relationship to Dev/Test/Prod
The staging server acts as a test server in a dev/test/prod framework. If you want to set up a dev/test/prod framework for deploying content like Shiny apps, we recommend using the RStudio IDE for development, an RStudio Connect staging server for test, and an RStudio Connect server (or cluster) for production.
Relationship to sandboxes and lab boxes
Typically staging servers and sandboxes occupy distinct servers. Staging servers are used to support production environments, whereas sandboxes (a.k.a. lab boxes) are used for experimenting with new products and solutions. For example, you might want to run a proof of concept that involves testing new products on a sandbox. Many sandbox environments are also intended to be refreshed (i.e. burned down). Sandboxes are often administered jointly by both data scientists and IT operations and are useful for establishing best practices in an organization.
You can use either open source or professional RStudio software in your staging environments. Be aware that RStudio offers specific staging licenses that go along with RStudio professional products. As described in our End User License Agreement, staging licenses are used only for testing changes to your computing environment or for testing Customer applications, scripts, or documents before deploying them to your users. Please contact sales (email@example.com) if you are interested in learning more about staging licenses.