2011-03-31 2 views
0

Итак, у нас есть этот базовый веб-сайт Rails 3 с capistrano 2.5.19 плюс многоэтапное расширение.Развертывание Capistrano с большим количеством изображений

Сайт прост, но у него есть 40 000 изображений. Таким образом, развертывание занимает много времени, как на нашем сервере QA, так и на производстве. Проблема обычно не в сетевой загрузке, потому что capistrano загружает только то, что изменилось в svn. Проблема в том, что для наших серверов требуется время для резервного копирования старой версии (40 тыс. Изображений) и копирования новой версии (еще 40 тыс. Изображений).

Кто-нибудь знает об оптимальном подходе к этому вопросу? Это единственный способ разделить его на две папки SVN и два сценария развертывания в сочетании с некоторой символической магией? Или я могу сказать capistrano, чтобы исключить изображения на некоторых развертываниях, где я знаю, что изображения не изменились?

+0

Должны ли изображения действительно находиться в режиме контроля источника? Обычно вы храните эту вещь в общем каталоге и получаете Capistrano для ссылки на нее при каждом развертывании. –

+0

они не обязательно должны быть в контроле источника, но наши дизайнеры работают над ними немного. – fregas

ответ

0

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

Вы хотите узнать о настройке сервера активов. They're easy to hook into Rails, если вы используете помощники XXX_tag. И вы могли бы просто запустить сервер ресурсов на простой старый Apache - не нужно ничего динамического на нем ...

Возможно, вы также сможете подключить хранилище файлов «облако» (я думаю, Amazon S3, но есть множество других) для выполнения той же цели - в некоторых случаях они обеспечат резервное копирование файлов (и контроль версий), и вам даже не придется беспокоиться о запуске сервера активов самостоятельно.

Надеюсь, это поможет!

1

Ну, у нас тоже есть эта проблема. Решение - это библиотека, называемая fast_remote_cache, если вы работаете в Linux.

https://github.com/37signals/fast_remote_cache

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

Смежные вопросы