Code, data (e.g. website page content stored in a database) and assets (like PDFs) often need to be moved between different environments. ‘Environments’ are copies of a website used for different purposes, such as user-acceptance testing, and public production. In addition, code is stored in a shared code repository (external link), using a version-control tool named git.
Pushing code to the shared code repository: uses git software installed on a developer’s computer
Retrieving and deploying assets and database content to production: same as UAT, but only for privileged users such as Deployment Managers and Instance Managers (see the data transfer tutorial). Technical Staff will need to contact these privileged users directly.
Deploying to production has some special characteristics:
You choose whether to include copying database and assets from the UAT, or only the code from UAT. You cannot update the production environment from any other place other than the UAT environment.
When a Deployment is requested, An Email & SMS message is sent to the Deployment Manager for approval. If this requests are not answered within a predetermined time frame, the request is escalated to the next Role with the Email & SMS messages being re-sent to them. Only certain people can approve these requests (via SMS and/or Deploynaut (external link)). See Roles & Responsilbities.
During production deployment, websites running on the instance may go down for 10 to 20 minutes.
When the deployment begins and completes, we email the person who requested the deployment. We will also send an Email and/or SMS message the Instance Manager (or the Deployment Manager, where nominated) if the deployment fails.
We check that the UAT environment has a functioning homepage as a basic check before starting the deployment.
We will reverse the process if we find the deployment has failed. We can undo the deployment if you subsequently ask us to, however you will lose data since the point we made the deployment.