2012-10-22 5 views
23

저는 여전히 Rails 개발 환경에 익숙해 져 있습니다. 최근에 아파치와 여객기를 사용하여 내 서버에 배포하기 위해 capistrano를 사용하는 방법을 배웠습니다. 배포 방법에 대한 복잡한 설정을 deploy.rb에 넣을 수있는 방법이 좋기 때문에 단일 "캡 배포"호출로 실행됩니다. 자동 롤백 기능이 있습니다.Capistrano와 함께 Heroku에 배치 하시겠습니까?

이제 프로젝트를 Heroku에 배포하려고합니다. 거기에 배포 할 때 capistrano를 사용할 수있을 것으로 예상됩니다. 하지만 어떻게하는지에 대한 문서를 찾을 수 없었습니다. 가능한가? Heroku에서 배포를 자동화 할 수있는 카피 스트라노 작업이 있습니까?

이 말이 맞습니까? 모든 카피 스트라노가 특정 방식 (서버에 대한 ssh)으로 작동하고 특정 디렉토리 구조 (공개/릴리스/공유 등)를 취한 후에. 내가 아는 한이 두 가지 모두 Heroku에서 가능하지 않습니다. 하지만 여전히 나는 카프리 스트 라노의 편리함을 원합니다. 나는 배치 (git push/migrate/restart resque workers ...)를 단일 rake 태스크로 옮기는 데 필요한 단계를 넣을 수 있다는 것을 알고 있으며 단일 명령 호출을 사용하여 배치의 편의성을 얻는다. 하지만 저는 카피 스트라노 거래와 롤백의 혜택을 얻지 못했을 것입니다. 그것은 내 마음에서 매우 중요합니다.

나는이 기술들이 어떻게 어울리는 지에 대해 매우 기본적인 것을 놓치고있을 것입니다. 그것은 내가이 주제에 관한 어떤 논의도 찾을 수 없었던 약간의 놀라움이다. 누구나 자신의 경험을 공유 할 수 있습니까?

답변

35

Heroku는 배치 용으로 Git을 사용하며 카피스토라노와는 다릅니다. 사실, 철학 자체는 다릅니다. Heroku는 SSH를 수행 할 수있는 서버가 없거나 필요에 맞게 서버를 사용자 정의 할 수 없습니다.

Heroku는 사전 정의 된 인스턴스 인 Dynos를 사용하여 대부분의 레일스 배포 요구 사항을 다루는 특정 배포 아키텍처를 사용합니다. Heroku를 사용하여 롤백, 백업, 마이그레이션 등과 같은 작업을 수행 할 수 있으며 경우에 따라 정상적인 카피 스트라노 스크립트보다 정교합니다.

설정이 완전히 다른 경우가 아니면 안전하게 Heroku for Rails를 사용할 수 있습니다 (Git 만 사용). 그렇지 않은 경우 AWS가 더 나은 방법입니다.

+4

Heroku는 _any_ 시스템처럼 롤백, 백업 및 마이그레이션을 수행 할 수있는 방법을 제공합니다. 카피스트라노 (Capistrano)처럼 모든 프로세스를 조율/자동화하는 방법을 제공하지 않습니다 **. –

관련 문제