Skip to content

Development

# 🚀 Deployments

This document outlines the deployment process, environments, and best practices followed at Darukaa to ensure smooth, reliable, and secure releases.


Deployment Environments

Environment URL Purpose
Production https://app.darukaa.com Live environment for end users
Staging https://staging.darukaa.com Pre-production environment for final testing and QA
API Prod https://api.darukaa.com Production API endpoints
API Staging https://api.staging.darukaa.com Staging API for integration testing

Deployment Workflow

  • All deployments are triggered automatically using CI/CD pipelines on Google Cloud Platform (GCP).
  • Pushes and merges to the main branch trigger builds and deployments to Production.
  • Pushes and merges to the develop or feature branches deploy to Staging environments.
  • Deployment pipelines include:
  • Running automated tests (unit, integration, e2e).
  • Linting and code quality checks.
  • Building frontend and backend artifacts.
  • Deploying to respective GCP services (App Engine, Cloud Run, Cloud Functions).

Branching Strategy

  • Use feature branches for development: feature/<feature-name>
  • Bug fixes on branches: bugfix/<issue-id>
  • Use pull requests (PRs) to merge changes to develop or main branches.
  • Only approved PRs passing CI checks can be merged.

Database & Data Handling

  • We currently use a single-instance database hosted on GCP.
  • Be mindful when altering database schema or making migrations — coordinate with the backend team.
  • Avoid any destructive operations without proper backups and approval.

Cloud Functions Deployment

  • Cloud functions are deployed separately and automatically via CI/CD.
  • Functions handle specific tasks and are triggered by events or schedules.
  • Ensure that function code is isolated and includes necessary logging and monitoring.

Rollbacks and Incident Management

  • Rollbacks can be triggered by redeploying the last known good version via the CI/CD pipeline.
  • In case of incidents, notify the team immediately via Slack and start troubleshooting.
  • Document post-mortems for significant incidents.

Best Practices

  • Always verify deployments on staging before production release.
  • Monitor deployment logs and health dashboards after each release.
  • Communicate releases and changes in sprint demos or team channels.
  • Keep deployment scripts and infrastructure-as-code up to date in repos.

If you have questions or want to improve the deployment process, please open an issue in the internal documentation repo.