October 2025 -
February 2026
The Problem
The FEMA ELA platform's primary data store ran on MySQL 5.7, which was approaching end-of-life and lacked the security, performance, and JSON/CTE features the .NET application increasingly relied on. On a federal platform supporting emergency lodging during disaster events, the database also had to demonstrate verified high-availability failover — a documented, repeatable test, not a hope. Upgrading in place risked breaking EF Core data access, stored procedures, and existing query plans, and a botched failover during an active disaster response would have been a serious incident.
The Solution
Owned the MySQL 5.7 → 8.0 upgrade plan end-to-end and ran the HA failover validation exercise alongside it. Authored the TDD covering compatibility analysis, upgrade path, rollback strategy, and the failover test protocol. Coordinated with Corpay infrastructure, the FEMA stakeholders, and the dev team to schedule the cutover, then executed and signed off on the failover drill against the upgraded cluster.
Implementation
Inventoried the ASP.NET Core / EF Core data access layer and stored procedures for MySQL 8.0 breaking changes — reserved words, default authentication plugin (caching_sha2_password), sql_mode differences, and deprecated syntax. Updated MySql.EntityFrameworkCore / Pomelo connector versions and ran the full xUnit suite plus integration tests against a staged 8.0 instance. Used mysql-shell upgrade checker to surface schema-level issues and fixed them ahead of cutover. Provisioned Azure Blob Storage (LOD-54013) for the database backup pipeline and verified point-in-time restore. For HA, validated primary/replica failover by forcing a controlled primary outage, measuring replica promotion time, application reconnection behavior under the .NET connection pool, and data consistency post-failover. Documented results, RTO/RPO, and runbook steps for the on-call team.
Technologies
MySQL 5.7
MySQL 8.0
MySQL Shell
ASP.NET Core
.NET 9
EF Core
Pomelo.EntityFrameworkCore.MySql
Azure Blob Storage
Azure DevOps
xUnit
PowerShell
GitLab CI/CD
Impact & Results
Brought the ELA platform onto a supported MySQL version with stronger security defaults and modern SQL features, eliminating EOL risk on a federal contract. The HA failover drill produced a signed-off, repeatable runbook — meaning the on-call team had verified evidence of failover behavior rather than a theoretical design. EF Core data access continued working without regressions across the full integration test suite, and the Azure Blob backup pipeline gave the platform a clean DR posture going into disaster season.
MySQL upgraded from 5.7 (EOL-track) to 8.0 (supported) with zero data loss
Full EF Core / xUnit integration suite passing post-upgrade
HA failover validated end-to-end with documented replica promotion time
Azure Blob backup pipeline provisioned with verified point-in-time restore
Runbook delivered to on-call team — failover is now a tested procedure, not a hope
Zero rollbacks during cutover
This entry is public
0
Likes
0
Vouches
Vouches (0)
Vouches verify the authenticity of this work. Each voucher explains their connection to the work.
Loading vouches...
Delete Work Entry?
Are you sure you want to delete ""?
This action cannot be undone
The entry and all associated data will be permanently deleted.
Comments
Sign in to add comments