A deployment is the process of updating all websites in a Site Factory subscription with updates to its code or configuration. A deployment can contain customer-initiated codebase updates to the Site Factory platform that are created by Acquia’s engineering team, or both.
After you determine what your deployment will contain, you can perform the deployment.
If, during an ongoing deployment process, you determine that the deployment contains one or more errors, Site Factory also supports the ability to implement a hotfix for the deployment.
Acquia platform updates
Although you are responsible for the feature branches and code updates that you send to your websites to add features and resolve issues, Acquia will maintain the Site Factory platform and the Site Factory Connector module that websites use to connect to Site Factory. Acquia will notify Site Factory subscribers regarding upcoming platform updates, and details about these updates are available in the release notes for Site Factory.
Even though platform fixes should not directly affect your code’s feature branches, you will periodically have to integrate some Acquia-developed changes into your feature branches or website code.
To verify your platform version number or to determine if maintenance has completed for your subscription, see Determining your platform version.
To ensure that websites can connect to Site Factory and the Acquia hosting platform, Acquia requires that websites have the Site Factory Connector module installed and enabled. Certain platform changes to Site Factory can require changes to the Site Factory Connector module to ensure that it continues to allow access or to make new or improved features available. If a new version of the module is released, the release notes page for Site Factory will note that you should obtain and install an updated version of this module.
Updating your feature branches
After Acquia releases changes, if you have existing feature branches, be sure to incorporate any Acquia-created updates into your branches using your preferred Git workflow method (either by merging or rebasing).
Note
If you use the branch-per-feature method, when you use the instructions from Preparing for the code deployment to merge the updated Gardens distribution with your code, replace the instruction in step 3 with the following:
git merge origin/distro --no-ff
We encourage you to update your branches as soon as possible after we make a release to ensure that you have access to any new features and security fixes contained in each update.
Performing a deployment
Before performing a deployment, you should familiarize yourself with an overview of the Site Factory deployment process to understand how it updates your hosted websites. For the specific actions you need to take when deploying, see the following pages:
Updating with the acsf-init command to prepare your codebase for use on Site Factory
Performing a production deployment for the commands needed to perform a manual deployment
If your platform uses path-based domains, the known issues for path-based domains during deployments
Strategies for resolving codebase update errors
If you identify problems during the deployment process, you can hotfix a deployment in progress.
Deployment failure notification
If a release fails, Site Factory sends an email to the person who initiated the release, as described in the following example:
Site Factory encountered an error while updating your sites.
The following server groups failed to update:
[hostname].[environment]
The requested VCS path [tag / branch name] failed the acsf-init validation.
Please run the acsf-init command.
For more information about the errors that were encountered, see your
Factory's logs.
For information regarding troubleshooting a failed release, see Task logs in Site Factory.
Hotfixing a deployment
The Site Factory continuous integration workflow is based on the concept of failing forward. If an error in code deployed to your production environment causes one or more site update failures, you will need to modify the code to resolve the error, and then redeploy that code to all of your websites to get them up and running again.
The best practice is to test your codebase changes across a representative set of websites in your staging environment before deploying those changes to your production environment. If there are code issues with a deployment directly to your production environment, your websites can become unavailable to your website visitors for an extended period of time.
For information about pausing a deployment to apply a hotfix, see Hotfixing an Site Factory deployment.