корректно обновление веб-сайта

Некоторые люди как C# лучше, чем Java. Кроме того, полагайте, что C# является языком стандарта ISO, в то время как Java не. Возможно, Вы хотите выполнить код ASP.NET сервера Linux? Существует много причин, действительно.

5
задан GEOCHET 8 October 2009 в 15:29
поделиться

7 ответов

Планирование «постепенного обновления вашего веб-сайта» не начинается, когда вы готовы к развертыванию. Он начинается на очень ранней стадии разработки вашего приложения. Это означает, что вам нужно создать приложение, которое можно корректно обновить, а также иметь инфраструктуру для поддержки этого обновления.

Вы предоставили немного деталей и задаете расплывчатый, но важный вопрос от случайные люди в Интернете. Это наводит меня на мысль, что «корректное обновление» было проблемой в последнюю минуту (например, 23 минуты назад).

Ваш вопрос: «Есть ли предпочтительный метод изящного обновления веб-сайта?» можно ответить только так: «Да, но я делаю это иначе, чем вы».

10
ответ дан 13 December 2019 в 05:37
поделиться

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

Примерная процедура:

  1. Аренда нового сервера с другим IP-адресом, на котором вы развернете новый сайт. Или, если возможно, создайте тестовый поддомен на своем сайте, который будет недоступен для публики.
  2. Разверните свой сайт на новом сервере / поддомене. Выполните все необходимое тестирование с вашим новым сайтом, используя сначала IP-адрес или ваш субдомен.
  3. Когда вы уверены, что все в порядке, сначала выполните перенаправление на ваш новый сервер / субдомен.
0
ответ дан 13 December 2019 в 05:37
поделиться

Несколько часов - это много, если в базе данных много преобразований, вы можете сначала сделать копию базы данных, завершить преобразование, настроить новый сайт (но с немного старой базой данных), посмотреть, что изменилось с тех пор, как вы взяли копию, преобразовать это тоже (должен быть быстрее, чем большой дамп, если у вас мало изменений) и вставьте его в новую базу данных.

Только не забудьте сделать резервную копию!

1
ответ дан 13 December 2019 в 05:37
поделиться

Похоже, вы хотите съесть свой пирог и съесть его.

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

0
ответ дан 13 December 2019 в 05:37
поделиться

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

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

Чем сложнее ваше приложение / сайт, тем сложнее может быть стратегия миграции, если вы не хотите простоев.

Мы достигли нулевого времени миграции за счет:

  1. Установки нового сервера (ов) с новой версией сайта и базы данных.
    • Изменение балансировщика нагрузки для разделения трафика на два пула: новое приложение и старое приложение.
    • Настройте балансировщики нагрузки для начала отправки трафика на сервер (-ы) нового приложения, но сохраните существующие сеансы на сервере (-ах) старого приложения.
    • Новые сеансы в новом приложении проверяют, есть ли в данных клиента был перенесен, а если нет - быстро делает.
    • Постепенное выключение серверов «старых приложений» по мере снижения нагрузки, обновление до нового приложения и добавление в пул балансировщика нагрузки нового приложения.
    • По окончании сеанса данные клиентов переносятся в новую базу данных.
    • Если позволяет нагрузка, переносить неактивные данные клиентов в новую базу данных.

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

Это позволяет нам откатить изменения, если будет замечена какая-либо проблема - например, чрезмерное использование ЦП или памяти на одном из серверов нового приложения.

Для небольшого сайта, на котором у вас нет бюджета на дополнительные серверы, вы можете добиться этого, просто используя несколько IP-адресов или какое-либо внутреннее программное обеспечение для балансировки нагрузки для маршрутизации запросов на старый, или новый сайт. Это может еще больше усложнить ситуацию.

Если вы не можете запускать старое приложение и новое приложение из одного и того же хранилища данных (серверные веб-службы, база данных и т. Д.), Тогда ваши приложения должны знать, что им потребуется для синхронизации данных между старым и новым - например, во время сохранения / обновления данных клиента запись должна происходить в обоих местах.

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

Если вы не можете запускать старое приложение и новое приложение из одного и того же хранилища данных (серверные веб-службы, база данных и т. Д.), Тогда ваши приложения должны знать, что им потребуется для синхронизации данных между старым и новым - например, во время сохранения / обновления данных клиента запись должна происходить в обоих местах.

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

Если вы не можете запускать старое приложение и новое приложение из одного и того же хранилища данных (серверные веб-службы, база данных и т. Д.), Тогда ваши приложения должны знать, что им потребуется для синхронизации данных между старым и новым - например, во время сохранения / обновления данных клиента запись должна происходить в обоих местах.

и новое приложение из того же хранилища данных (серверные веб-службы, база данных и т. д.) - тогда ваши приложения должны будут знать, что им потребуется синхронизировать данные между старым / новым - например, во время сохранения / обновления данных клиента запись будет должны происходить в обоих местах.

и новое приложение из того же хранилища данных (серверные веб-службы, база данных и т. д.) - тогда ваши приложения должны будут знать, что им потребуется синхронизировать данные между старым / новым - например, во время сохранения / обновления данных клиента запись будет должны происходить в обоих местах.

1
ответ дан 13 December 2019 в 05:37
поделиться

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

Можно ли сегментировать его так, чтобы одни части (например, каталог) были доступны, а другие ( например, покупка) обновляются?

Можно ли создать версию, доступную только для чтения, с использованием кеша?

Или, конечно, есть время суток, когда перерыв в обслуживании допустим? Работать в воскресенье вечером? Даже на довольно крупных веб-сайтах есть периоды обслуживания, в течение которых некоторые функции недоступны.

0
ответ дан 13 December 2019 в 05:37
поделиться

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

Вы также можете арендовать очень дешевый сервер, подобный тем, за 20 евро в месяц (кимсуфи или что-то в этом роде) и выполнить обновление.

0
ответ дан 13 December 2019 в 05:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: