Environment Management | Dev to Production
Manage dev, staging, and production environments consistently. GitScrum tracks feature deployment status and coordinates environment promotions.
8 min read
Consistent environments prevent surprises. GitScrum helps track which features are deployed where and coordinate environment promotions.
Environment Strategy
Environment Types
ENVIRONMENT OVERVIEW:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DEVELOPMENT (DEV): β
β ββββββββββββββββββ β
β β’ Active feature development β
β β’ Frequent deployments (multiple/day) β
β β’ May be unstable β
β β’ Developers have full access β
β β’ Sample/test data β
β β
β STAGING: β
β ββββββββ β
β β’ Production-like environment β
β β’ Pre-production testing β
β β’ Same configuration as production β
β β’ Realistic (but not real) data β
β β’ Deploy before production β
β β
β PRODUCTION (PROD): β
β ββββββββββββββββββ β
β β’ Live user traffic β
β β’ Highest stability requirements β
β β’ Restricted access β
β β’ Real data β
β β’ Monitoring and alerting β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PROMOTION FLOW: β
β β
β DEV βββββββ STAGING βββββββ PRODUCTION β
β β β β β
β β β β β
β βΌ βΌ βΌ β
β Unit tests Integration Smoke tests β
β Dev testing QA testing Monitoring β
β Stakeholder β
β approval β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Extended Environments
ADDITIONAL ENVIRONMENTS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β OPTIONAL ENVIRONMENTS: β
β β
β LOCAL: β
β Developer's machine β
β Quick iteration β
β May not match production exactly β
β β
β QA: β
β Dedicated QA testing β
β Stable for test execution β
β Test data management β
β β
β UAT (User Acceptance Testing): β
β Stakeholder/customer testing β
β Business validation β
β Before production sign-off β
β β
β PERFORMANCE/LOAD: β
β Performance testing β
β Scaled infrastructure β
β Realistic load simulation β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ENVIRONMENT MATRIX: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β ENV PURPOSE DATA ACCESS ββ
β β βββ βββββββ ββββ ββββββ ββ
β β Local Development Mock/Sample Developer ββ
β β Dev Integration Test data Team ββ
β β QA Testing Test data QA + Team ββ
β β UAT Acceptance Sanitized Stakeholders ββ
β β Staging Pre-prod Realistic Limited ββ
β β Prod Live Real Very limited ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β MORE ENVIRONMENTS = More overhead β
β Balance: Enough for process, not too many to manage β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Environment Parity
Keeping Environments Consistent
ENVIRONMENT PARITY:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β THE PROBLEM: β
β ββββββββββββ β
β "Works on staging, breaks in production" β
β β
β CAUSES: β
β β’ Different OS versions β
β β’ Different dependency versions β
β β’ Different configuration β
β β’ Different data characteristics β
β β’ Different network setup β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β SOLUTIONS: β
β β
β CONTAINERIZATION: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Same Docker image across all environments ββ
β β ββ
β β ββββββββββββ ββββββββββββ ββββββββββββ ββ
β β β DEV β β STAGING β β PROD β ββ
β β β β β β β β ββ
β β β image: β β image: β β image: β ββ
β β β v1.2.3 β β v1.2.3 β β v1.2.3 β ββ
β β β β β β β β ββ
β β ββββββββββββ ββββββββββββ ββββββββββββ ββ
β β β β β ββ
β β ββββββββββββββββ΄βββββββββββββββ ββ
β β Same image, same behavior ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β INFRASTRUCTURE AS CODE: β
β β’ Terraform, Pulumi for infrastructure β
β β’ Kubernetes manifests for deployment β
β β’ Ansible for configuration β
β β’ Version controlled, reviewable β
β β
β CONFIGURATION MANAGEMENT: β
β β’ Environment variables for differences β
β β’ Secrets management (Vault, AWS Secrets) β
β β’ Feature flags for behavior β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Deployment Tracking
Visibility
ENVIRONMENT STATUS TRACKING:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DEPLOYMENT DASHBOARD: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β ENVIRONMENT STATUS ββ
β β ββ
β β ENV VERSION DEPLOYED STATUS FEATURES ββ
β β βββ βββββββ ββββββββ ββββββ ββββββββ ββ
β β Dev v2.4.1 10 min ago π’ 15 new ββ
β β QA v2.4.0 2 hours ago π’ 12 new ββ
β β Staging v2.4.0 1 day ago π’ 12 new ββ
β β Prod v2.3.0 1 week ago π’ baseline ββ
β β ββ
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββ ββ
β β ββ
β β PENDING PROMOTIONS: ββ
β β β’ v2.4.0: Staging β Prod (scheduled: Jan 27) ββ
β β β’ v2.4.1: QA β Staging (waiting QA sign-off) ββ
β β ββ
β β RECENT DEPLOYMENTS: ββ
β β β’ v2.4.1 β Dev by @alex (10 min ago) ββ
β β β’ v2.4.0 β Staging by @jordan (1 day ago) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β WHAT'S WHERE: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β STORY-456: New checkout flow ββ
β β ββ
β β Dev: β
Deployed (v2.4.1) ββ
β β QA: β
Deployed (v2.4.0) ββ
β β Staging: β
Deployed (v2.4.0) ββ
β β Prod: β³ Pending (in v2.4.0, scheduled Jan 27) ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Promotion Process
Environment Gates
PROMOTION WORKFLOW:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β DEV β QA PROMOTION: β
β βββββββββββββββββββ β
β β All unit tests passing β
β β Code review approved β
β β Build successful β
β β Feature complete for testing β
β β
β QA β STAGING PROMOTION: β
β βββββββββββββββββββββββ β
β β QA testing complete β
β β No critical bugs β
β β Regression tests passing β
β β QA sign-off β
β β
β STAGING β PRODUCTION: β
β βββββββββββββββββββββ β
β β Staging verification complete β
β β Stakeholder approval (if needed) β
β β Release notes prepared β
β β Rollback plan ready β
β β Deployment window confirmed β
β β On-call team notified β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PROMOTION TASK: β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β RELEASE-024: Promote v2.4.0 to Production ββ
β β ββ
β β VERSION: v2.4.0 ββ
β β CURRENT: Staging ββ
β β TARGET: Production ββ
β β SCHEDULED: Jan 27, 2pm UTC ββ
β β ββ
β β CHECKLIST: ββ
β β β Staging tests passed ββ
β β β Release notes published ββ
β β β Rollback plan documented ββ
β β β Deploy to production ββ
β β β Smoke tests ββ
β β β Monitor for 1 hour ββ
β β β Mark release complete ββ
β β ββ
β β OWNER: @jordan ββ
β β APPROVERS: @tech-lead, @product-owner ββ
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Environment Troubleshooting
Common Issues
ENVIRONMENT PROBLEMS:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β PROBLEM: "Works locally, fails in dev" β
β βββββββββββββββββββββββββββββββββββββ β
β CAUSES: β
β β’ Missing environment variables β
β β’ Different dependency versions β
β β’ Local-only services not available β
β β
β FIX: β
β β’ Use Docker for local development β
β β’ Document all environment variables β
β β’ Lock dependency versions β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PROBLEM: "Staging passed, production failed" β
β ββββββββββββββββββββββββββββββββββββββββββββ β
β CAUSES: β
β β’ Data volume differences β
β β’ Third-party service behavior β
β β’ Configuration drift β
β β
β FIX: β
β β’ Mirror production traffic to staging β
β β’ Infrastructure as code (no manual changes) β
β β’ Regular environment audits β
β β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β PROBLEM: "Environment is slow/broken" β
β βββββββββββββββββββββββββββββββββββββ β
β CAUSES: β
β β’ Resource exhaustion β
β β’ Bad deployment β
β β’ Data corruption β
β β
β FIX: β
β β’ Monitoring and alerting β
β β’ Environment refresh procedures β
β β’ Quick restore from known-good state β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ