Как перейти со старой системы на новую без остановки работы

 

 

 

 

 

МИГРАЦИЯ // DATA_MIGRATION_CONTOUR

Замена корпоративной системы редко сводится к простой последовательности:

выгрузили базу → загрузили в новую → переключили пользователей.

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

Поэтому главная проблема миграции — не только перенести данные.

Нужно сделать так, чтобы в момент перехода:

данные не потерялись;
новые и изменённые записи попали в новую систему;
пользователи понимали, где работать;
интеграции продолжили функционировать;
остатки и документы сошлись;
ошибки можно было обнаружить;
при необходимости существовал контролируемый сценарий возврата.
// ОБЕСПЕЧЕНИЕ_НЕПРЕРЫВНОСТИ //

И всё это желательно сделать без остановки бизнеса.

 

 

СИНХРОНИЗАЦИЯ // DATA_SNAPSHOT_CONFLICT

Почему нельзя просто перенести базу целиком

Представим обычную ситуацию.

Старую систему необходимо заменить на новую.

В понедельник утром была выполнена выгрузка данных:

СТАРАЯ СИСТЕМА
10:00
1 000 000 записей
        │
        ▼
     МИГРАЦИЯ
        │
        ▼
НОВАЯ СИСТЕМА
10:00
1 000 000 записей

На первый взгляд всё хорошо.

Но старая система продолжает работать.

К 16:00 в ней появились:

новые заказы;

новые клиенты;

изменённые цены;

проведённые документы;

новые остатки;

изменения статусов.

Теперь данные выглядят так:

10:0016:00СНИМОКИЗМЕНЕНИЯНОВАЯ СИСТЕМАСТАРАЯ СИСТЕМА

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

Поэтому миграция — это не одно копирование.

// ПРОТОКОЛ_ПЕРЕХОДА //

Это управляемый процесс перехода между двумя работающими контурами.

 

 

ПЛАНИРОВАНИЕ // RESILIENT_MIGRATION_TIMELINE

Правильная миграция начинается задолго до переключения

Безопасный переход обычно строится примерно так:

1. АНАЛИЗ СТАРОЙСИСТЕМЫ2. СОПОСТАВЛЕНИЕСТРУКТУР И ДАННЫХ3. ТЕСТОВАЯМИГРАЦИЯ4. ПРОВЕРКАРЕЗУЛЬТАТА5. ПАРАЛЛЕЛЬНАЯРАБОТА6. ФИНАЛЬНАЯСИНХРОНИЗАЦИЯ7. ПЕРЕКЛЮЧЕНИЕ

Не каждый проект требует одинакового количества этапов.

// ПОДГОТОВКА_КОНТУРА //

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

 

 

АНАЛИЗ_БАЗЫ // LEGACY_SYSTEM_ANALYSIS

Сначала нужно понять, что именно находится в старой системе

Одна из самых опасных ошибок — считать, что структура старой системы очевидна.

В старой базе могут находиться:

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

Поэтому перед миграцией необходимо определить:

СТАРАЯ СИСТЕМА
│
├── Клиенты
├── Контрагенты
├── Товары
├── Заказы
├── Документы
├── Остатки
├── Пользователи
├── Справочники
├── История
└── Технические данные

И для каждой категории ответить:

переносим, преобразуем, архивируем или не переносим?
// АНАЛИЗ_РИСКОВ_ИЗБЫТОЧНОСТИ //

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

 

 

МАППИНГ_СТРУКТУР // DATA_STRUCTURE_MAPPING

Структуры старой и новой системы почти никогда не совпадают

Это один из центральных моментов миграции.

Например, в старой системе:

[ LEGACY_SCHEMA ]
CLIENT
├── ID
├── NAME
├── PHONE
└── ADDRESS
[ TARGET_SCHEMA ]
CUSTOMER
├── CUSTOMER_ID
├── LEGAL_NAME
├── CONTACTS
│    ├── PHONE
│    └── EMAIL
└── ADDRESSES

Нельзя просто сказать:

«Перенесём таблицу клиентов».

Нужно определить соответствие:

OLD.CLIENT.ID
    ↓
NEW.CUSTOMER.CUSTOMER_ID
OLD.CLIENT.NAME
    ↓
NEW.CUSTOMER.LEGAL_NAME
OLD.CLIENT.PHONE
    ↓
NEW.CUSTOMER.CONTACTS.PHONE
// ОБРАБОТКА_КОЛЛИЗИЙ_КОНТРАКТА //

И отдельно определить, что делать с полями, для которых нет прямого соответствия.

 

 

ТРАНСФОРМАЦИЯ // DATA_TRANSFORMATION_LOGIC

Миграция — это преобразование, а не копирование

Очень часто данные приходится менять во время переноса.

Например:

[ СТАРАЯ СИСТЕМА ]
Статус = 1
Статус = 2
Статус = 3
    ↓
[ В новой системе ]
NEW
NEW
IN_PROGRESS
COMPLETED
Старая система
"ООО Ромашка"
    ↓ нормализация
Новая система
Наименование = ООО «Ромашка»
Тип = Юридическое лицо

Поэтому перед миграцией формируется правило преобразования данных.

Для каждого важного объекта должно быть понятно:

откуда он берётся → как преобразуется → куда попадает → как проверяется.

 

 

ИДЕНТИФИКАЦИЯ // IDENTIFIER_MIGRATION_CONFLICT

Особенно опасны идентификаторы

Если старая система присвоила клиенту ID 15273, это ещё не означает, что в новой системе он должен иметь тот же ID.

При миграции может возникнуть таблица соответствий:

СТАРАЯ СИСТЕМА
 
НОВАЯ СИСТЕМА
15273
→
84721
15274
→
84722
15275
→
84723

Такие соответствия особенно важны, если другие системы продолжают ссылаться на старые идентификаторы.

// РИСК_РАЗРЫВА_СВЯЗЕЙ //

Иначе можно получить ситуацию, когда заказ существует, клиент существует, но связь между ними потеряна.

 

 

ТЕСТИРОВАНИЕ // TEST_MIGRATION_CONTOUR

Первая миграция должна быть тестовой

Не стоит впервые выполнять настоящий перенос непосредственно перед запуском.

Сначала выполняется тестовая миграция.

СТАРАЯ СИСТЕМА
│
▼
ВЫГРУЗКА
│
▼
ПРЕОБРАЗОВАНИЕ
│
▼
НОВАЯ СИСТЕМА
│
▼
ПРОВЕРКА

После неё проверяется не только количество строк.

Проверяется смысл данных.

Например:

[ RECORD_COUNT_RECONCILIATION ]
Клиентов: 148 231 → 148 231
Заказов: 932 418 → 932 418
Товаров: 42 731 → 42 731
[ DATA_INTEGRITY_CHECK ]
Сумма заказов: совпадает
Остатки: сходятся
Связи документов: сохранены
Дубли: отсутствуют
Ошибки преобразования: обработаны

Количество записей — лишь один из показателей.

// АРХИТЕКТУРНЫЙ_КРИТЕРИЙ //

Можно перенести миллион записей и получить неправильную систему.

 

 

ВАЛИДАЦИЯ // CONTROL_METRICS_VALIDATION

Проверять нужно контрольными показателями

Для критичных данных полезно заранее определить контрольные значения.

Например:

[ СТАРАЯ СИСТЕМА ]Количество заказов932 418Сумма заказов4,82 млрдАктивных клиентов148 231Остаток товара2 741 992МИГРАЦИЯ[ НОВАЯ СИСТЕМА ]Количество заказов932 418 ✓Сумма заказов4,82 млрд ✓Активных клиентов148 231 ✓Остаток товара2 741 992 ✓

Но даже совпадение этих показателей не гарантирует полной корректности.

// ГЛУБОКИЙ_АУДИТ_ДАННЫХ //

Поэтому проверяются ещё и выборочные записи, связи, документы и бизнес-сценарии.

 

 

РАНТАЙМ_КОНТУРЫ // PARALLEL_CONTOUR_OPERATION

Следующий уровень — параллельная работа

Для крупных систем часто используется период, когда старая и новая системы существуют одновременно.

Например:

СТАРАЯ СИСТЕМАсинхронизацияНОВАЯ СИСТЕМА

Пользователи постепенно переходят на новую систему, а данные продолжают контролируемо синхронизироваться.

This позволяет обнаружить проблемы до полного отказа от старой системы.

Но параллельная работа сама по себе не решает проблему.

// КЛЮЧЕВОЙ_ОГРАНИЧИТЕЛЬ_КОНТУРА //

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

 

 

КОНФЛИКТЫ // CONFLICT_SOURCE_OF_TRUTH

Нельзя бесконтрольно менять одни и те же данные в двух системах

Представим:

[ СТАРАЯ ]

Цена = 1 000 ₽

[ НОВАЯ ]

Цена = 1 050 ₽

Какая цена правильная?

Если обе системы позволяют одновременно изменять одни и те же данные без правил синхронизации, конфликт неизбежен.

Поэтому необходимо определить:

КЛИЕНТЫ
→ источник истины: новая система
ЦЕНЫ
→ источник истины: ERP
ОСТАТКИ
→ источник истины: WMS
ИСТОРИЯ
→ только чтение

Это уже не просто задача переноса.

// ОПРЕДЕЛЕНИЕ_ПЕРИОДА //

Это архитектура переходного периода.

 

 

ИНКРЕМЕНТ // DELTA_MIGRATION_MECHANISM

Что делать с новыми данными, появившимися после первой миграции

Допустим, основная миграция выполнена во вторник.

После неё старая система продолжила работать.

В ней появились 4 500 новых или изменённых объектов.

Перед окончательным переключением их нельзя просто проигнорировать.

Обычно используется механизм дельта-миграции:

ПОЛНАЯ МИГРАЦИЯработа продолжаетсяИЗМЕНЕНИЯ ПОСЛЕ СНИМКАФИНАЛЬНАЯ ДЕЛЬТА
[ TARGET_CONSOLIDATION_LOG ]
НОВАЯ СИСТЕМА
├─ Исходный снимок [вторник] [ОК]
└─ Накопленная дельта изменений [ОК]

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

 

 

РАНТАЙМ_ПЕРЕХОД // CUTOVER_OPERATION

Финальное переключение — отдельная операция

Даже если почти вся работа уже выполнена, момент перехода требует отдельного плана.

Обычно перед ним фиксируется состояние:

СТАРАЯ СИСТЕМА
│
│ последняя синхронизация
▼
ФИНАЛЬНАЯ ПРОВЕРКА
│
▼
ОГРАНИЧЕНИЕ ИЗМЕНЕНИЙ
│
▼
ПЕРЕКЛЮЧЕНИЕ
│
▼
НОВАЯ СИСТЕМА

В этот момент важно не просто сказать:

«С понедельника работаем в новой системе».

Нужно понимать:

когда прекращается запись в старую систему;
какие операции ещё выполняются;
когда проходит последняя синхронизация;
кто проверяет данные;
когда открывается новая система;
как подключаются пользователи;
что происходит с интеграциями;
что считается успешным переходом.

 

 

РЕГЛАМЕНТ // CUTOVER_RUNBOOK

Самый важный документ перед переключением — план перехода

Для серьёзной системы полезно иметь отдельный пошаговый план.

Например:

[ TIME_SEQUENCE_RUNBOOK ]
23:00 Ограничить операции в старой системе
23:10 Выполнить финальную выгрузку
23:30 Выполнить дельта-миграцию
00:00 Проверить контрольные показатели
00:30 Проверить критичные документы
01:00 Переключить интеграции
01:20 Проверить обмен
01:40 Открыть новую систему пользователям
02:00 Выполнить контрольные операции

Конкретное время зависит от бизнеса.

// СЦЕНАРНЫЙ_МИТИГАТОР //

Главное — чтобы переход был сценарием, а не импровизацией.

 

 

СТРАТЕГИЯ_ОТКАТА // ROLLBACK_STRATEGY_CONTOUR

А что если новая система после запуска ведёт себя неправильно?

Нужно предусмотреть это до переключения, а не после.

Поэтому заранее определяется rollback-сценарий.

ПЕРЕКЛЮЧЕНИЕВСЕ НОРМАЛЬНОПРОБЛЕМАНОВАЯ СИСТЕМАОТКАТСТАРАЯ СИСТЕМА

Но здесь есть важная тонкость.

Если после перехода в новой системе уже появились новые данные, простой «откат» может быть невозможен.

Поэтому rollback должен учитывать:

новые документы;
новые записи;
изменения пользователей;
проведённые операции;
внешние интеграции;
финансовые данные;
изменения остатков.

Иногда безопаснее не возвращаться назад, а исправить проблему уже в новом контуре.

// ФИКСАЦИЯ_СТРАТЕГИИ //

Именно поэтому решение о возможности отката должно приниматься до миграции.

 

 

ОРГ_КОНТУР // USER_TRANSITION_MATRIX

Пользователей тоже необходимо переводить

Технически успешная миграция может закончиться организационным провалом.

Новая система запущена.

Данные на месте.

Интеграции работают.

Но сотрудники продолжают:

использовать старую систему;

создавать документы в неправильном месте;

обходить новые процессы;

работать по старым инструкциям.

Поэтому переход пользователей — тоже часть миграции.

Для разных ролей необходимо понимать:

КТО
↓
ЧТО ДЕЛАЕТ
↓
В КАКОЙ СИСТЕМЕ
↓
В КАКОЙ СИСТЕМЕ
↓
С КАКОЙ ДАТЫ
// КРИТИЧНОСТЬ_ОПЕРАЦИОННОЙ_ЗОНЫ //

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

 

 

ИНТЕГРАЦИИ // EXTERNAL_INTEGRATION_CUTOVER

Нельзя забывать про внешние интеграции

Старая система редко живёт отдельно.

С ней могут работать:

САЙТ
│
CRM
│
1С / ERP
│
WMS
│
ПЛАТЁЖНЫЕ СЕРВИСЫ
│
B2B-ПОРТАЛЫ
│
СКЛАДСКОЕ ОБОРУДОВАНИЕ
│
ОТЧЁТНОСТЬ

При переходе нужно понимать, когда каждая система начинает обращаться к новой системе вместо старой.

Например:

[ ДО ПЕРЕХОДА ]
Сайт ───────► Старая система
1С ─────────► Старая система
WMS ────────► Старая система
[ ПОСЛЕ ПЕРЕХОДА ]
Сайт ───────► Новая система
1С ─────────► Новая система
WMS ────────► Новая система

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

// КРИТИЧЕСКИЙ_СБОЙ_ЦЕЛОСТНОСТИ //

А бизнес получит два разных состояния реальности.

 

 

ПРИЕМКА // DATA_MIGRATION_COMPLETION

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

Фраза «данные перенесли» недостаточна.

Завершение миграции должно подтверждаться набором проверок.

✓ Данные перенесены
✓ Критичные связи сохранены
✓ Остатки сходятся
✓ Документы проверены
✓ Интеграции работают
✓ Пользователи подключены
✓ Ошибки контролируются
✓ Мониторинг работает
✓ Резервное копирование настроено
✓ Старый контур переведён в нужный режим
// ЗАВЕРШЕНИЕ_РЕГЛАМЕНТА //

И отдельно должны существовать критерии, после которых старая система действительно может быть выведена из эксплуатации.

 

 

СТРАТЕГИЯ // MIGRATION_STRATEGY_RISKS

Самая опасная ошибка — планировать миграцию как один вечер

Если вся стратегия выглядит так:

[!] КРИТИЧЕСКИЙ РИСК // ПЯТНИЦА
22:00 Остановить старую систему
23:00 Перенести данные
03:00 Запустить новую
09:00 Надеемся, всё работает

— это не стратегия миграции.

Это ставка на то, что всё получится с первого раза.

Надёжный подход выглядит иначе:

АНАЛИЗТЕСТОВАЯ МИГРАЦИЯПРОВЕРКАПОВТОРНАЯ МИГРАЦИЯПАРАЛЛЕЛЬНЫЙ КОНТУРФИНАЛЬНАЯ СИНХРОНИЗАЦИЯПЕРЕКЛЮЧЕНИЕКОНТРОЛЬСТАБИЛИЗАЦИЯ
// МАСШТАБИРОВАНИЕ_РИСКОВ //

Чем больше цена простоя и ошибки, тем меньше смысла делать переход «одним большим прыжком».

 

 

МАНИФЕСТ // DATA_MIGRATION_FINAL_MANIFEST

Миграция — это управляемое изменение работающего бизнеса

Хороший переход со старой системы на новую не означает, что старая система внезапно перестала существовать, а новая появилась вместо неё.

Правильнее представить процесс как постепенное изменение контура:

СЕЙЧАССТАРАЯСИСТЕМАмиграция данныхНОВАЯСИСТЕМАтестированиепараллельнаяработафинальноепереключениеНОВЫЙ КОНТУР

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

Именно это позволяет заменить даже критичную корпоративную систему без необходимости останавливать бизнес на неопределённый срок.

Главная цель миграции — не просто получить новую систему.

// ГЛАВНАЯ_ЦЕЛЬ_АРХИТЕКТУРЫ //

Главная цель — сделать так, чтобы бизнес продолжал работать, пока меняется система, на которой этот бизнес работает.

 

 

НАВИГАЦИЯ // SUGGESTED_READING
 
[ Модуль // ИНТЕГРАЦИИ ]

API, Webhook или очередь сообщений?

 
[ Модуль // ИНТЕГРАЦИИ ]

Когда API есть, а интеграция всё равно не работает

 
[ Модуль // АВТОМАТИЗАЦИЯ ]

Как соединить производство и корпоративные системы

 
[ EXPERTISE JOURNAL ]

Все инженерные материалы и экспертные статьи

 
[ CORE GLOSSARY ]

Полный алфавитный справочник ИТ-терминов

 

[ DIRECT EMAIL LINE ]
info@log-ai.ru

 

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

Сайт носит исключительно информационный характер и не является публичной офертой в соответствии со статьёй 437 Гражданского кодекса РФ. Цены, состав и условия предоставления услуг уточняются при проектировании решения и фиксируются в договоре. Условия технического сопровождения и уровень сервиса могут дополнительно определяться отдельным соглашением (SLA).

© 2026 Log-AI Москва
Автоматизация бизнеса и ИИ-решения под ключ
Самозанятый Скопец Антон Викторович ИНН 741709260870
Политика конфиденциальности Пользовательское соглашение
AI Ассистент
×