#deployment
#развертывание
Вопрос:
Чтобы избежать перегрузки инфраструктуры в экземпляре веб-приложения, каковы были бы методы реализации развертывания функции для контролируемой группы вашей пользовательской базы?
Ответ №1:
Это зависит от ситуации. На самом деле вы не можете перенаправить их на другой сайт, используя другую базу данных, если пользователи ожидают работать с реальными данными и реальным сайтом.
Я бы ввел флаг для ваших пользователей в вашей пользовательской таблице, скажем, isBetaUser (bool). Затем вы можете просто показать эти новые функции пользователям, для которых установлен этот флаг True. Вы также могли бы разрешить им снять этот флаг с помощью флажка на какой-нибудь странице настроек, если им не нравится идея опробовать новые функции, которые есть.
Ответ №2:
-
Разделите своих пользователей на группы. Случайным образом. Демографически. Каким-то образом.
-
Выберите одну или несколько групп для пилотного запуска.
-
Исправьте свой веб-сайт, чтобы на нем были запущены обе версии вашего приложения. Может быть, использовать виртуальный хостинг или другой путь или что-то в этомроде.
Одна база данных. Два приложения. Данные не перемещаются. Меняется только представление.
Сначала все пользователи используют старую версию. Рабочая нагрузка не изменилась.
-
Переместите группу пользователей так, чтобы их URL по умолчанию, ссылки, меню или что-то еще были ссылками на новое приложение.
Та же рабочая нагрузка. Та же база данных. То же количество пользователей. Два приложения.
-
Переместите другую группу пользователей в новое приложение.
Та же рабочая нагрузка. Та же база данных. То же количество пользователей. Два приложения.
-
В конечном итоге, после того, как все пользователи будут перемещены, вы можете удалить старое приложение.
Комментарии:
1. Как это будет работать, если у вас есть изменения в структуре базы данных? Вы не сможете использовать ту же базу данных.
2. @joerage: У вас должны быть оба набора данных в одной базе данных. Это означает, что вы перемещаете данные из старой структуры в новую структуру в рамках перемещения пользователей. Любые общие данные должны быть соединены между двумя структурами. Постепенное перемещение пользователей не является необходимым и скорее вызывает проблемы, чем решает их. Перемещение всех одновременно проще и не «перегружает инфраструктуру».
3. Теоретически это должно хорошо работать, но я не знаю, использует ли какая-либо компания этот метод в реальном проекте
4. @Swizzh: Я предполагаю, что мы не из реального мира.