Развернуть с помощью rsync (или svn, git, cvs) и игнорировать несогласованное состояние во время развертывания?

В настоящее время мы говорим о развертывании веб-сайта через rsync. Однако во время rsync приложение остается в несогласованном состоянии, так как некоторые файлы могут быть уже синхронизированы, а другие все еще остаются со старой версией, верно? Как люди решают эту проблему? Я предполагаю, что та же проблема существует при развертывании через svn/git/cvs. Должен ли я просто закрыть сайт, выполнить rsync и снова открыть? Или люди просто игнорируют эту проблему несоответствия?


person zedoo    schedule 02.04.2010    source источник
comment
Не связанный с программированием - принадлежит superuser.com?   -  person Paul R    schedule 02.04.2010


Ответы (1)


Используйте двухэтапное развертывание. rsync в тестовый каталог, в идеале протестируйте его, а затем поменяйте местами рабочее и тестовое развертывания. В первый раз, когда вы делаете это, у вас может не быть готового тестового каталога, но вы можете исправить это, просто выполнив rsync из рабочей среды в тестовую.

person Marcelo Cantos    schedule 02.04.2010
comment
Как бы вы реализовали такой обмен вокруг? В идеале это не должно требовать перезагрузки веб-сервера. Единственный способ, который я могу себе представить, - это символическая ссылка на корень документа в текущей производственной среде. Тогда переключатель должен был бы переместить символическую ссылку. Возможно ли это без предварительного удаления ссылки? - person zedoo; 03.04.2010
comment
Скорее всего, это не очень хорошо сработает, если вообще сработает. Лучший способ поменять местами два веб-сервера — использовать балансировку нагрузки. Позвольте обоим серверам работать одновременно, выведите старый из цикла и выключите его, когда он станет бездействующим (завершит доставку своего последнего ответа). Конечно, этот метод имеет важные последствия для того, как вы выполняете обновления. Например, обновления вашей базы данных должны происходить заранее, пока старая система находится в сети, и должны быть безопасными с точки зрения старой системы. - person Marcelo Cantos; 03.04.2010
comment
Хорошо, я подумаю, стоит ли это усилий по реализации. Вы не можете порекомендовать книгу по теме, не так ли? - person zedoo; 05.04.2010
comment
Масштабируемая архитектура Интернета — хороший справочник по такого рода вещам. Я не знаю, обсуждает ли это конкретно вышеизложенное, поскольку у меня нет своей копии под рукой, но, тем не менее, это хорошая книга. Я также видел онлайн-блоги об этой технике (по сути, это то, как такие компании, как eBay, управляют обновлениями), но я не могу найти их прямо сейчас. - person Marcelo Cantos; 05.04.2010