Smooth deployment, or Zero Downtime Deployments (ZDD), applies database changes without taking the site offline or the use of a Maintenance page. This topic shows how to make a smooth deployment.
The deployment engine creates a cloned environment that includes a copy of the web app code and the database. This cloned environment manages external traffic for the duration of the deployment so that you can update the original database as needed without affecting the external-facing websites.
You can run the external website in the following modes:
- ReadOnly mode (recommended)
The cloned site runs in ReadOnly-mode so no new changes are applied to the temporarily cloned copy. No data loss occurs during the deployment.
- ReadWrite mode (data loss likely)
The cloned site runs in ReadWrite-mode and allows new data to be written to it.
Important: Any data written to the cloned database while the deployment is running will be lost at the end of the deployment. The ReadWrite mode increases compatibility with more features and add-ons, but should be used only when data loss is acceptable for the site. (You should make editors aware that no updates should be made to the site during this phase of the deployment.)
This diagram visualizes how the setup works during a deployment:
Failed deployment recovery options
You have the following recovery options if changes do not go as planned:
If you can correct the problem by another code deployment, you can do this while the cloned environment still manages traffic to avoid the time it takes to set up another clone. When the new code version is deployed, you can validate the results before the deployment is completed.
- Roll back code and database
You can automatically roll back the database to a safe time (before changes were applied from the new deployment). This mode also rolls back to the previous version of the web app code. You can validate the code and database before the previous version is enabled to receive traffic.
- Roll back code only
If only the code needs to be rolled back, you can keep the database as-is. You can validate the code and database before the previous version is enabled to receive traffic.
Last updated: Apr 27, 2020