Staging environment

Adobe recommends creating a branch called staging from master. The staging branch deploys code to the staging environment to provide a pre-production environment to test code, modules and extensions, payment gateways, shipping, product data, and much more. This environment provides the configuration for all services to match the production environment including Fastly, New Relic APM, and search.

Additional sections in this guide provide instructions for final code deployments and testing production-level interactions in a secure Staging environment. For best performance and feature testing, replicate your database into the Staging environment.

WARNING
Adobe recommends testing every merchant and customer interaction in the Staging environment before deploying to the production environment. See Deploy your store and Test deployment.

Integration environment

Developers use the integration environment to develop, deploy, and test:

  • Adobe Commerce application code

  • Custom code

  • Extensions

  • Services

Recommended use cases:

Integration environments are designed for limited testing and development. For example, you can use the integration environment to complete the following tasks:

  • Ensure that changes to continuous integration (CI) processes are Cloud compatible

  • Test critical workflows on key pages like Home, Category, Product Details Page (PDP), Checkout, and Admin

For best performance in the integration environment follow these best practices:

  • Restrict the catalog size - For reference, the Sample Data contains about 2,048 products. Try reducing your catalog size to around 4,000-5,000 products.
    To check the number of products in the catalog, run the following MySQL query:

    select distinct count(entity_id) from catalog_product_entity;
    
  • Reduce the number of customer groups - Having too many customer groups can affect the indexing performance and overall performance.

  • Limit use to one or two concurrent users

  • Disable cron jobs and manually run as needed

You can have up to two active Integration environments. You create an Integration environment by creating a branch from the staging branch. When you create an Integration environment, the environment name matches the branch name. An integration environment includes a web server and a database. It does not include all services, for example Fastly CDN and New Relic are not available.

You can have an unlimited number of inactive branches for code storage. To access, view, and test an inactive branch, you must activate it

NOTE
Projects provisioned before June 5, 2020 had multiple, smaller Integration environments. If you need a larger Integration environment for testing and development, request an upgrade to Enhanced Integration environments. See the Integration Environment request article in the Adobe Commerce Help Center for details.

Production and staging technology stack

The production and staging environments include the following technologies. You can modify and configure these technologies through the .magento.app.yaml file.

  • Fastly for HTTP caching and CDN
  • Nginx web server speaking to PHP-FPM, one instance with multiple workers
  • Redis server
  • Elasticsearch for catalog search for Adobe Commerce 2.2 to 2.4.3-p2
  • OpenSearch for catalog search for Adobe Commerce 2.3.7-p3, 2.4.3-p2, and 2.4.4 and later
  • Egress filtering (outbound firewall)

Services

Adobe Commerce on cloud infrastructure currently supports the following services: PHP, MySQL (MariaDB), Elasticsearch (Adobe Commerce 2.2 to 2.4.3-p2), OpenSearch (2.3.7-p3, 2.4.3-p2, 2.4.4 and later), Redis, and RabbitMQ.

Each service runs in a separate, secure container. Containers are managed together in the project. Some services are standard, such as the following:

  • HTTP router (handling incoming requests, but also caching and redirects)

  • PHP application server

  • Git

  • Secure Shell (SSH)

Software versions

Adobe Commerce on cloud infrastructure uses the Debian GNU/Linux operating system and the NGINX web server. You cannot upgrade this software, but you can configure versions for the following:

In the staging and production environments, you use Fastly for CDN and caching. The latest version of the Fastly CDN extension installs during the initial provisioning of your project. You can upgrade the extension to get the latest bug fixes and improvements. See Fastly CDN module for Magento 2. Also, you have access to New Relic for performance monitoring.

Use the following files to configure the software versions that you want to use in your implementation.

Backup and disaster recovery

You can create a backup of your database and file system using the Cloud Console or the CLI. See Backup management.

Prepare for development

The following workflow summarizes the process to branch your code, develop, and deploy your store:

  1. Set up your local environment

  2. Clone the master branch to your local environment

  3. Create a staging branch from master

  4. Create branches for development from staging

  5. Push code to Git that builds and deploys to an environment for testing

See the following sections for detailed instructions and walk-throughs to develop, test, and deploy your store:

Previous pageTechnology stack
Next pageStarter workflow

Commerce