EMS Change Process ¶
Formal change process for EMS release planning, approval, execution, and rollback. Aligned with EMS 2.0 Change Management Service Epic.
1. Stages ¶
1.1 Create CHG in ServiceNow ¶
Every planned change must start with creating a CHG (Change Request) ticket in ServiceNow. The CHG serves as the single tracking record for all subsequent approval, execution, and post-change review activities.
Steps:
- Log in to ServiceNow and create a Normal Change. For Example
- Fill in the required fields:
- Business service: Select the affected business service
- Data center: Target data center(s) for the change
- Short description: Brief summary of the change
- Description: Detailed description of the change
- Associate the CHG with the corresponding EMS release or feature ticket.
- Submit the CHG into the approval workflow.
Gate: The CHG must receive all required approvals in ServiceNow (CAB or auto-approve, depending on risk level) before execution can begin.
1.2 Planning ¶
Release Lead ensures the following release artifacts are prepared:
| Artifact | Description | Owner |
|---|---|---|
| Release branch | Created from main (e.g., release/2.x.x) | Deploy Engineer |
| Build package | Jenkins build verified | Deploy Engineer |
| Release notes | Updated in docs repo | Feature Owner |
| Helm values diff | Config/version changes documented | Deploy Engineer |
| Test report | BTS environment validation results | QA |
| Rollback procedure | Specific version to revert to & steps | Release Lead |
Planned change window: Agree on deployment window that minimizes customer impact (avoid peak hours; coordinate with Change Management Service calendar).
1.3 Approval ¶
Required approvals before execution:
| Approver | Checks |
|---|---|
| Peer reviewer | Code PR approved; config changes reviewed |
| QA | BTS validation passed |
| Service Tooling Owner | Impact assessment acceptable; change window confirmed |
| Release Lead | All artifacts ready; rollback plan confirmed |
Gate: All approvals must be granted before proceeding to Communication stage.
1.4 Communication ¶
Before deployment:
- Ask EMS/Ask AIOE team room notification — Post to Ask EMS/Ask AIOE with:
- Change summary (what, when, expected duration)
- Expected customer impact (if any)
- Contact person for questions
- Planned start and end time
- Stakeholder notification — Notify downstream service teams if integration points are affected
- Change Management Service — Update CR status to "Approved / Scheduled"
Template for Ask EMS / Ask AIOE notification:
📋 EMS Planned Change Notice
━━━━━━━━━━━━━━━━━━━━━━━━━━
Change: [SNOW Ticket]
Version: [x.x.x]
Window: [Start time] –> [End time] (UTC)
Down Time: [Yes/No]
Contact: [Release Lead name/alias]
Release Features:
- [Release feature list]
━━━━━━━━━━━━━━━━━━━━━━━━━━
1.5 Execution ¶
Follow the EMS Rollout Guide for technical steps:
- Verify release branch and build package are ready
- Update helm values (version, config, chart, secrets as needed)
- Deploy to BTS first — validate before production
- Deploy to Production (wjfk → wdfw04, one DC at a time)
- Monitor deployment via Argo pipeline status
Special path for single-sided validation / primary-only feature testing:
Use this path when a feature cannot be fully validated in BTS and requires running on only one production side first, or when validation must occur on the current primary site.
- Deploy to DFW first
- Validate the feature on DFW while JFK remains on the previous version
- If the feature can only be validated on the primary site, perform a controlled failover to move primary traffic to the upgraded side
- Complete primary-site validation and confirm success criteria are met
- Deploy the same version to JFK only after DFW validation succeeds
- Perform a controlled failback if the standard primary topology needs to be restored
Gate for continuing past DFW: - Functional validation on DFW completed - No material customer impact observed - Failover validation completed if the feature requires primary-site testing - Release Lead and on-call agree production rollout can continue to JFK
During execution: - Deploy Engineer monitors deployment logs and health dashboards - On-call Engineer is available for immediate response - If deployment fails or health degrades → proceed to Rollback
1.6 Validation ¶
Post-deployment health checks (must all pass within 15 minutes of deploy):
| Check | Criteria | Tool |
|---|---|---|
| Pod health | All pods Running, no CrashLoopBackOff | Kubernetes dashboard |
| API health | /health endpoint returns 200 | Self-monitor |
| Alert processing | Events flowing through pipeline; no processing backlog | Grafana / App metrics |
| Error rate | Error rate not elevated vs. pre-deploy baseline | Observability dashboard |
| Customer-facing | No new customer-reported issues in Ask EMS / Ask AIOE | Team room |
| EMS Status Check | Run ops-ems-status skill to verify overall EMS health | AI Agent Skill |
Success criteria for lower customer impact: - Zero unplanned customer-facing alerts generated by the change itself - No increase in alert noise during change window - No escalation triggered by the planned change - Rollback (if needed) completed within defined SLA
Additional validation expectation for single-sided releases: - The non-upgraded side must remain stable while the first side is under test - Failover and failback must both be explicitly validated when used as part of the test plan - The second-side deployment must not start until the first-side validation record is captured in the change ticket or Ask EMS / Ask AIOE release thread
1.7 Rollback ¶
Trigger conditions (any one is sufficient): - Health checks fail after 15 minutes - Error rate exceeds 2× pre-deploy baseline - Customer-facing impact confirmed - Deploy Engineer / On-call judgment call
Rollback steps: 1. Revert helm values to previous version 2. Redeploy via Argo pipeline with previous package version 3. Confirm health checks pass with previous version 4. Notify Ask EMS / Ask AIOE team room: rollback performed, reason, next steps
Rollback SLA: Complete within 30 minutes of trigger decision.
1.8 Post-Change Review ¶
Within 2 business days of change completion:
- Release Lead documents:
- Was the change successful? (Yes / Partial / Rolled back)
- Any unexpected issues encountered
- Actual customer impact (if any)
- Time from start to full validation
- Lessons learned — What to improve for next release
- Update Change Management Service — Close CR with outcome status
- Ask EMS / Ask AIOE closure notification — Confirm change complete in team room