Развертывание Capistrano с большим количеством образов

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

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

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


person fregas    schedule 31.03.2011    source источник
comment
Действительно ли изображения должны находиться в системе контроля версий? Обычно вы храните такие вещи в общем каталоге и заставляете Capistrano создавать на них символическую ссылку при каждом развертывании.   -  person Tim Fountain    schedule 01.04.2011
comment
они не обязательно должны находиться в системе контроля версий, но наши дизайнеры немного над ними работают.   -  person fregas    schedule 08.04.2011


Ответы (2)


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

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

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

person Rich Duzenbury    schedule 11.11.2011

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

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

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

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

person Xavier Holt    schedule 31.03.2011