Каковы методы развертывания новых / бета-функций для большой пользовательской базы?

#deployment

#развертывание

Вопрос:

Чтобы избежать перегрузки инфраструктуры в экземпляре веб-приложения, каковы были бы методы реализации развертывания функции для контролируемой группы вашей пользовательской базы?

Ответ №1:

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

Я бы ввел флаг для ваших пользователей в вашей пользовательской таблице, скажем, isBetaUser (bool). Затем вы можете просто показать эти новые функции пользователям, для которых установлен этот флаг True. Вы также могли бы разрешить им снять этот флаг с помощью флажка на какой-нибудь странице настроек, если им не нравится идея опробовать новые функции, которые есть.

Ответ №2:

  1. Разделите своих пользователей на группы. Случайным образом. Демографически. Каким-то образом.

  2. Выберите одну или несколько групп для пилотного запуска.

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

    Одна база данных. Два приложения. Данные не перемещаются. Меняется только представление.

    Сначала все пользователи используют старую версию. Рабочая нагрузка не изменилась.

  4. Переместите группу пользователей так, чтобы их URL по умолчанию, ссылки, меню или что-то еще были ссылками на новое приложение.

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

  5. Переместите другую группу пользователей в новое приложение.

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

  6. В конечном итоге, после того, как все пользователи будут перемещены, вы можете удалить старое приложение.

Комментарии:

1. Как это будет работать, если у вас есть изменения в структуре базы данных? Вы не сможете использовать ту же базу данных.

2. @joerage: У вас должны быть оба набора данных в одной базе данных. Это означает, что вы перемещаете данные из старой структуры в новую структуру в рамках перемещения пользователей. Любые общие данные должны быть соединены между двумя структурами. Постепенное перемещение пользователей не является необходимым и скорее вызывает проблемы, чем решает их. Перемещение всех одновременно проще и не «перегружает инфраструктуру».

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

4. @Swizzh: Я предполагаю, что мы не из реального мира.