0

単一の Linode ボックスを使用してテストしてきた Rails アプリを起動する準備がほぼ整いました。私の git リポジトリも現在、アプリケーションとデータベースを含む同じボックスでホストされています。これらを 3 つのエンティティに分割したいと考えています。データベース サーバー、アプリケーション サーバー (簡単に追加するオプションあり)、および bitbucket でホストされるリポジトリです。

理想的には、コードを bitbucket にコミットしてから、ポストコミット フック プッシュ ポストをアプリ サーバーにセットアップして、リポジトリから新しい変更をプルし、自動的にそれらの提供を開始できるようにしたいと考えています。Puppet、Chef、Passenger などについて読むのにかなりの時間を費やしましたが、かなり圧倒されました。私のセットアップはそのままで問題なく動作していますが、いざというときにうまく拡張できないことがわかっているので、切り替える必要があります。私が助けてほしいのは、プロセスをできるだけスムーズにするために、すでにセットアップしたものに加えて、どのツールを使用すべきかを決定することです.

ありがとう

4

2 に答える 2

1

私が最初に行うことは、git リポジトリを GitHub (または BitBucket、劣っていると思いますが) に移動することです。

アプリが大ヒットしない限り、本番用の Linode は問題なく機能します。セットアップを中断することなく、より大きなインスタンスにアップグレードできることに注意してください。

ユーザーを獲得する前に、アプリを複数のサーバーに分割することに時間を費やすことはお勧めしません。特に、言及した基本的なツールにまだ習熟していない場合はなおさらです。

アプリをHerokuに移動することもできます。1 つのインスタンスをステージング サーバーとして、もう 1 つのインスタンスを運用として使用します。無期限にスケーリングされ、自動プロビジョニングとセキュリティについて心配する必要はありません。アプリは非常に高速に起動して実行されます。これは最も重要なことです。

自動化されていない手動の手順で Linode に本番サーバーをセットアップしても、それほど悪くはありません。その過程で多くのことを学びます。デフォルトでは Heroku から始めることをお勧めしますが、それはあなた次第です。時間の経過とともに Heroku でアプリの制限事項を見つけた場合、おそらくアプリが成熟して (願わくば) 収益性が向上する頃になるでしょう。 .

また、リポジトリへのプッシュごとにデプロイを行うこともお勧めしません。少なくとも、すべてのテストがパスしていることを確認する必要があります (テストを正しく書いていますか?)。リポジトリにプッシュするたびに、継続的インテグレーション サーバーがそれらを自動的に実行できます。そのためにはセマフォをお勧めします。

Heroku を使用している場合、デプロイは端末から git push するだけであることに注意してください。

于 2012-07-27T10:14:29.843 に答える
0

シェフのルートが最善ですが、そのための学習曲線は急勾配です. EC2 の使用を検討しますか? もしそうなら、プロビジョニング (Chef、Puppet に似ています) と EC2 へのデプロイを支援するこの gem があります。さまざまな役割を設定でき、Capistrano も使用します。https://github.com/wr0ngway/rubber

個人的には、開発環境とステージング環境用に vagrant ボックスがあります。Chef は、実稼働サーバーを含め、1 つのコマンドでソフトウェアをプロビジョニング/インストールするのに役立ちます。開発環境から、bitbucket の git リポジトリから Capistrano を使用してステージング環境と本番環境にコードをデプロイできます。

于 2012-07-27T00:23:08.983 に答える