2011-03-31 4 views
0

그래서 우리는 capistrano 2.5.19와 다중 단계 확장을 포함한이 기본 Rails 3 웹 사이트를 보유하고 있습니다.많은 이미지가있는 Capistrano 배포

사이트는 간단하지만 40,000 개 이상의 이미지가 있습니다. 따라서 배포는 QA 서버와 프로덕션 모두에 시간이 오래 걸립니다. 카피 스트라 노는 svn에서 변경된 내용 만 다운로드하기 때문에 문제는 대개 네트워크 부하가 아닙니다. 문제는 서버가 이전 버전 (40k 상당의 이미지)을 백업하고 새로운 릴리스 (이미지 40,000 개)를 복사하는 데 걸리는 시간입니다.

누구든지 최상의 방법을 알고 있습니까? 이것을 두 개의 SVN 폴더와 두 개의 배포 스크립트로 나눌 수있는 유일한 방법은 symlink 마법과 결합 된 것입니까? 또는 이미지가 변경되지 않았다는 것을 알고있는 특정 배포에서 이미지를 제외하도록 capistrano에게 알릴 수 있습니까?

+0

이미지가 실제로 소스 제어에 있어야합니까? 일반적으로 공유 디렉토리에 이런 종류의 것을 보관하고 Capistrano에 각 배포시 심볼릭 링크를 설정하게됩니다. –

+0

소스 제어에 반드시 있어야 할 필요는 없지만 우리 설계자는 조금만 작업해야합니다. – fregas

답변

0

리포지토리에 있거나 적어도 다른 저장소에 모든 이미지를 포함하지 않는 것이 좋습니다.

자산 서버 설정에 대해 알아 보겠습니다. They're easy to hook into Rails, 도우미 XXX_tag을 사용하는 한 그리고 자산 서버에서 평범한 오래된 아파치를 실행할 수도 있습니다. 아무 것도 동적 일 필요가 없습니다. ...

"구름"파일 저장소를 연결할 수도 있습니다 (나는 Amazon S3을 생각하고 있습니다. 많은 사람들이) 동일한 목적을 달성하기 위해 - 파일 백업 (및 경우에 따라 버전 제어)을 제공 할 것이므로 자산 서버를 직접 실행하는 것에 대해 걱정할 필요조차 없습니다.

희망이 도움이됩니다.

1

글쎄,이 문제도 있습니다. 해결책은 리눅스에 있다면 fast_remote_cache 라 불리는 라이브러리입니다.

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

아이디어

는 캐시 그게 하드 링크 복사가 훨씬 빠릅니다 있도록합니다. 일단 사이트가 마침내 너무 길어지면 시간이 너무 오래 걸리며 자산 서버를 고려해야합니다.

관련 문제