Я думаю о возможных способах миграции пользователей между двумя системами. Это финансовая система, веб-приложение (Java, Spring, Hibernate, Oracle, JBoss и др.). Есть 500 000 пользователей для миграции вместе со своими данными, такими как учетные записи, подрядчики, переводы и многие другие. Новое приложение уже работает и имеет 10 тыс. Пользователей.
В настоящее время я думаю только о онлайн / офлайн миграции. «Онлайн» означает, что приложения остаются доступными для пользователей во время миграции, «автономный» означает, что я отключаю его и отображаю сообщение о техническом прерывании, а миграция обрабатывается. Клиент не хочет выключать приложение, поэтому это будет означать онлайн-миграцию. Когда приложение включено (доступно для его пользователей), многие пользователи могут выполнять различные операции (также с использованием внешних систем), и многие фоновые процессы работают и изменяют данные базы данных. Было бы довольно рискованно мигрировать онлайн:
- нет резервного копирования базы данных, так как во время миграции многие пользователи будут делать разные вещи в приложении, поэтому не будет никакой точки возврата,
- проблемы во время миграции могут блокировать пользователей, которые находятся в сети (базы данных, блокировки транзакций и т. д.).
А может, у вас есть сильные стороны, чтобы убедить моего клиента в том, что онлайн-миграция - это чепуха? Вероятно, их можно разделить на прикладной уровень - риски сервера Jboss, риски базы данных, бизнес-риски.