Environments overview
Edit on GitHubThis document describes the environment types shipped with Spryker and the best ways to use them. Knowing the purpose of the environments and working with them as intended can help you build more solid and performant projects.
- Contracts may vary, and this document only describes the environments types that may represent your default setup. If you are using a different setup, ask your project manager or product owner for a more detailed explanation.
- Your non-production environments don’t scale automatically. If you want to increase their scaling, let us know by submitting this form: Upscale Request. Due to contractual reasons, only customers can request these changes, not partners.
Basic concept
We offer environments that serve different purposes. These environments are non-production, production-like, and production environments. We can configure these environments to be as similar as possible to make sure that the code you deploy in one environment behaves the same way as in the others. You can help us keep your environments consistent by taking this into consideration when sending us change requests.
Non-production environments (NON-PROD)
Used for development and testing purposes, smaller in size and doesn’t scale. We offer several types of NON-PROD environments as described in the following sections. Non-production environments don’t feature zero-downtime deployments because services, such as Yves or Glue, aren’t set up in a redundant manner.
Developer environment (DEV)
A Dev environment is a non-production environment that is usually used to test code that just left your development team, or is used in the development process directly through continuous deployment. It is not designed to handle load tests and large datasets. The development environment does not provide autoscaling and and can only be scaled up upon request.
Staging (STAGE)
This environment is a non-production environment that is usually used to host a snapshot of the DEV environment, or a stable version of your code that is deployed to production eventually. You can use your STAGE environment to test how your code behaves in a production environment. However, staging is not of the same size as production, and a subset of data and expected traffic must be considered while running tests. This environment is regularly used for demos. The staging environment provides limited autoscaling capabilities and can only be scaled up on request.
Production-like (PROD-LIKE)
This environment is set up exactly like a PROD environment. It’s designed to carry out temporary load testing and related activities in an environment similar to PROD. This makes deployments to PROD more predictable and prevents issues. PROD-LIKE behaves exactly like PROD, but it’s only available for a short time period to perform the necessary tests.
Production (PROD)
Your production environment hosts the code that the end-user gets to interact with directly. The code must already be tested on the STAGE environment for stability and performance. In a PROD Environment, the application is automatically scaled to handle the load on the infrastructure generated by incoming requests. Production environments also offer zero-downtime deployments of Spryker services, because Spryker services, such as Glue, Yves, and Back Office, are set up in a redundant manner, making sure there is always enough instances available to serve requests while others are updated.
Before you deploy to PROD, make sure the changes were deployed and tested in your DEV and STAGE environments. We highly recommend testing every data load and import, as well as any integrations on your STAGE.
Next step
Thank you!
For submitting the form