Legacy и миграции

5 мин чтения

Parallel Run: зачем некоторое время запускать старую и новую систему одновременно

Самый опасный момент большой миграции — когда новую систему считают готовой только потому, что тесты прошли. Parallel Run позволяет некоторое время сравнивать её с реальной старой системой до окончательного переключения.

Какую проблему мы решаем

Legacy-система часто содержит годы накопленных правил, исключений и поведения, которое нигде полностью не описано. Новая реализация может пройти тесты и всё равно отличаться на редких реальных сценариях.

Если заметить это только после полного переключения, ошибка уже становится бизнес-инцидентом.

Как работает Parallel Run

Старая и новая система некоторое время получают одинаковые или сопоставимые входные данные. Результаты новой реализации сравниваются с текущей системой, но не обязательно сразу влияют на клиента.

Расхождения фиксируются, классифицируются и разбираются. Команда постепенно понимает, где новая система ошибается, а где старая сама содержит историческое поведение, которое больше не нужно переносить.

Это отличается от Blue-Green Deployment: blue-green помогает переключать версии приложения, а Parallel Run прежде всего проверяет эквивалентность поведения во время миграции.

Что получает бизнес

Бизнес снижает риск большого cutover. Решение о переключении принимается не только по тестовой среде, а по данным о том, как новая система ведёт себя на реальных сценариях.

Это особенно важно там, где ошибка миграции может искажать деньги, статусы, отчётность или ключевые операции.

Компания также получает возможность увидеть скрытые legacy-правила до того, как старую систему выключат окончательно.

Что получает команда

Команда получает реальную обратную связь о совместимости: какие сценарии совпадают, где есть расхождения и насколько они критичны.

Можно постепенно улучшать новую систему без постоянного страха, что единственный момент проверки наступит в день переключения.

Что получает клиент

Клиент получает меньше риска внезапной деградации после миграции. Большая часть ошибок обнаруживается до того, как новая система становится единственным источником результата.

Чем мы за это платим

Некоторое время компания оплачивает две системы одновременно. Нужно дублировать обработку, сравнивать результаты, хранить диагностику и следить, чтобы параллельный путь не создавал побочных эффектов.

Особенно сложно с операциями, которые изменяют внешний мир. Нельзя просто дважды отправить платёж, письмо или команду партнёру ради сравнения.

Когда не нужно усложнять

Для маленькой низкорисковой замены Parallel Run может быть избыточным. Иногда достаточны тесты, canary или постепенное включение функции.

Он полезнее всего там, где legacy сложен, правила плохо документированы, а цена неправильного cutover высока.

Что стоит спросить перед решением

В итоге

Parallel Run покупает уверенность не обещаниями новой системы, а сравнением её поведения с реальностью.

Для бизнеса это способ заплатить за короткий период двойной эксплуатации, чтобы не платить намного больше за ошибочный день окончательного переключения.