Before deploying any new changes, it is essential to conduct thorough pre-deployment checks to minimise the risk of issues and ensure a successful deployment. This document outlines the recommended checks to be performed before initiating the deployment process.
Please find the recommended checks for the deployments below:
Platform/Infrastructure level:
- Disk Usage: Check the disk usage and ensure it is not greater than 85% disk space utilisation.
- The Memory and CPU consumption - Assess the memory and CPU consumption to ensure optimal performance.
- The Load average - Monitor the load average to maintain system stability
- Snapshot quota - if the snapshot quota has exceeded the limit, please raise a request to service desk to increase (could be chargeable) it otherwise the deployment might fail if you have ticked the option "Backup database before deploying".
- PHP configuration - The deployments can be failed due to the error :"* Fatal error: Allowed memory size of (value) bytes exhausted (tried to allocate (value) bytes)", in this case the issue might be the PHP memory limit, please refer to this document more information: https://servicedesk.nz.silverstripe.cloud/support/solutions/articles/75000042810-php-configuration
Application level:
- When deploying on the production environment, consider restoring the Production Database snapshot on the UAT environment. Initiate the release deployment on UAT beforehand to verify compatibility with the Production Database. This step helps ensure a seamless deployment and identifies any potential issues before applying changes to the live production environment. Please compare UAT and PROD stack sizes as this can lead to different behaviour of the 2 environments - especially if restoring a Prod DB.
- composer install:Deployment may fail during the composer install phase if a third-party repository is inaccessible or if the environment lacks the necessary permissions. If such issues arise, ensure the repository is available and permissions are configured correctly.
- dev/build: Failures during the dev/build process may result from improper object creation due to existing data issues. Addressing these issues and ensuring proper data setup can help prevent deployment obstacles.
- yarn cloud-build: Failures in yarn cloud-build are often linked to node environment problems. For instance, a dependency might require a higher version than currently available. To mitigate such issues, consider testing cloud-build script with the platform specifications. Please find the available versions here: https://nodejs.org/en.
- One deploy key for multiple repositories: Once the deploy key is added in the primary repo, you will need to go to the 'Privately accessible Deploy keys' section and enable it for the other Repo/Project as the key is already in the list. This would create a similar link between the projects.