diff --git a/src/_data/toc/cloud-guide.yml b/src/_data/toc/cloud-guide.yml index 6a34a65f0f6..0772388cd4a 100644 --- a/src/_data/toc/cloud-guide.yml +++ b/src/_data/toc/cloud-guide.yml @@ -14,11 +14,11 @@ pages: versionless: true children: - label: Starter architecture - url: /cloud/basic-information/starter-architecture.html + url: /cloud/architecture/starter-architecture.html versionless: true - label: Starter develop and deploy workflow - url: /cloud/basic-information/starter-develop-deploy-workflow.html + url: /cloud/architecture/starter-develop-deploy-workflow.html versionless: true - label: Pro architecture diff --git a/src/_includes/cloud/note-enhanced-integration-envs-kb.md b/src/_includes/cloud/note-enhanced-integration-envs-kb.md new file mode 100644 index 00000000000..01cc84e64c7 --- /dev/null +++ b/src/_includes/cloud/note-enhanced-integration-envs-kb.md @@ -0,0 +1,2 @@ +{:.bs-callout-info} +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](https://support.magento.com/hc/en-us/articles/360043032152) article in the _Magento Help Center_ for details. diff --git a/src/cloud/architecture/cloud-architecture.md b/src/cloud/architecture/cloud-architecture.md index 111b7d2e584..d9446c298a2 100644 --- a/src/cloud/architecture/cloud-architecture.md +++ b/src/cloud/architecture/cloud-architecture.md @@ -95,7 +95,7 @@ For comparison, each plan includes the following infrastructure features and sup ## Starter projects -The [Starter plan architecture]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html) has four environments: +The [Starter plan architecture]({{ site.baseurl }}/cloud/architecture/starter-architecture.html) has four environments: - **Integration**—The Integration environment provides three testable environments. Each environment includes an active Git branch, database, web server, caching, some services, environment variables, and configurations. - **Staging**—As code and extensions pass your tests, you can merge your Integration branch to a Staging environment, which becomes your pre-Production testing environment. It includes the `staging` active branch, database, web server, caching, third-party services, environment variables, configurations, and services, such as Fastly and New Relic. diff --git a/src/cloud/architecture/pro-architecture.md b/src/cloud/architecture/pro-architecture.md index 27ee8057567..efdf1c1870e 100644 --- a/src/cloud/architecture/pro-architecture.md +++ b/src/cloud/architecture/pro-architecture.md @@ -9,12 +9,12 @@ functional_areas: - Cloud --- -Your {{site.data.var.ece}} Pro architecture supports a maximum of **eight** environments that you can use to develop, test, and launch your store. Each environment contains a database and a web server: +Your {{site.data.var.ece}} Pro architecture supports multiple environments that you can use to develop, test, and launch your store. -- **Integration**—Provides a single environment branch, and you can create up to four additional, environment branches. This allows for a maximum of five _active_ branches deployed to Platform-as-a-Service (PaaS) containers. +- **Integration**—Provides a single environment branch, and you can create one additional, environment branch. This allows for up to two _active_ branches deployed to Platform-as-a-Service (PaaS) containers. - **Staging**—Provides a single environment branch deployed to dedicated Infrastructure-as-a-Service (IaaS) containers. - **Production**—Provides a single environment branch deployed to dedicated Infrastructure-as-a-Service (IaaS) containers. -- **Global Master**—Provides a `master` branch deployed to Platform-as-a-Service (PaaS) containers. +- **Master**—Provides a `master` branch deployed to Platform-as-a-Service (PaaS) containers. The following table summarizes the differences between environments: @@ -65,6 +65,9 @@ The following table summarizes the differences between environments: +{:.bs-callout-info} +Magento also provides the {{site.data.var.mcd-prod}} solution to deploy Magento to a local Cloud Docker environment for developing and testing {{site.data.var.ee}} projects. See [Docker development]({{site.baseurl}}/cloud/docker/docker-development.html). + ## Pro environment architecture Your project is a single Git repository with three, main environment branches for Integration, Staging, and Production. The following diagram shows the hierarchical relationship of the environments: @@ -73,23 +76,37 @@ Your project is a single Git repository with three, main environment branches fo ## Integration environment {#cloud-arch-int} -Developers use the Integration environment to develop, deploy, and test: +The Integration environment runs in a Linux container (LXC) on a grid of servers known as Platform-as-a-Service (PaaS). Each environment includes a web server and database to test your site. + +**Recommended use cases:** -- Magento application code -- Custom code -- Extensions -- Services +Integration environments are designed for limited testing and development before moving changes to Staging and Production. For example, you can use the Integration environment to complete the following tasks: -The Integration environment runs in a Linux container (LXC) on a grid of servers known as Platform-as-a-Service (PaaS). Each environment includes a web server and database to test your site. +- 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 catalog size - {:.bs-callout-info} -The Integration environment does not support all services. For example, the Fastly CDN is not accessible in an Integration environment. +- Limit use to one or two concurrent users -### Global Master +- Disable crons and manually run as needed -The Global Master branch is a part of the Integration environment. You should always push a copy of the Production code to the Global Master in case there is an emergent need to debug the Production environment without interrupting services. +**Caveats:** -Do **not** create a branch from Global Master. Use the Integration environment branch to create new, active branches. +- Fastly CDN and New Relic services are not accessible in an Integration environment + +- The Integration environment architecture does not match the Production and Staging architecture + +- Do not use the Integration environment for development testing, performance testing, or user acceptance testing (UAT) + +- Do not use the Integration environment to test {{site.data.var.b2b}} functionality + +- You cannot restore the Integration database from Production or Staging + +{% include cloud/note-enhanced-integration-envs-kb.md%} ## Staging environment {#cloud-arch-stage} @@ -97,8 +114,29 @@ The Staging environment provides a near-production environment to test your site You cannot create a branch from the Staging environment branch. You must push code changes from the Integration environment branch to the Staging environment branch. -{:.bs-callout-warning} -We highly recommend testing every merchant and customer interaction in the Staging environment prior to deploying to the Production environment. See [Deploy your store]({{ site.baseurl }}/cloud/live/stage-prod-live.html) and [Test deployment]({{ site.baseurl }}/cloud/live/stage-prod-test.html). +**Recommended use cases:** + +The Staging environment matches the Production architecture and is designed for UAT, content staging, and final review before pushing features to the Production environment. For example, you can use the Staging environment to complete the following tasks: + +- Regression testing against production data + +- Performance testing with Fastly caching enabled + +- Test new builds instead of patching in Production + +- UAT testing for new builds + +- Test {{site.data.var.b2b}} + +- Customize cron configuration and test cron jobs + +See [Deploy your store]({{ site.baseurl }}/cloud/live/stage-prod-live.html) and [Test deployment]({{ site.baseurl }}/cloud/live/stage-prod-test.html). + +**Caveats:** + +- After launching the Production site, use the Staging environment primarily to test patches for Production-critical bug fixes. + +- You cannot create a branch from the Staging environment branch. You must push code changes from the Integration environment branch to the Staging environment branch. ## Production environment {#cloud-arch-prod} @@ -170,6 +208,15 @@ Our redundant architecture means we can offer upscaling without downtime. When u For example, you can add extra web servers to an existing cluster should the constriction be at the PHP level rather than the database level. This provides _horizontal scaling_ to complement the vertical scaling provided by extra CPUs on the database level. See [Scaled architecture]({{ site.baseurl }}/cloud/architecture/scaled-architecture.html). +## Master environment + +On Pro plan projects, the Master branch provides an active PaaS environment with your Production environment. Always push a copy of the Production code to the Master environment in case you need to debug the Production environment without interrupting services. + +**Caveats:** + +- Do **not** create a branch from Master. Use the Integration environment branch to create new, active branches. +- Do not use the Master environment for development, UAT or performance testing + ## Software versions {#cloud-arch-software} {{site.data.var.ece}} uses the Debian GNU/Linux operating system and the [NGINX](https://glossary.magento.com/nginx) web server. You cannot upgrade this software, but you can configure versions for the following: @@ -180,7 +227,7 @@ For example, you can add extra web servers to an existing cluster should the con - [RabbitMQ]({{ site.baseurl }}/cloud/project/project-conf-files_services-rabbit.html) - [Elasticsearch]({{ site.baseurl }}/cloud/project/project-conf-files_services-elastic.html) -For the Staging and Production environments, we recommend installing the Fastly CDN module 1.2.33 or later. See [Fastly in Cloud]({{ site.baseurl }}/cloud/cdn/cloud-fastly.html). +For the Staging and Production environments, we recommend installing the latest version of the Fastly CDN module. See [Fastly in Cloud]({{ site.baseurl }}/cloud/cdn/cloud-fastly.html#fastly-cdn-module-for-magento-2). Edit the following YAML files to configure specific software versions to use in your implementation. diff --git a/src/cloud/architecture/starter-architecture.md b/src/cloud/architecture/starter-architecture.md new file mode 100644 index 00000000000..741459d2591 --- /dev/null +++ b/src/cloud/architecture/starter-architecture.md @@ -0,0 +1,135 @@ +--- +group: cloud-guide +title: Starter architecture +functional_areas: + - Cloud +redirect_from: + - /cloud/basic-information/starter-architecture.html +--- + +Your {{site.data.var.ece}} Starter architecture supports up to **four** environments, including a Master environment that contains the initial project code, the Staging environment, and up to two Integration environments. + +All environments are in PaaS (Platform-as-a-Service) containers. These containers are deployed inside highly restricted containers on a grid of servers. These environments are read-only, accepting deployed code changes from branches pushed from your local workspace. Each environment provide a database and web server. + +You can use any development and branching methodology you like. When you get initial access to your project, we strongly recommend that you create a Staging environment from the Master environment. Then, create the Integration environment by branching from Staging. + +## Starter environment architecture + +The following diagram shows the hierarchical relationships of the Starter environments. + +![High-level view of Starter project]({{ site.baseurl }}/common/images/cloud/cloud_arch-starter.png) + +## Production environment {#cloud-arch-prod} + +The Production environment provides the source code to deploy Magento to the Cloud infrastructure that runs your public-facing Magento single and multi-site storefronts. The Production environment uses code from the `master` branch to configure and enable the web server, database, configured services, and your Magento application code. + +Because the production environment is read-only, you must make changes in the Integration environment and deploy across the architecture from the Integration environment to Staging, and finally to the Production environment. See [Deploy your store][] and [Site launch][]. + +We highly recommend fully testing in your Staging environment and branch before pushing to the `master` branch which deploys to the Production environment. + +## Staging environment {#cloud-arch-stage} + +We recommend 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 Production database into the Staging environment. + +{:.bs-callout-warning} +We highly recommend testing every merchant and customer interaction in the Staging environment prior to deploying to the Production environment. See [Deploy your store][] and [Test deployment][]. + +## Integration environment {#cloud-arch-int} + +Developers use the Integration environment to develop, deploy, and test: + +- Magento application code +- Custom code +- Extensions +- Services + +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. + +{% include cloud/note-enhanced-integration-envs-kb.md%} + +## Production and Staging technology stack {#technology} + +The Production and Staging environments include the following technologies. You can modify and configure these technologies through the [`.magento.app.yaml`][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 searching for {{site.data.var.ece}} 2.2 and later + +### Services {#cloud-arch-services} + +{{site.data.var.ece}} currently supports the following services: PHP, MySQL (MariaDB), Elasticsearch (Magento 2.2.x 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) + +You can have multiple applications running in the same project. Building a microservice-oriented architecture with {{site.data.var.ee}} is as easy as managing a monolithic application. + +### Software versions {#cloud-arch-software} + +{{site.data.var.ece}} uses the Debian GNU/Linux operating system and the [NGINX](https://glossary.magento.com/nginx) web server. You cannot upgrade this software, but you can configure versions for the following: + +- [PHP][] +- [MySQL][] +- [Redis][] +- [RabbitMQ][] +- [Elasticsearch][] + +In the Staging and Production environments, you use Fastly for CDN and caching. When your environment is initially provisioned, we install the latest version of the Fastly CDN extension for Magento. You can upgrade the extension to get the latest bug fixes and improvements. See [Fastly CDN module for Magento 2][]. You also have access to [New Relic][] for performance management. + +You use the following files to configure the software versions that you want to use in your implementation. + +- [`.magento.app.yaml`][magento.app.yaml] +- [`routes.yaml`][routes.yaml] +- [`services.yaml`][services.yaml] + +### Backup and disaster recovery {#backup} + +You can create a snapshot of your database and file system using the Project Web Interface or the CLI. The snapshot includes your deployed code, installed software and services, and data. See [Snapshots and backup management][]. + +## Prepare for development {#develop} + +The following workflow summarizes the process to branch your code, develop, and deploy your store: + +1. Set up your local environment +1. Clone the `master` branch from the Project to your local environment +1. Create a `staging` branch from `master` +1. Create branches for development from `staging` +1. 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: + +- [Starter develop and deploy workflow][] +- [Docker development][] (local development environment enabled by {{site.data.var.mcd-prod}}) +- [Manage branches][] +- [Deploy your store][] +- [Site launch][] + + +[Deploy your store]: {{ site.baseurl }}/cloud/live/stage-prod-live.html +[Docker development]: {{ site.baseurl }}/cloud/docker/docker-development.html +[Elasticsearch]: {{ site.baseurl }}/cloud/project/project-conf-files_services-elastic.html +[Fastly CDN module for Magento 2]: {{ site.baseurl }}/cloud/cdn/cloud-fastly.html#fastly-cdn-module-for-magento-2 +[Manage branches]: {{ site.baseurl }}/cloud/env/environments-start.html +[MySQL]: {{ site.baseurl }}/cloud/project/project-conf-files_services-mysql.html +[New Relic]: {{site.baseurl}}/cloud/project/new-relic.html#configure-new-relic-for-starter-environments +[PHP]: {{ site.baseurl }}/cloud/project/project-conf-files_magento-app.html +[RabbitMQ]: {{ site.baseurl }}/cloud/project/project-conf-files_services-rabbit.html +[Redis]: {{ site.baseurl }}/cloud/project/project-conf-files_services-redis.html +[Site launch]: {{ site.baseurl }}/cloud/live/live.html +[Snapshots and backup management]: {{ site.baseurl }}/cloud/project/project-webint-snap.html +[Starter develop and deploy workflow]: {{ site.baseurl}}/cloud/architecture/starter-develop-deploy-workflow.html +[Test deployment]: {{ site.baseurl }}/cloud/live/stage-prod-test.html +[launching your site]: {{ site.baseurl }}/cloud/live/live.html +[magento.app.yaml]: {{ site.baseurl }}/cloud/project/project-conf-files_magento-app.html +[nginx]: https://glossary.magento.com/nginx +[routes.yaml]: {{ site.baseurl }}/cloud/project/project-conf-files_routes.html +[services.yaml]: {{ site.baseurl }}/cloud/project/project-conf-files_services.html diff --git a/src/cloud/basic-information/starter-develop-deploy-workflow.md b/src/cloud/architecture/starter-develop-deploy-workflow.md similarity index 98% rename from src/cloud/basic-information/starter-develop-deploy-workflow.md rename to src/cloud/architecture/starter-develop-deploy-workflow.md index c568f2f0e0f..fe4cc2f34e5 100644 --- a/src/cloud/basic-information/starter-develop-deploy-workflow.md +++ b/src/cloud/architecture/starter-develop-deploy-workflow.md @@ -1,9 +1,13 @@ --- group: cloud-guide title: Starter develop and deploy workflow +functional_areas: + - Cloud +redirect_from: + - /cloud/basic-information/starter-develop-deploy-workflow.html --- -The {{site.data.var.ece}} includes a single Git repository with a master branch for the Production environment that can be branched to create Staging and Integration environments for testing and development work. You can have up to four active environments, including a `master` environment for your production server. See [Starter architecture]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html) for an overview. +The {{site.data.var.ece}} includes a single Git repository with a master branch for the Production environment that can be branched to create Staging and Integration environments for testing and development work. You can have up to four active environments, including a `master` environment for your production server. See [Starter architecture]({{ site.baseurl }}/cloud/architecture/starter-architecture.html) for an overview. For your environments, we recommend following a Development > Staging > Production workflow to develop and deploy your site. diff --git a/src/cloud/basic-information/starter-architecture.md b/src/cloud/basic-information/starter-architecture.md deleted file mode 100644 index fc5331e5192..00000000000 --- a/src/cloud/basic-information/starter-architecture.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -group: cloud-guide -title: Starter architecture -functional_areas: - - Cloud ---- - -All of your code is contained in the {{site.data.var.ece}} Starter project. The _project_ is your Magento store code, extensions, and integrations on a `master` branch. Each project supports up to 4 total environments including up to three active Integration *environments* and a Production environment using the `master` branch. - -All environments are in PaaS (Platform-as-a-Service) containers. These containers are deployed inside highly restricted containers on a grid of servers. These environments are read-only, accepting deployed code changes from branches pushed from your local workspace. - -You can use any development and branching methodology you like. We strongly recommend creating a Staging environment and branch as one of the Integration environments. - -![High-level view of Starter project]({{ site.baseurl }}/common/images/cloud/cloud_arch-starter.png) - -## Production with a master branch {#cloud-arch-prod} - -The Production environment is your live store(s) and site(s). The environment includes your `master` branch, a web server, database, and configured services to fully test your site. - -The Production environment runs your public-facing Magento single and multi-site storefronts. This system is read-only, requiring deployment across the architecture from the Integration environment to the Staging environment, and finally to the Production environment. - -We walk you through [deploying to Production]({{ site.baseurl }}/cloud/live/stage-prod-live.html) and [launching your site]({{ site.baseurl }}/cloud/live/live.html) requirements and processes. - -We highly recommend fully testing in your Staging environment and branch before pushing to the `master` branch which deploys to the Production environment. - -## Staging branch and environment {#cloud-arch-stage} - -We recommend creating a branch called `staging` from `master`. The Staging environment is created from the `staging` branch 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 and walk-throughs for final code deployments and testing production level interactions in a safe Staging environment. For best performance and feature testing, replicate your Production database into the Staging environment. - -We walk you through [deploying to Staging]({{ site.baseurl }}/cloud/live/stage-prod-live.html) and [testing your store(s)]({{ site.baseurl }}/cloud/live/stage-prod-test.html) requirements and processes. - -{:.bs-callout-warning} -We highly recommend testing every merchant and customer interaction in the Staging environment prior to deploying to the Production environment. See [Deploy your store]({{ site.baseurl }}/cloud/live/stage-prod-live.html) and [Test deployment]({{ site.baseurl }}/cloud/live/stage-prod-test.html). - -## Integration environment {#cloud-arch-int} - -Developers use the Integration environment to develop, deploy, and test: - -- Magento application code -- Custom code -- Extensions -- Services - -You can have up to **two** active Integration environments on a grid for **two** active branches. Each Integration environment matches the name of the branch and includes a web server, database, and configured services to fully test your site. - -You can have an unlimited number of inactive branches to store code. To access, view, and test inactive branches, you must activate them. - -{:.bs-callout-info} -The Integration environment does not support all services. For example, Fastly CDN is not accessible in an Integration environment. - -The process for developing in Integration requires the following process: - -- Branch and develop off of the `staging` branch -- Develop all work on your local workspace in these branches -- Push code to Git to build and deploy on an Integration environment for testing -- As work is completed, merge to the `staging` branch - -Additional sections in this guide provide instructions and walk-throughs for setting up your [local workspace]({{ site.baseurl }}/cloud/before/before-workspace.html), working with branches, and [deploying code]({{ site.baseurl }}/cloud/live/stage-prod-live.html). - -## Production and Staging technology stack {#technology} - -The Production and Staging environments include the following technologies. You can modify and configure these technologies through the [.magento.app.yaml file]({{ site.baseurl }}/cloud/project/project-conf-files_magento-app.html). - -- Fastly for HTTP caching and CDN -- Nginx web server speaking to PHP-FPM, one instance with multiple workers -- Redis server -- Elasticsearch for searching for {{site.data.var.ece}} 2.2 and later - -### Services {#cloud-arch-services} - -{{site.data.var.ece}} currently supports the following services: PHP, MySQL (MariaDB), Elasticsearch (Magento 2.2.x and later), Redis, and RabbitMQ. - -Each service runs in its own secure container. Containers are managed together in the project. Some services are built-in, such as the following: - -- HTTP router (handling incoming requests, but also caching and redirects) -- PHP application server -- Git -- Secure Shell (SSH) - -You can even have multiple applications running in the same project. Building a microservice oriented architecture with {{site.data.var.ee}} is as easy as managing a monolithic application. - -### Software versions {#cloud-arch-software} - -{{site.data.var.ece}} uses: - -- Operating system: Debian GNU/Linux -- Web server: [nginx](https://glossary.magento.com/nginx) - -You cannot upgrade the operating system and web server software to a new version, but you can configure versions for the following software: - -- [PHP]({{ site.baseurl }}/cloud/project/project-conf-files_magento-app.html) -- [MySQL]({{ site.baseurl }}/cloud/project/project-conf-files_services-mysql.html) -- [Redis]({{ site.baseurl }}/cloud/project/project-conf-files_services-redis.html) -- [RabbitMQ]({{ site.baseurl }}/cloud/project/project-conf-files_services-rabbit.html) -- [Elasticsearch]({{ site.baseurl }}/cloud/project/project-conf-files_services-elastic.html) - -In the Staging and Production environments, you use Fastly for CDN and caching. When your environment is initially provisioned, we install the latest version of the Fastly CDN extension for Magento. You can upgrade the extension to get the latest bug fixes and improvements. See [Fastly CDN module for Magento 2]({{ site.baseurl }}/cloud/cdn/cloud-fastly.html#fastly-cdn-module-for-magento-2). - -You use the following files to configure the software versions that you want to use in your implementation. - -- [`.magento.app.yaml`]({{ site.baseurl }}/cloud/project/project-conf-files_magento-app.html) -- [`routes.yaml`]({{ site.baseurl }}/cloud/project/project-conf-files_routes.html) -- [`services.yaml`]({{ site.baseurl }}/cloud/project/project-conf-files_services.html) - -### Backup and disaster recovery {#backup} - -You can create a snapshot of your database and file system using the Project Web Interface or the CLI. The snapshot includes your deployed code, installed software and services, and data. See [Snapshots and backup management]({{ site.baseurl }}/cloud/project/project-webint-snap.html). - -## Prepare for development {#develop} - -{:.procedure} -To branch and develop your Magento store: - -- Set up your local environment -- Clone the `master` branch from the Project to your local environment -- Create a `staging` branch from `master` -- Create branches for development from `staging` -- Push code to Git that builds and deploys to an environment for testing - -Additional sections in this guide provide instructions and walk-throughs for setting up your [local workspace]({{ site.baseurl }}/cloud/before/before-workspace.html), working with branches, [deploying code]({{ site.baseurl }}/cloud/live/stage-prod-live.html), and [going live]({{ site.baseurl }}/cloud/live/live.html). diff --git a/src/cloud/before/before-setup-env-2_clone.md b/src/cloud/before/before-setup-env-2_clone.md index e5d386184d7..cabbeeef7b8 100644 --- a/src/cloud/before/before-setup-env-2_clone.md +++ b/src/cloud/before/before-setup-env-2_clone.md @@ -147,7 +147,7 @@ To add variables using the Project Web Interface: After cloning your project and updating the Magento administrator account configuration, you can branch for development. As stated earlier, you must create an environment using the `magento-cloud environment:branch ` command or the Project Web Interface for the environment to become _active_. -- For [Starter]({{ site.baseurl }}/cloud/basic-information/starter-develop-deploy-workflow.html#clone-branch), consider creating a branch for `staging`, then create a development branch based on the `staging` branch. +- For [Starter]({{ site.baseurl }}/cloud/architecture/starter-develop-deploy-workflow.html#clone-branch), consider creating a branch for `staging`, then create a development branch based on the `staging` branch. - For [Pro]({{ site.baseurl }}/cloud/architecture/pro-develop-deploy-workflow.html), create development branches based on the Integration environment. {:.procedure} diff --git a/src/cloud/env/environments-start.md b/src/cloud/env/environments-start.md index 07741334ef4..c0e9f48686e 100644 --- a/src/cloud/env/environments-start.md +++ b/src/cloud/env/environments-start.md @@ -9,7 +9,7 @@ functional_areas: - Cloud --- -After you install the Magento Cloud CLI and set up SSH keys for remote access to your Cloud infrastructure, you can use Magento Cloud CLI commands to manage the environments for your {{site.data.var.ece}} projects. For information about the environment architecture, see [Starter architecture]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html) or [Pro architecture]({{ site.baseurl }}/cloud/architecture/pro-architecture.html). +After you install the Magento Cloud CLI and set up SSH keys for remote access to your Cloud infrastructure, you can use Magento Cloud CLI commands to manage the environments for your {{site.data.var.ece}} projects. For information about the environment architecture, see [Starter architecture]({{ site.baseurl }}/cloud/architecture/starter-architecture.html) or [Pro architecture]({{ site.baseurl }}/cloud/architecture/pro-architecture.html). To manage the branches and environments with the Project Web Interface, see [Manage branches with the Project Web Interface]({{ site.baseurl }}/cloud/project/project-webint-branch.html). diff --git a/src/cloud/live/live-sanity-check.md b/src/cloud/live/live-sanity-check.md index 7fc9e2a9cb7..8f4e5bafd67 100644 --- a/src/cloud/live/live-sanity-check.md +++ b/src/cloud/live/live-sanity-check.md @@ -6,7 +6,7 @@ functional_areas: - Testing --- -Before pushing your code to your [Starter]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html) or [Pro]({{ site.baseurl }}/cloud/architecture/pro-architecture.html) Staging and Production environments, you should fully build on your local. Fully testing builds and deploys along with full site testing can reduce the risk of issues or delays for your final site deployment, and expose any issues early for debugging. +Before pushing your code to your [Starter]({{ site.baseurl }}/cloud/architecture/starter-architecture.html) or [Pro]({{ site.baseurl }}/cloud/architecture/pro-architecture.html) Staging and Production environments, you should fully build on your local. Fully testing builds and deploys along with full site testing can reduce the risk of issues or delays for your final site deployment, and expose any issues early for debugging. These tasks walk through: diff --git a/src/cloud/live/stage-prod-live.md b/src/cloud/live/stage-prod-live.md index 5f87d7d3959..155c9d0dc79 100644 --- a/src/cloud/live/stage-prod-live.md +++ b/src/cloud/live/stage-prod-live.md @@ -27,7 +27,7 @@ Now you are ready to develop and deploy: 1. Fully test in the Staging environment including payment gateways, shipping, price rules, various products, and full customer and admin interactions. 1. Finally, deploy to the Production `master` to complete testing, site launch steps, and start selling. -For detailed information of the process, see [Starter Develop and Deploy Workflow]({{ site.baseurl }}/cloud/basic-information/starter-develop-deploy-workflow.html). +For detailed information of the process, see [Starter Develop and Deploy Workflow]({{ site.baseurl }}/cloud/architecture/starter-develop-deploy-workflow.html). ## Pro plan deployment {#pro} diff --git a/src/cloud/onboarding/onboarding-tasks.md b/src/cloud/onboarding/onboarding-tasks.md index b2f2c4cefb4..158fcd00d9f 100644 --- a/src/cloud/onboarding/onboarding-tasks.md +++ b/src/cloud/onboarding/onboarding-tasks.md @@ -119,7 +119,7 @@ Anyone working on your project can subscribe to the {{site.data.var.ece}} status [Manage user access to Cloud projects]: {{ site.baseurl }}/cloud/project/user-admin.html [register for an account]: https://account.magento.com/customer/account/create/ [Shared Access]: https://support.magento.com/hc/en-us/articles/360000913794-Magento-Help-Center-User-Guide#shared-access -[Starter Architecture]: {{ site.baseurl }}/cloud/basic-information/starter-architecture.html +[Starter Architecture]: {{ site.baseurl }}/cloud/architecture/starter-architecture.html [Pro Architecture]: {{ site.baseurl }}/cloud/architecture/pro-architecture.html [Project Web Interface]: {{ site.baseurl }}/cloud/project/projects.html [Status page]: https://status.adobe.com/products/3350 diff --git a/src/cloud/project/project-webint-branch.md b/src/cloud/project/project-webint-branch.md index 530213c7778..12d526c3bc7 100644 --- a/src/cloud/project/project-webint-branch.md +++ b/src/cloud/project/project-webint-branch.md @@ -28,7 +28,7 @@ Complete development of code and added extensions in a branch and, when complete - For Starter, we recommend you create a `staging` branch from Master, then branch from `staging` for development. - For Pro, create a development branch from the Integration environment. -For branching strategies, review [Starter]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html) and [Pro]({{ site.baseurl }}/cloud/basic-information/starter-develop-deploy-workflow.html) architecture overviews. +For branching strategies, review [Starter]({{ site.baseurl }}/cloud/architecture/starter-architecture.html) and [Pro]({{ site.baseurl }}/cloud/architecture/starter-develop-deploy-workflow.html) architecture overviews. Your account supports a limited number of active Git branches and an unlimited number of inactive branches. Manage active and inactive branches by deleting a branch. When deleted, it is deactivated and still listed in the project branches list. You can either activate the branch later or you can [delete it entirely]({{ site.baseurl }}/cloud/env/environments-start.html#env-delete) using the CLI. diff --git a/src/cloud/project/projects.md b/src/cloud/project/projects.md index b0759901976..23e4e2ba29d 100644 --- a/src/cloud/project/projects.md +++ b/src/cloud/project/projects.md @@ -71,7 +71,7 @@ When you first login, a list of projects you have access to displays. As an Acco Click on a project to access branches and more. On the page, you will see a hierarchy of environments named by the Git branch. -For **Starter**, you will see a hierarchy of branches starting from Master (Production). Any branches you create display as children from Master. We recommend creating a Staging branch, then branching from that for your Integration development. For more information, see [Starter architecture]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html). +For **Starter**, you will see a hierarchy of branches starting from Master (Production). Any branches you create display as children from Master. We recommend creating a Staging branch, then branching from that for your Integration development. For more information, see [Starter architecture]({{ site.baseurl }}/cloud/architecture/starter-architecture.html). ![Starter branch hierarchy]({{ site.baseurl }}/common/images/cloud/cloud_project-starter.png) diff --git a/src/cloud/requirements/cloud-requirements.md b/src/cloud/requirements/cloud-requirements.md index fa131f4d334..cf0c256c0bf 100644 --- a/src/cloud/requirements/cloud-requirements.md +++ b/src/cloud/requirements/cloud-requirements.md @@ -75,28 +75,34 @@ For information about configuring the software versions to use in your implement To get started as a developer in a {{site.data.var.ece}} project, you need to set up the following: -* Set up a [local development environment]({{ site.baseurl }}/cloud/before/before-workspace.html). Your local workspace works best as a virtual system (VM or container) with all prerequisites installed and the project `master` Git branch cloned. You'll develop in branches to add modules, extensions, 3rd party integrations, and configurations. We recommend reading over develop and deploy process for your [Starter]({{ site.baseurl }}/cloud/basic-information/starter-develop-deploy-workflow.html) or [Pro]({{ site.baseurl }}/cloud/architecture/pro-develop-deploy-workflow.html) plan. * Get [`repo.magento.com` credentials]({{ site.baseurl }}/guides/v2.3/install-gde/prereq/connect-auth.html) in your account. + * Get a [project invitation]({{ site.baseurl }}/cloud/onboarding/onboarding-tasks.html#users) from the Account Owner or a super user. -We walk you through everything you need to do and know. +* Set up a [local Docker development environment]({{ site.baseurl }}/cloud/docker/docker-development.html). + + Magento Commerce Cloud environments are **Read Only**, including all Starter environments and all Pro Integration, Staging, and Production environments. In a local development environment, you can write and test code prior to pushing it to an Integration environment for further testing, followed by deployment to Staging and Production. + + In the local development environment, you develop in branches to add modules, extensions, third-party integrations, and configurations. We recommend reading over develop and deploy process for your [Starter]({{ site.baseurl }}/cloud/architecture/starter-develop-deploy-workflow.html) or [Pro]({{ site.baseurl }}/cloud/architecture/pro-develop-deploy-workflow.html) plan. ## Magento configurations {#cloud-req-test} Before you test any custom code in your local {{site.data.var.ee}} environment, you must do all of the following: -* For Pro, set the database [`auto_increment_increment` to 3]({{ site.baseurl }}/cloud/before/before-workspace-magento-prereqs.html#database) -* Test with the correct file permissions in [PRODUCTION mode]({{ site.baseurl }}/guides/v2.3/config-guide/bootstrap/magento-modes.html#production-mode) +* For Pro, set the database [`auto_increment_increment` to 3]({{ site.baseurl }}/cloud/docker/docker-containers.html#service-containers) when you generate the Docker configuration file + +* Test with the correct file permissions in [Production mode]({{ site.baseurl }}/cloud/docker/docker-mode-production.html) Correct permissions only allow write access to `var`, `pub/static, pub/media`, and `app/etc` -* Test with minification for HTML, JavaScript, and [CSS](https://glossary.magento.com/css) enabled +* Test with minification for HTML, JavaScript, and CSS enabled. See [Static content deployment strategies]({{ site.baseurl }}/cloud/env/variables-global.html#skip_html_minification) + * Test with [Redis enabled for page cache and session cache]({{ site.baseurl }}/guides/v2.3/config-guide/redis/config-redis.html) -* Install and configure [Fastly]({{ site.baseurl }}/cloud/cdn/configure-fastly.html) + * Test using [Varnish]({{ site.baseurl }}/guides/v2.3/config-guide/varnish/config-varnish.html) for the page [cache](https://glossary.magento.com/cache) - {:.bs-callout-info} -{{ site.data.var.ece }} supports production and maintenance modes only. + {:.bs-callout-info} + {{ site.data.var.ece }} supports Magento production and maintenance modes only. ## Development and testing {#cloud-req-devtest} @@ -104,14 +110,14 @@ For development and testing, we recommend the following: * Test your site in an Integration (development) and Staging (near-production) environment as you complete modifications - You can enable and test individual features, new extensions, and 3rd party integration on different environments prior to merging into a single environment. + You can enable and test individual features, new extensions, and third-party integration on different environments prior to merging into a single environment. * Verify [`magento setup:install`]({{ site.baseurl }}/guides/v2.3/install-gde/install/cli/install-cli-install.html) and [`magento setup:upgrade`]({{ site.baseurl }}/guides/v2.3/comp-mgr/cli/cli-upgrade.html) commands work during the build and deploy process and that any extensions and customizations compile correctly in [Production mode]({{ site.baseurl }}/guides/v2.3/config-guide/bootstrap/magento-modes.html#production-mode) You can set an environment variable or enter a CLI command for this specific mode. * Fully [test your site]({{ site.baseurl }}/cloud/live/stage-prod-test.html) in Staging as a merchant and customer prior to Production deployment -* Verify the Fastly VCL is uploaded to Fastly +* [Set up Fastly]({{ site.baseurl }}/cloud/cdn/configure-fastly.html) and verify that the Fastly VCL is uploaded * Send a ticket with all storefront domains when going live (to be added to the shared SSL (HTTPS) certificate) * For custom deploy hooks in Integration, open a Support ticket to have them added to the Staging and Production deployment process diff --git a/src/common/images/cloud/cloud_pro-branch-architecture.png b/src/common/images/cloud/cloud_pro-branch-architecture.png index fc0f22499e5..4dd1b38d587 100644 Binary files a/src/common/images/cloud/cloud_pro-branch-architecture.png and b/src/common/images/cloud/cloud_pro-branch-architecture.png differ diff --git a/src/guides/v2.3/performance-best-practices/reference-architecture.md b/src/guides/v2.3/performance-best-practices/reference-architecture.md index ac23043c747..81f65057cda 100644 --- a/src/guides/v2.3/performance-best-practices/reference-architecture.md +++ b/src/guides/v2.3/performance-best-practices/reference-architecture.md @@ -10,7 +10,7 @@ functional_areas: This topic describes a generic recommended setup for {{site.data.var.ee}} and {{site.data.var.ce}} instances using plain servers hosted physically in a data center (not virtualized) in which resources are not shared with other users. Your hosting provider, especially if it specializes in Magento high performance hosting, might recommend a different setup that is equally or more effective for your requirements. -For {{site.data.var.ece}} environments, see [Starter architecture]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html). +For {{site.data.var.ece}} environments, see [Starter architecture]({{ site.baseurl }}/cloud/architecture/starter-architecture.html). ## Magento Reference Architecture diagram diff --git a/src/guides/v2.4/performance-best-practices/reference-architecture.md b/src/guides/v2.4/performance-best-practices/reference-architecture.md index 27edaddaba0..8bafd7e29e7 100644 --- a/src/guides/v2.4/performance-best-practices/reference-architecture.md +++ b/src/guides/v2.4/performance-best-practices/reference-architecture.md @@ -10,7 +10,7 @@ functional_areas: This topic describes a generic recommended setup for {{site.data.var.ee}} and {{site.data.var.ce}} instances using plain servers hosted physically in a data center (not virtualized) in which resources are not shared with other users. Your hosting provider, especially if it specializes in Magento high performance hosting, might recommend a different setup that is equally or more effective for your requirements. -For {{site.data.var.ece}} environments, see [Starter architecture]({{ site.baseurl }}/cloud/basic-information/starter-architecture.html). +For {{site.data.var.ece}} environments, see [Starter architecture]({{ site.baseurl }}/cloud/architecture/starter-architecture.html). ## Magento Reference Architecture diagram