Некоторые люди как C# лучше, чем Java. Кроме того, полагайте, что C# является языком стандарта ISO, в то время как Java не. Возможно, Вы хотите выполнить код ASP.NET сервера Linux? Существует много причин, действительно.
Планирование «постепенного обновления вашего веб-сайта» не начинается, когда вы готовы к развертыванию. Он начинается на очень ранней стадии разработки вашего приложения. Это означает, что вам нужно создать приложение, которое можно корректно обновить, а также иметь инфраструктуру для поддержки этого обновления.
Вы предоставили немного деталей и задаете расплывчатый, но важный вопрос от случайные люди в Интернете. Это наводит меня на мысль, что «корректное обновление» было проблемой в последнюю минуту (например, 23 минуты назад).
Ваш вопрос: «Есть ли предпочтительный метод изящного обновления веб-сайта?» можно ответить только так: «Да, но я делаю это иначе, чем вы».
Я думаю, что какой бы путь вы ни выбрали, абсолютно необходимо полное сотрудничество вашего веб-хостинга и провайдера доменного имени.
Примерная процедура:
Несколько часов - это много, если в базе данных много преобразований, вы можете сначала сделать копию базы данных, завершить преобразование, настроить новый сайт (но с немного старой базой данных), посмотреть, что изменилось с тех пор, как вы взяли копию, преобразовать это тоже (должен быть быстрее, чем большой дамп, если у вас мало изменений) и вставьте его в новую базу данных.
Только не забудьте сделать резервную копию!
Похоже, вы хотите съесть свой пирог и съесть его.
Если обновление выполняется вручную и занимает несколько часов, почему бы вам не ускорить его, написав сценарий.
Существует ряд тактик, которые вы можете использовать - в зависимости от времени / ресурсов, которые вы готовы потратить на обновление.
Это может быть возможно, в зависимости от того, как вы выполняете миграцию, с абсолютно нулевым временем простоя.
Чем сложнее ваше приложение / сайт, тем сложнее может быть стратегия миграции, если вы не хотите простоев.
Мы достигли нулевого времени миграции за счет:
Конечно, это более сложно, поскольку нам нужно было поддерживать доступ к данным клиентов в двух средах и постепенно переходить.
Это позволяет нам откатить изменения, если будет замечена какая-либо проблема - например, чрезмерное использование ЦП или памяти на одном из серверов нового приложения.
Для небольшого сайта, на котором у вас нет бюджета на дополнительные серверы, вы можете добиться этого, просто используя несколько IP-адресов или какое-либо внутреннее программное обеспечение для балансировки нагрузки для маршрутизации запросов на старый, или новый сайт. Это может еще больше усложнить ситуацию.
Если вы не можете запускать старое приложение и новое приложение из одного и того же хранилища данных (серверные веб-службы, база данных и т. Д.), Тогда ваши приложения должны знать, что им потребуется для синхронизации данных между старым и новым - например, во время сохранения / обновления данных клиента запись должна происходить в обоих местах.
Если у вас есть бюджет на дополнительные серверы, вы можете достичь этого, просто используя несколько IP-адресов или какое-либо внутреннее программное обеспечение для балансировки нагрузки для маршрутизации запросов на старый или новый сайт. Это может еще больше усложнить ситуацию.Если вы не можете запускать старое приложение и новое приложение из одного и того же хранилища данных (серверные веб-службы, база данных и т. Д.), Тогда ваши приложения должны знать, что им потребуется для синхронизации данных между старым и новым - например, во время сохранения / обновления данных клиента запись должна происходить в обоих местах.
Если у вас есть бюджет на дополнительные серверы, вы можете достичь этого, просто используя несколько IP-адресов или какое-либо внутреннее программное обеспечение для балансировки нагрузки для маршрутизации запросов на старый или новый сайт. Это может еще больше усложнить ситуацию.Если вы не можете запускать старое приложение и новое приложение из одного и того же хранилища данных (серверные веб-службы, база данных и т. Д.), Тогда ваши приложения должны знать, что им потребуется для синхронизации данных между старым и новым - например, во время сохранения / обновления данных клиента запись должна происходить в обоих местах.
и новое приложение из того же хранилища данных (серверные веб-службы, база данных и т. д.) - тогда ваши приложения должны будут знать, что им потребуется синхронизировать данные между старым / новым - например, во время сохранения / обновления данных клиента запись будет должны происходить в обоих местах. и новое приложение из того же хранилища данных (серверные веб-службы, база данных и т. д.) - тогда ваши приложения должны будут знать, что им потребуется синхронизировать данные между старым / новым - например, во время сохранения / обновления данных клиента запись будет должны происходить в обоих местах.Вероятно, это то, что вам нужно было уже «спроектировать» для текущего выпуска.
Можно ли сегментировать его так, чтобы одни части (например, каталог) были доступны, а другие ( например, покупка) обновляются?
Можно ли создать версию, доступную только для чтения, с использованием кеша?
Или, конечно, есть время суток, когда перерыв в обслуживании допустим? Работать в воскресенье вечером? Даже на довольно крупных веб-сайтах есть периоды обслуживания, в течение которых некоторые функции недоступны.
Если вы обновляете только базу данных, просто создайте новую и переключитесь обратно, как только она будет готова.
Если вы говорите о загрузке кода, загрузите его в другой каталог и mv
когда он будет готов.
Это не должно быть проблемой, если у вас есть аналогичная установка в вашей среде разработки.
Вы также можете арендовать очень дешевый сервер, подобный тем, за 20 евро в месяц (кимсуфи или что-то в этом роде) и выполнить обновление.