Take a look at The Strangler Pattern, coined by Martin Fowler. That approach lays out a technique for replacing each part of complexity into a modern codebase by "strangling" each unit of functionality individually.
It takes time, but the outcome is a fully tested version of the already production-tested software, and there's no need to maintain two versions.
It takes time, but the outcome is a fully tested version of the already production-tested software, and there's no need to maintain two versions.