Overview of staging and production

As discussed in more detail in Architecture, Magento Enterprise Cloud Edition has three types of systems:

  • Integration, used by a developer to write custom code and test it.

    You can have up to eight environments in your integration system.

  • Staging, which runs on hardware similar to production.

    Staging is where you test your finalized code before deploying to your live production system.

  • Production, which runs your public-facing store on triple-redundant hardware.

The differences between integration, staging, and production follow:

Integration Staging Production
Managed by a UI Yes No No
Uses .yaml files for configuration Yes Requires support ticket for deployment settings Requires support ticket for deployment settings
Multiple environments Yes No (master only) No (master only)
Runs on dedicated hardware No Yes Yes

The following diagram illustrates how the three systems work on a high level:

How test, staging, and production works

In your integration system, you can create up to eight environments however you want. For example, you could have a feature branch and iterate development over several sprints. At the end of a sprint, you could merge (that is, push) code the the parent branch (labeled Feature1 in the preceding diagram). To start another sprint you could sync (that is, pull) code from Feature1 to your next sprint.

After you fix bugs, you merge Feature1 with master, making that code potentially ready for deployment to staging and then to production.

Although the integration system can have many branches, staging and production have only one, master.

Assisted deployment means that your staging and production systems require you to perform the tasks discussed in the following paragraphs.

Support ticket

Create a support ticket to notify us you’re ready to move to either staging or production.

For technical reasons, Magento Enterprise Cloud Edition staging and production systems don’t implement any deployment hooks automatically. These hooks, defined in the hooks section of your .magento.app.yaml file, must be manually migrated to staging or production.

Create a support ticket to let us help you implement any deployment hooks you set up.

Among the settings you can request us to enable are Xdebug and PHPUnit, which assists you in troubleshooting any coding issues you might have during deployment. Because of its memory requirements, we recommend you disable Xdebug before your site is live.

You can optionally replace the hooks section with a shell script that you can maintain without intervention. You need only to create a support ticket the first time you'd like to use the shell script.

Git and SSH URLs

Get your Git and SSH URLs from the OneDrive onboarding document you received when you signed up for Magento Enterprise Cloud Edition.

After you know these URLs, you can access them without further intervention. You can deploy updated code to staging or production using Git commands.

You should always deploy code and data from the master branch of your integration environment to staging, and then from staging to production. If you need to fix issues, fix them in development and push them to staging before production.