Production Deployment Strategy

Recording from 7/14 call can accessed here.

Product review can be done in QA environment. Saves development time, we don’t want to make staging unstable by pushing out frequent changes, and doesn’t align with our branching strategy for release preparation.

Stage deployment

Part of the release process, merge code changes to “stable” branch whenever we are ready for release. We could do bi-weekly or anything that stakeholders want (when we make Prod customer facing).

In the interim till we have a customer facing Prod, we can do a merge when the leads think they have an non-breaking addition. We can use the Scrum of scrums or some shared meeting to decide. Managers can check with the leads around end of sprint to see when can we release something non-breaking (because the codebase itself is lot unstable and new features tend to be incomplete at the end of sprint/don’t align with sprint schedule). There might be inconsistencies/breakage in stable branches during this time, but the developer who made the change can fix it as the first priority.

Automation for Stage deployment- It is in place, there is a manual approval process for the PR, once the stable merge is complete, it triggers an automated deployment. Someone needs to approve the deployment in BitBucket.

Testing Plan for Staging/Production

Once a release cutoff is decided to be merged into stable branch, deploy the stable branch to staging, and then kick off automated front end/end-user tests in staging (should be part of the pipeline, @Surya Bhatt (Deactivated) to check if they are not). The pipeline needs to be adjusted to clone the branch and run the tests.

Front end features/stability should be the deciding factor to merge to the stable branch. Front end can be release 5-6 mins before the BE to ensure they finish deployment around the same time.

Production Deployment

We can tag the stable branch with the release date after the release into Production.

Automation for Production deployment- It is in place, there is a manual approval process for the PR, once the stable merge is complete, it triggers an automated deployment. Someone needs to approve the deployment in BitBucket.