Что не так с запуском живого сайта из клона DVCS?

Здесь и там я вижу инсинуации о том, что плохо запускать развертывание в реальном времени непосредственно с клона DVCS, а лучше экспортировать чистое дерево или тарбол и развертывать его. Мне кажется, что запуск непосредственно из клона DVCS имеет несколько преимуществ:

  1. Нет необходимости переносить всю кодовую базу при каждом развертывании.
  2. Тривиально обновить код до любой желаемой версии.
  3. Тривиально откат к предыдущей версии, если развертывание идет плохо.

И я не вижу никаких недостатков. Наличие файлов репо (в моем случае один каталог.hg/) не вызывает проблем.

Действительно ли есть веская причина не запускать развертывание в реальном времени с клона DVCS?

2 ответа

Решение

Вот что я делаю. Единственный "недостаток" в том, что вы не можете контролировать версии баз данных или контента, созданного на сайте (пользовательские загрузки). Хотя это совсем не минус, потому что альтернативы нет. Как обычно, вам нужен скрипт резервного копирования, чтобы скопировать весь этот контент.

Это не ответ, а скорее объяснение современных макетов веб-приложений. Очень простое веб-приложение Python может выглядеть примерно так:

webapp/
  .hg/
  webroot/
  handler.py

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

Поскольку ни один из исходных кодов на стороне сервера не находится внутри webroot/, он не может быть обслужен (если у вас нет директивы python, упорядочивающей его для обслуживания исходного кода). То же самое относится к .hg/ каталог.

Примечание: SVN (<1,7) и CVS являются исключениями, так как они распыляют свои .svn каталоги по каждому подкаталогу. В этом случае это будет включать webroot/ так что да, вам нужно убедиться, что вы не обслуживаете скрытые файлы, но в любом случае это обычно так.

Ну, я знаю об одном.

Если кто-то может получить доступ к вашему каталогу.hg, он потенциально может просмотреть ваш исходный код. Но на самом деле доступ к этому каталогу должен быть запрещен сервером или файлами.htaccess.

Другие вопросы по тегам