Code, data (e.g. website page content stored in a database) and assets (like PDFs) often need to be moved between different environments. For each environment the code is stored in a shared code repository, using a version-control tool named git.
- Pushing code to the shared code repository uses Git software installed on a developer’s computer.
- Deploying code to an environment on a Stack can be done using the Silverstripe Cloud built-in deployment tools.
- You can also use Silverstripe Cloud for retrieving and deploying assets and database content to an environment.
Deploying to production has some special characteristics:
- You choose whether to include copying the database and assets from the User Acceptance Testing (UAT) environment or only the code from UAT to the Production (Prod) environment. You cannot update the production environment from any other place other than the UAT environment.
- A deployment can be started at any time of day by an authorised user via the Silverstripe Cloud dashboard.
- When a Deployment is requested, a message is sent to the Release Manager for approval. Only certain people can approve these requests. See Roles & Responsibilities for a breakdown of who can do what.
- During production deployment, websites running on the stack may go down for 10 to 20 minutes.
- When the deployment begins and completes, the person who requested the deployment will be notified. We will also send a message to the Stack 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.