- Use CodeDeploy with blue-green or canary deployment for Lambda aliases and ECS services
- Implement health checks at every layer: ALB target group, ECS container, Route 53 health checks
- Use CloudFormation change sets or CDK diff to preview all changes before deploying to production
- Automate rollback: configure CloudWatch alarms that trigger automatic CodeDeploy rollback on errors
- Separate infrastructure deployments from application deployments for independent release cycles
- Use CodeDeploy with deployment configurations: Canary10Percent5Minutes, Linear10PercentEvery1Minute, or AllAtOnce
- Implement health checks at every layer: ALB target groups, ECS container health, Route 53 health checks
- Use CloudFormation change sets (or cdk diff) to review infrastructure changes before production deploys
- Configure CloudWatch alarms (error rate, latency, 5xx count) to trigger automatic rollback on deployment failure
- Separate infrastructure and application deployments for independent release cycles and blast radius reduction
- Use feature flags (LaunchDarkly, AppConfig) for decoupling deploy from release — deploy dark, enable incrementally
- Implement deployment gates: require automated tests, security scans, and manual approval before production
- Use ECS with rolling updates (minimumHealthyPercent: 100, maximumPercent: 200) for zero-downtime deployments
- For Lambda, use aliases with weighted routing for gradual traffic shifting (canary deployments)
- Maintain deployment runbooks: document rollback procedures, escalation paths, and monitoring dashboards