2011-03-31 40 views
0

所以我們有了這個基本的Rails 3網站和capistrano 2.5.19加上多級擴展。Capistrano部署有很多圖像

該網站很簡單,但它有40,000以上的圖像。因此,部署需要很長時間,既需要我們的QA服務器和產品。這個問題通常不是網絡負載,因爲capistrano只下載在svn中更改的內容。問題是我們的服務器需要花費時間來備份舊版本(價值40K的圖像)並複製新版本(另一個40K的圖像)。

有沒有人知道最佳實踐方法?是唯一的方法將其分成兩個SVN文件夾和兩個部署腳本結合一些符號鏈接魔術?或者我可以告訴capistrano排除特定部署中的圖像,我知道圖像沒有改變?

+0

圖像確實需要在源代碼控制中嗎?通常情況下,你會在共享目錄中保存這種東西,並在每次部署時讓Capistrano符號鏈接它。 – 2011-03-31 23:19:42

+0

他們不一定需要在源代碼控制中,但我們的設計人員對它們做了一些工作。 – fregas 2011-04-07 22:43:07

回答

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

的想法是,它硬鏈接緩存,以便複製的速度要快得多。一旦該網站最終變得足夠大,即使這需要很長時間,那麼該考慮資產服務器了。