0

단일 linode 상자를 사용하여 테스트 한 레일 앱을 거의 시작할 준비가되었습니다. 내 자식 repo 또한 현재 응용 프로그램과 데이터베이스가 포함 된 동일한 상자에서 호스팅됩니다. 데이터베이스 서버와 응용 프로그램 서버 (쉽게 추가 할 수있는 옵션 포함) 및 bitbucket에서 호스팅되는 저장소를 3 개의 엔티티로 분할하려고합니다.효율적인 확장을위한 지속적인 배포 환경 설정

이상적으로는, 코드를 bitbucket에 커밋하고 포스트 커밋 후크 푸시 POSTS를 앱 서버에 설정하여 repo에서 새로운 변경 사항을 가져 와서 자동으로 서비스를 시작하는 것이 좋습니다. 나는 Puppet, Chef, Passenger 등에 대해 많은 시간을 읽었으며 꽤 압도적이다. 내 설정은 정상적으로 작동하지만 시간이 지나면 확장이 잘 안되기 때문에 스위치를 만들어야합니다. 제가 도움을 드리고 싶은 것은 프로세스를 가능한 한 매끄럽게 만들기 위해 이미 설정 한 것 이외에 어떤 도구를 사용해야하는지 결정하는 것입니다.

감사

답변

0

는 요리사의 경로는 가장 좋은 것입니다하지만에 대한 학습 곡선은 가파른입니다. EC2 사용을 고려해 보시겠습니까? 그렇다면 요리사 (Puppet과 유사)를 제공하고 EC2에 배포하는 데 도움이되는이 보석이 있습니다. 다른 역할을 설정할 수 있으며 Capistrano도 사용합니다. https://github.com/wr0ngway/rubber

개인적으로 나를 위해, 나는 내 개발 및 스테이징 환경을위한 방랑 상자가 있습니다. 요리사는 프로덕션 서버를 포함하여 하나의 명령으로 소프트웨어를 프로비저닝/설치하는 것을 도와줍니다. 개발 환경에서 bitbucket의 git repo에서 Capistrano를 사용하여 준비 및 프로덕션 환경에 코드를 배포 할 수 있습니다. 내가 할 것

1

우선 (내가 열등 찾을 수 있지만, 또는의 Bitbucket) GitHub의에 자식 저장소를 이동합니다.

당신이 응용 프로그램 스매시 히트가 될 것입니다하지 않는 한, 생산을위한 Linode 당신이 잘 될 것입니다. 설정을 변경하지 않고 더 큰 인스턴스로 업그레이드 할 수 있습니다. 당신은 모든 사용자가 전에

나는 아직 여전히 당신이 언급 한 기본적인 도구를 능숙하지 않은 특히, 여러 서버로 시간을 보내는의 분열에게 응용 프로그램을 권하고 싶지 않다.

또한 Heroku에 응용 프로그램을 이동할 수 있습니다. 한 인스턴스를 스테이징 서버로, 다른 인스턴스를 프로덕션으로 사용하십시오. 무한정 확장되며 자동 프로비저닝 및 보안에 대해 걱정할 필요가 없습니다. 앱이 매우 빠르게 실행되며 이는 가장 중요합니다.

비 자동으로 수동으로 프로덕션 서버를 Linode에 설치하는 것이 그리 좋지 않을 것입니다. 이 과정에서 많은 것을 배웁니다. 기본적으로 Heroku로 시작하는 것이 좋지만 여러분에게 달려 있습니다. 시간이 지남에 따라 앱을 제한하는 Heroku에서 뭔가를 찾으면 앱이 성숙하고 (바라 건데) 수익이 올 때가 아닐 수 있으므로 슬리브를 감거나 자신의 하드웨어를 관리하는 것이 좋습니다. .

리포지토리에 대한 모든 푸시에서 배포를 수행하지 않는 것이 좋습니다. 적어도 모든 테스트가 통과하는지 확인해야합니다 (테스트를 올바르게 작성하고 있습니까?). 연속 통합 서버는 Repo를 누를 때마다 자동으로 실행할 수 있습니다. 그 목적으로 Semaphore을 추천 할 수 있습니다.

Heroku를 사용하는 경우 배포는 터미널에서 한 번만 수행하면됩니다.