๐ŸคนDeployments

Vetspire Engineers typically use a feature-branch development model. When branches are completed and reviewed, they get merged into Vetspire's master branch.

Once, at the start of every sprint (every two weeks), we deploy any completed changes on master into staging, and any work that has passed QA on staging into production.

Deployments are usually carried out by Chris Bailey, or Tomasz Tomczyk in the UK engineering team due to timezone reasons, though nothing is preventing any engineer from deploying changes as all that strictly needs to happen is code getting merged into Vetspire's production branch. Vetspire aims to deploy outside of business hours to mitigate any possible issues for the majority of our users in the US.

Deployment Timelines

There is a fortnightly Teams meeting to block out time for deployments, but generally deployments will begin at approximately 9:00 GMT/BST and must be completed by approximately 12:30 GMT/BST.

Any deployment which is at risk of not completing before 12:30 GMT/BST should be rolled back. Vetspire Engineering would much prefer rescheduling our deployments than affect real end users.

It is important to note that despite being out of business hours, Vetspire does still have users online at all hours of the day, so depending on the severity of any issues found, rolling back / deferring deployment may still be a good idea.

Deployment Process

Prior to a deployment, a copy of Vetspire's current Deployment Plan is typically made by Phillip Brewer on Confluence.

Due to Thrive's CAB process, we need to keep these deployment plans around to review and learn from should anything go wrong! Please ensure a deployment plan exists prior to a deployment. If not, feel free to clone the above linked deployment plan and rename accordingly.

Ideally, deployments are done on a call with multiple engineers. Such calls generally happen as Slack Huddles in the #dev channel. Note that this step isn't absolutely neccessary, but deployments are stressful and very manual despite how many times engineers may have deployed, so help is often nice to have!

Pre-Deployment

Deployment Proper

Post-Deployment

Disaster Recovery Process

Deployment failed causing pods to be missing or down

Database is locked and users cannot access portions of the site

Last updated