EnterpriseConfidential — manufacturing sector
Migrating a legacy CRM to the cloud without a big-bang cutover
An on-premise CRM replaced module by module behind a routing layer, cutting page load times from over four seconds to under one.
- Average page load time
- 4.2s → <0.9s
- Freeze windows required
- Zero
- Each step independently reversible
- Module-by-module
The challenge
- A business-critical CRM ran on ageing on-premise hardware with a four-second average page load.
- The sales team could not afford a freeze window, so a single cutover release was never an option.
- Reporting had to stay reconcilable between old and new systems throughout the migration.
The solution
- A strangler-pattern routing layer in front of the legacy application, moving one capability at a time.
- Read-only screens migrated first to prove the pattern at low risk, then write paths once reporting reconciled.
- Continuous data synchronisation rather than a one-shot migration on go-live night.
Implementation
- Established a performance baseline on the legacy system so improvements were measured, not asserted.
- Ran both systems in parallel until the legacy path saw zero traffic for a full reporting cycle.
- Kept every migrated module independently reversible behind the routing layer.
Technology
ASP.NET CoreSQL ServerAzure App ServiceRedisAzure CDN
Outcome
The team moved to a cloud-native platform without a single high-risk cutover night, and now releases changes continuously.
Have a similar problem?
Tell us what you are trying to build and we will come back with an approach — not a sales deck.