Deployment Documentation
Source Control
We use GitHub for source control to manage the versioning and history of our codebase.
Branching Strategy
Staging Branch
We have a staging branch that serves as the primary branch for testing and pre-production environments. This branch is connected to our Continuous Integration/Continuous Deployment (CI/CD) pipeline. Updates pushed to the staging branch trigger an automatic deployment to our staging environment for testing purposes.
- Staging Environment URL: http://staging.app.yourmentra.com
Main Branch (Live)
The main branch represents the live production environment. Similar to the staging branch, it is also connected to our CI/CD pipeline. Commits and updates to the main branch trigger an automatic deployment to our live production environment.
- Live Production Environment URL: http://app.yourmentra.com
Continuous Integration/Continuous Deployment (CI/CD) Pipeline
We leverage a CI/CD pipeline to automate the deployment process, ensuring efficiency and consistency across different environments.
-
Staging Environment: Changes in the staging branch trigger automatic deployments to the staging environment for testing and quality assurance.
-
Live Production Environment: Commits and updates to the main branch automatically trigger deployments to the live production environment, providing a seamless and reliable deployment process.
Deployment Workflow
Our deployment workflow is as follows:
-
Developers work on feature branches and make pull requests to the staging branch for testing.
-
Code reviews are performed for each pull request before updates are merged into the staging branch.
-
Automated testing is conducted as part of the CI/CD process to ensure code quality and stability.
-
Once changes are approved on the staging branch, they are merged into the main branch.
-
Merging into the main branch triggers an automatic deployment to the live production environment.
Deployment Notifications
For transparency and communication, deployment notifications are provided to relevant stakeholders. This includes information on successful deployments, as well as any potential issues or rollbacks.
Rollback Procedures
In case of unexpected issues or errors post-deployment, we have documented rollback procedures to quickly revert to a stable state.
Additional Notes
-
Code Reviews: All changes undergo thorough code reviews before being merged into staging or main branches.
-
Environment Configuration: Ensure that environment-specific configurations (e.g., API keys, secrets) are appropriately set for each environment.
-
Testing Environments: Developers have access to testing environments to validate changes before merging into staging.
-
Documentation: Keep deployment documentation updated with any changes to the deployment process or environment configurations.
-
Security Measures: Implement and regularly update security measures such as encryption, firewalls, and access controls.
-
User Acceptance Testing (UAT): Perform UAT in staging environments to validate that new features meet user expectations before deployment to the live environment.
-
Infrastructure Scaling: Monitor and scale infrastructure resources as needed to accommodate increasing user traffic.
Feel free to refer to our CI/CD configuration files in the repository for more details on the deployment process.