2011-03-31 38 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

的想法是,它硬链接缓存,以便复制的速度要快得多。一旦该网站最终变得足够大,即使这需要很长时间,那么该考虑资产服务器了。