Я бы настоятельно не рекомендовал совмещать миграцию кластера с обновлением до нескольких основных выпусков. Подход к этим задачам по отдельности поможет вам ограничить объем изменений при устранении неполадок.
Миграция между кластерами с использованием общего подхода, который вы описали, возможна, если вы используете совместимые версии сервера MongoDB и можете добавлять всех участников к одному и тому женабор реплик. В настоящее время для последовательных обновлений поддерживаются только смежные выпуски основных серверов, поэтому, если отправной точкой является MongoDB 3.0.x, самой новой версией, которую вы можете напрямую добавить в набор реплик 3.0.x, будет 3.2.x. Если ваша конечная цель - 4.0.x, вам нужно перейти с 3.2 => 3.4, 3.4 => 3.6 и, наконец, 3.6 => 4.0. Замечания по выпуску MongoDB содержат конкретные предварительные условия, процедуры обновления и информацию о совместимости для каждого основного выпуска.
Поставщики DBaaS, как правило, не разрешают добавлять внешние элементы с самостоятельным управлением, поскольку это может поставить под угрозу безопасность истабильность кластера, которым они управляют. Однако поставщики DBaaS часто имеют автоматизацию, чтобы помочь вам выполнить обновление на месте, поэтому вы можете воспользоваться этим, прежде чем переходить на самоуправляемое.
Лучшим вариантом для живой миграции с DBaaS будет создание пользователя сПолучите доступ к журналу репликации и найдите инструмент миграции, который соответствует вашему варианту использования и версиям исходного / целевого сервера. В производственной среде я бы с осторожностью пытался выполнить живую миграцию между несколькими основными выпусками (например, с 3.0.x на 4.0.x) и поощрял бы такую же миграцию версий (3.0.x => 3.0.x) с отдельными шагами обновления.
В качестве общего подхода я бы:
- Просмотрите все заметки о выпуске, обновлении и совместимости для обновлений сервера и драйвера, которые вы планируете.
- Убедитесь, чтовы используете совместимые версии драйверов и обновите свои драйверы / код приложения перед обновлением версий сервера.
- Протестируйте процесс обновления с резервной копией производственных данных в репрезентативной промежуточной среде / среде QA.
- Тестваши приложения с обновленными версиями драйверов / серверов и репрезентативной рабочей нагрузкой для поиска потенциальных проблем, таких как снижение производительности.